Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
К примеру функция почти всегда — нечто и скобочки:
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 является некоторым исключением, где идея программирования в типах нашла более яркое выражение (это характерная черта статически типизированных языков функционального программирования)