Заметили ли вы что почти все ЯП (львиная доля) используют одни и те же синтаксические правила.
К примеру функция почти всегда — нечто и скобочки:
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
Что общего? Цифра?
Но при этом все тащат математику в программирование. Инертность мышления, не иначе.
Здравствуйте, Shmj, Вы писали:
S>Уже молчу про пробел — пробел и в китайском пробел, не удивлюсь что и у инопланетных жителей есть такая же клавиша пробела.
句法研究滥觞于公元前4世纪的梵文文法学家波你尼的著作
Китайцы как раз пробел не используют так как мы. Больше между предложениями или частями предложений, но не между каждым словом.
Здравствуйте, Pyromancer, Вы писали:
P>Ну математики тупые, за столько лет не дошли до использования разных символов для присваивания и равенства, только какие-то извращения чтобы их различить: ≝, ≜
Вообще-то для присваивания и равенства у математиков используются разные символы. Присваивание — =, равенство — .EQ., причём скоро 70 лет как. Инициализация тоже делается не так, как присваивание. Это сейчас всё в кучу напихали.
Я всегда говорил: Фортран — наше всё!
Здравствуйте, rg45, Вы писали:
S>>Т.е. эти символьные вещи стали неким стандартом уже, который выше отдельных правил конкретного языка. R>И? Закончи мысль.
Получается что запись почти одинаковая, уже есть в JS, C#, Dart — те же async|await, изучив концепцию в одном — будешь знать и использовать везде.
Со временем языки усреднятся и возможно что будет один общий язык.
Здравствуйте, Shmj, Вы писали:
S>Получается что запись почти одинаковая, уже есть в JS, C#, Dart — те же async|await, изучив концепцию в одном — будешь знать и использовать везде.
А, ну я, кажется, понял, откуда растут ноги. Ты несколько лет пыталсся распространить на С++ свой опыт работы с "приятными" языками, получил жестокий облом и ударился в мечты?
S>Со временем языки усреднятся и возможно что будет один общий язык.
И что нужно делать в связи с этой вновь открывшейся информацией? Бросить всё и вместе с тобой ждать светлого будущего?
--
Справедливость выше закона. А человечность выше справедливости.