C/C++

Чем отличаются языки программирования ???

Я в курсе, что одни нужны для софта, другие для создания сайтов и для остальных целей. Некоторые легче чем остальные.

Меня интересует конкретно основа. "Другие" языки программирования нр: пайтен, джава итд. Они слеплены из языка программирования общего назначения ( нр с++ ) ??? Или они они настольно другие, что, я не знаю, созданы с нуля или что.....

Не может же быть, что на с++ написан определённый инструментарий и это начинает называться "другим" языком программирования.
Костя Drivp
Костя Drivp
238
Самое низкоуровневое программирование - это писать буквально машинные коды, наиболее близок к решению таких задач C, но даже он уже обычно относится к высокоуровневым.
Далее учитываем языки под ООП типа C++/C#/Java/JS.
Ну и в дальнейшем наибольшее количество оставшихся из существующих языков по сути банальная кастомизация от предшественников, которая во внутренней начинке ничего нового уже не предлагает(Например C
->
Python(Это как бы набор написанных на C типичных решений тех или иных задач, что делает синтаксис легким и более удобным в работе)
->
/PyPy(вариант без динамических возможностей Python, но с его синтаксисом)
/Brython(Тот же Python, но его исходники на JS, что позволяет использовать в веб)
/Grumpy(Тот же Python, но его исходники на GO, не потому что это прям нужно, просто GO сейчас модный))
Г_
Герман ______
25 127
Лучший ответ
Костя Drivp Ты пока понятнее остальных объяснил. Спс.
Любые языки программирования имеют в основе не "другие языки программирования", а само программирование. Язык программирования - не нечто особенное, а всего лишь способ записи алгоритмов в понятном компьютеру виде. Для записи алгоритмов требуется совсем немного базовых концепций и каждый язык программирования - сочетание реализаций этих концепций, удобное для решения определённого круга задач.

Есть, например, концепция "ветвление" и есть конкретные реализации этой концепции в конкретных языках программирования. И оператор if в Java (реализующий один из видов ветвления) отличается от оператора if в Python только мелкими деталями, никак не влияющими на работу этих операторов.

Циклы в Python и Java отличаются сильнее - в силу того, что концепция цикла в Python реализована в урезанном виде.

И т.д.

Английские слова в языках программирования - это всего лишь значки-иероглифы, обозначающие действия, литературный смысл которых абсолютно не важен. Ты же, когда на уроке математике используешь значок-иероглиф cos, не вспоминаешь, что на латыни "косинус" - это "дополнение волны"?

Использовать русские слова - это создавать местечковый продукт, который никому за границами России не нужен. Как, например, никому не нужна продукция 1С, в языке которой как раз русские слова и используются.
Георгий Пекшев
Георгий Пекшев
62 506
Костя Drivp Ну Россия самая большая страна и соседей русско говорящих не мало. Было бы круто, если бы у нас был местный ЯП, который очень широко применялся. Всё таки родной язык приятнее, хоть в прогм он не очень удобный.
Языки программирования отличаются семантическими, синтаксическими правилами, парадигмами и так далее. Языки с общими парадигмами похожи друг на друга. Например, объектно-ориентированные, функциональные, императивные. Например, Java сильно напоминает C#. На C++ нужно думать о том, как использовать или освобождать память, избегать утечек памяти, в то время как на C# или Java это делается автоматически сборщиком мусора. Python это язык с динамической типизацией, в то время как C#, Java, C++ пользуются статической типизацией. Компиляторы пишутся также при помощи языков программирования. На ассемблере нынче программы не пишут. Какой язык использовался при написании компилятора, вообще никак не влияет на то, какие парадигмы и правила будут в конечном языке. Язык вообще не пишется на языке программирования. На языке программирования пишется компилятор для конкретного языка.
Meirzhan Duisekenov
Meirzhan Duisekenov
82 909
есть такая диаграммка
https://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programming_languages.svg
гуглится по "family tree of programming languages".
она старенькая, но дает представление о языковом разнообразии в отрасли.

яп кардинально различаются происхождением.

представь себе два берега, на одном из которых толпятся математики фундаментальные и прикладные, физики, инженеры, студенты, маркетологи и т.п.

на другом берегу клубятся исполняющие системы, функция которых - хранение и предоставление данных, вычисления, взаимодействие с пользователями, управление периферией (а периферией может быть всё, от сверла по дереву до истребителя)

и между этими берегами лежит пропасть непонимания.

есть, конечно, умельцы, которые могут перепрыгнуть эту пропасть, налабав программу сразу на машинных кодах, но таких мало. а задач много.
поэтому нужен мост.

вот, языки программирования такими мостами и являются.

эти мосты можно начать наводить с любого берега.

начинаешь с этого - тут важно, откуда именно, с прикладной математики, с матлогики - и получаешь алгол, prolog, haskell, algol, fortran, pascal, РЕФАЛ и т.д. или специализированные mumps, sql, 1C и т.д.

начинаешь с того, машинного - там тоже небезразлично, откуда - и получаются asm, c, erlang, ada.

то, что компиляторы для этих языков написаны на каком-нибудь си, не должно смущать, ведь это лишь средства перевести программу, созданную в соответствии с концепциями своего яп, в машинные коды.
та же программа на prolog-е - это набор предикатов, по которому компилятор строит дерево секвенций, т.е., забористая математика, сильно отличающаяся от си-подобных языков.
или haskell, в котором программа рассматривается как теорема, требующая доказательства.

дополнительную интригу вносят парадигмы (событийно-ориентированные, объектно-ориентированные, функциональные и т.д.) которые вызывают жуткие мутации типа C#, python, node.js, а также благие намерения по улучшению существующих яп, типа perl->php, pascal->modula, java->kotlin, c->rust.

ну и, разумеется, эти языки и используемые в них подходы в процессе своего развития активно проникают друг в друга, порождая всякие симбионты.

короче, всё сложно.
РИ
Роман Иванов
60 232
Не совсем правильно, много языков написано на c++ - да
но инструментарий и тд работает вообще по другому
типо даже шиндовс на нем написан
поэтому он и использует c++ так как винда его поддерживает и все функции как exe программа на них строятся, запросы, окна и тд.
можно сказать что основа, но уже как будет строиться сам язык зависит от создателя
синтаксис, оптимизация, библиотеки и легкость
Костя Drivp То есть поскольку винда на написана на плюсах, то все остальные языки программирования в своей основе слеплены из с++ ?