Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
К примеру функция почти всегда — нечто и скобочки:
fun1()
Но вот в Haskell, для примера, сделали иначе — т.к. там основа не данные а функции — то перевернули эту концепцию. Но такие языки так не вышли (и не выйдут) из ниши специализированных.
Далее. Почти везде операторы имеют одинаковый смысл, понятный любому человеку в мире — как то присвоение (=) или + — * / и т.д.
Почти везде доступ к члену объекта через .
Начало и конец очень часто {}. Но Python тут выделился — такого уродства больше никто не придумал. И как оно у них вообще получилось не ясно.
Работа с голой памятью, указателями — часто * и &
Уже молчу про пробел — пробел и в китайском пробел, не удивлюсь что и у инопланетных жителей есть такая же клавиша пробела.
Т.е. эти символьные вещи стали неким стандартом уже, который выше отдельных правил конкретного языка.
Здравствуйте, Shmj, Вы писали:
S>К примеру функция почти всегда — нечто и скобочки:
Потому что ЯП создавали (да и создают) люди подкованные не просто в CS но в математике. Потому там используется, скажем так, общепризнанный "математический синтаксис".
S>Но вот в Haskell, для примера, сделали иначе
А хаскель поскольку там задрочились математики конкретным разделом (лямбда-исчислением), то и синтаксис там соответствующий, как Чёрч завещал, грубо говоря.
S>Почти везде доступ к члену объекта через . S> {} S> * и &
А тут, очевидно, "так исторически сложилось" — вышел и обрел популярность Си, вот с него, условно говоря, синтаксис и стали передирать.
Стал бы популярным в те времена другой ЯП с другим синтаксисом, сегодня твой пост был бы точно таким же, только вместо & у тебя стояло бы что-то другое.
S>Далее. Почти везде операторы имеют одинаковый смысл, понятный любому человеку в мире — как то присвоение (=) или + — * / и т.д.
Язык математики же.
S>не удивлюсь что и у инопланетных жителей есть такая же клавиша пробела.
Ой не факт. Допустим, у инопланетян никогда не возникло печати? Вот и нет концепции пробела вообще.
А если инопланетяне к тому же не охотники (в настоящем или прошлом), то очень может быть, что даже с символом стрелки будут огромные проблемы.
Здравствуйте, Wolverrum, Вы писали:
W>Ой не факт. Допустим, у инопланетян никогда не возникло печати? Вот и нет концепции пробела вообще. W>А если инопланетяне к тому же не охотники (в настоящем или прошлом), то очень может быть, что даже с символом стрелки будут огромные проблемы.
Охотники? Символ стрелки это же указатель направления.
Но может не быть именно стрелки, потому что философски стрелка как бы говорит нам — двигай туда где встретятся (пересекутся) все параллельные:
Здравствуйте, Stanislaw K, Вы писали:
SK>Охотники? Символ стрелки это же указатель направления.
Ну да. Стилизованная стрела лука. А луком человечество пользуется уж более 60 000 лет. Потому стрелка такая привычная для тебя, например.
Ну в общем стрела, дротик, ккопье — атрибуты охотника.
А теперь попробуй представить себе цивилизацию, которая никогда не охотилась, и соответственно ни копья, ни стрелы придумано не было?
Думаешь там все еще будет очевидным символ "←" ?
Ну и "двигайся туда" я например вижу не срелку, а трекгольник. Уже разночтения в таком простом моменте.
S>Начало и конец очень часто {}. Но Python тут выделился — такого уродства больше никто не придумал. И как оно у них вообще получилось не ясно.
А как же КонецЕсли?
По кол-ву разрабов возможно даже и превосходит.
Друга ищи не того, кто любезен с тобой, кто с тобой соглашается, а крепкого советника, кто полезного для тебя ищет и противится твоим необдуманным словам.
Здравствуйте, Shmj, Вы писали:
S>Почти везде доступ к члену объекта через .
objc, вызов конструктора: [[class alloc] init: param];
обходятся без точки
правда сейчас язык практически умер и спрятался за синтаксический сахар в виде Swift
Здравствуйте, Shmj, Вы писали:
S>Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
Это потому, что почти все ЯП (львиная доля) являюются представителями группы Си-подибных языков. Потому у них и синтаксис похожий, примерно как в Си.
Вот Паскаль, например, и прочие Дельфи и Ада, восходят синтаксисом не к Си, а к Algol 60. И поэтому на Си местами весьма сильно не похожи.
S>Но вот в Haskell, для примера, сделали иначе — т.к. там основа не данные а функции — то перевернули эту концепцию. Но такие языки так не вышли (и не выйдут) из ниши специализированных.
Я дико извиняюсь, а какая у Хаскеля специализация?
Здравствуйте, Shmj, Вы писали:
S>Т.е. эти символьные вещи стали неким стандартом уже, который выше отдельных правил конкретного языка.
И что? Семантика всем привычна по уже существующим языкам, зачем изобретать что-то новое? Тем более, что для математических операторов символы взяты из математики. Семантика вызова функций тоже оттуда. Что у тебя вызывает подгорание?
Здравствуйте, Pzz, Вы писали:
S>>Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
Pzz>Это потому, что почти все ЯП (львиная доля) являюются представителями группы Си-подибных языков. Потому у них и синтаксис похожий, примерно как в Си.
Я когда какой-нибудь DSL изобретаю, у меня или сишечка, или плюсики начинают получаться. Странно, да? Я просто 25 лет на плюсах пишуНи как не могу понять, как так получается.
Pzz>Вот Паскаль, например, и прочие Дельфи и Ада, восходят синтаксисом не к Си, а к Algol 60. И поэтому на Си местами весьма сильно не похожи.
Крышечки в Паскале для указателей я так и не осилил, хотя Паскаль изучал до сишечки. Концепция указателей мне была знакома, я на асме Z-80 несколько лет до него писал, а вот не зашло
Здравствуйте, Marty, Вы писали:
Pzz>>Вот Паскаль, например, и прочие Дельфи и Ада, восходят синтаксисом не к Си, а к Algol 60. И поэтому на Си местами весьма сильно не похожи.
M>Крышечки в Паскале для указателей я так и не осилил, хотя Паскаль изучал до сишечки. Концепция указателей мне была знакома, я на асме Z-80 несколько лет до него писал, а вот не зашло
Хуже того, там еще и богомерзкие then ... else вместо благословенных Ричи и воспетых Керниганом фигурных скобок.
Здравствуйте, Pzz, Вы писали:
Pzz>Я дико извиняюсь, а какая у Хаскеля специализация?
По факту, Haskell — это устоявшаяся лингва франка в области статически типизированного функционального программирования. Раньше в этой роли был первородный ML, но теперь больше Haskell (как представитель уже всего семейства языков ML). А лиспы — по-прежнему для динамически типизированного функционального программирования
К языкам из семейства ML еще относятся OCaml и F#
Что касается возможности функционального программирования стать популярным, то это сильно вряд ли. Главным образом, для этого нужны определенные склады характера, склады мышления. Их не один и не два, но скажем так, что большинство людей мыслит иначе — и для них действительно (обычное) императивное программирование подходит много лучше. Хотя некоторые идеи функционального программирования все же дошли и до мейнстрима, впрочем, не затронув сути. Может быть, только Rust является некоторым исключением, где идея программирования в типах нашла более яркое выражение (это характерная черта статически типизированных языков функционального программирования)
Здравствуйте, Wolverrum, Вы писали:
W>Здравствуйте, Stanislaw K, Вы писали:
SK>>Охотники? Символ стрелки это же указатель направления. W>Ну да. Стилизованная стрела лука. А луком человечество пользуется уж более 60 000 лет. Потому стрелка такая привычная для тебя, например. W>Ну в общем стрела, дротик, ккопье — атрибуты охотника.
W>А теперь попробуй представить себе цивилизацию, которая никогда не охотилась, и соответственно ни копья, ни стрелы придумано не было? W>Думаешь там все еще будет очевидным символ "←" ?
W>Ну и "двигайся туда" я например вижу не срелку, а трекгольник. Уже разночтения в таком простом моменте.
Бороться за выживание, наверно, будет всякий вид на всякой планете, т. е. охотниками в широком смысле будут, другое дело, что на какой-то планете почти все природные материалы могут быть твёрдыми, и почти не быть эластичных, тогда стрелять из лука они не будут, ибо изготовить будет не из чего.
Здравствуйте, Shmj, Вы писали:
S>Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
Вы говорите не про "почти все ЯП" и не про "усреднённый синтаксис".
Вы говорите про совершенно конкретное семейство языков, которые основаны на наследии Си. Очень легко проследить дерево наследования С->C++->Java->Js->Ts, Java->C#, Java->Kotlin, и так далее.
Во всех этих языках есть заметные общие черты. Примерно так же, как во всех европейских языках, кроме греческого, за основу взята латынь, письмо справа налево, понятие строчных/заглавных букв, и более-менее общая пунктуация.
А всё остальное — это семейство Алгола (Паскаль, Оберон, процедурный SQL), семейство Lisp, семейство лямбда-языков типа Хаскела, и всякие нишевые отщепенцы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Marty, Вы писали:
S>>Т.е. эти символьные вещи стали неким стандартом уже, который выше отдельных правил конкретного языка.
M>И что? Семантика всем привычна по уже существующим языкам, зачем изобретать что-то новое? Тем более, что для математических операторов символы взяты из математики. Семантика вызова функций тоже оттуда. Что у тебя вызывает подгорание?
x = x + 1 => x — x = 1 => 0 = 1 => x не существует. Это математика.
Из-за фашистов, в программировании, вместо нормальной записи: x + 1 → x
которая читается "к иксу прибавить один и записать в икс" мы имеем крайне извращённый синтаксис. Даже символа стрелки на клавиатуре нет. Из-за фашистов. Ну или из-за анитифашистов, которые те же фашисты, только наоборот.
Короче, привычка — это не аргумент. Привычка может быть дурной и даже пагубной.
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, Marty, Вы писали:
S>>>Т.е. эти символьные вещи стали неким стандартом уже, который выше отдельных правил конкретного языка.
M>>И что? Семантика всем привычна по уже существующим языкам, зачем изобретать что-то новое? Тем более, что для математических операторов символы взяты из математики. Семантика вызова функций тоже оттуда. Что у тебя вызывает подгорание?
BFE>x = x + 1 => x — x = 1 => 0 = 1 => x не существует. Это математика.
Ну математики тупые, за столько лет не дошли до использования разных символов для присваивания и равенства, только какие-то извращения чтобы их различить: ≝, ≜
Здравствуйте, Pyromancer, Вы писали:
M>>>И что? Семантика всем привычна по уже существующим языкам, зачем изобретать что-то новое? Тем более, что для математических операторов символы взяты из математики. Семантика вызова функций тоже оттуда. Что у тебя вызывает подгорание? BFE>>x = x + 1 => x — x = 1 => 0 = 1 => x не существует. Это математика. P>Ну математики тупые,
Что за странный и необоснованный вывод про тупость математиков?
P>за столько лет не дошли до использования разных символов для присваивания и равенства, только какие-то извращения чтобы их различить: ≝, ≜
Математики мыслят утверждениями, а программисты — действиями. Для разных целей нужны разные языки.
Вот математика: ] x = 0
Вот программирование: 0 → index
Что общего? Цифра?
Но при этом все тащат математику в программирование. Инертность мышления, не иначе.