Топ 10 языков программирования, согласно индексу TIOBE, похоже, находятся под сильным влиянием C:
1. Java
Язык выводит большую часть своего синтаксиса из C и C ++, но имеет более простую объектную модель и меньше средств низкого уровня. - wikipedia.org
2. С
C - один из наиболее широко используемых языков программирования всех времен, и существует очень мало компьютерных архитектур, для которых компилятор C не существует. - wikipedia.org
3. C #
Во время разработки .NET Framework библиотеки классов изначально создавались с использованием системы компилятора управляемого кода под названием Simple Managed C (SMC). В январе 1999 года Андерс Хейлсберг сформировал команду для создания нового языка под названием Cool, который обозначал «C-подобный объектно-ориентированный язык». - wikipedia.org
4. C ++
Он был разработан Бьярном Страуструпом с 1979 года в Bell Labs как усовершенствование языка Си. - wikipedia.org
5. Цель-C
Objective-C - это отражающий объектно-ориентированный язык программирования, который добавляет обмен сообщениями в стиле Smalltalk к языку программирования C. - wikipedia.org
6. PHP
Он переписал эти сценарии как двоичные файлы Common Gateway Interface (CGI) языка программирования C, расширив их, чтобы добавить возможность работы с веб-формами и связываясь с базами данных, и назвал эту реализацию «Персональная домашняя страница / интерпретатор форм» или PHP / FI. - wikipedia.org
8. Питон
Python был задуман в конце 1980-х годов, и его реализация была начата в декабре 1989 года Гвидо ван Россумом в CWI в Нидерландах как преемник языка программирования ABC (сам по себе вдохновленный SETL), способного обрабатывать исключения и взаимодействовать с операционной системой Amoeba. - wikipedia.org
ABC (язык программирования) Его разработчики утверждают, что программы ABC обычно примерно на четверть меньше, чем эквивалентные программы на Pascal или C, и более удобочитаемы. - wikipedia.org
9. Perl
Perl заимствует функции из других языков программирования, включая C, сценарии оболочки (sh), AWK и sed. - wikipedia.org
10. JavaScript
JavaScript использует синтаксис, на который влияет синтаксис C. - wikipedia.org
Похоже, что большинство из них заимствуют свой синтаксис из C и / или находятся под сильным влиянием нескольких других способов, по крайней мере, в начале. Зачем?
источник
Ответы:
С появлением UNIX в 1970 -х годах, его стандартные системы программирования языка C быстро стал общепринятым языком в мире программирования. Долгое время C был практически обязательным для каждого программиста. Таким образом, тот факт, что C оказал влияние почти на каждый язык программирования, который так или иначе появился после него, вряд ли удивителен по двум причинам:
Но другие языки существовали, и они все еще существуют, некоторые из них даже предшествуют Си - есть семейство LISP (CL, Clojure и Scheme - самые популярные современные диалекты), семейство ML (с несколькими современными диалектами), есть целая армия ОСНОВНЫЕ диалекты (VB.NET и VBA являются современными реализациями), есть Паскаль и его родственники (Delphi - самый известный), и много странных языков, которые повлияли на многие другие языки и сами изобрели несколько вещей; примеры включают Go, Python, Lua, Haskell (и его предшественник Miranda), Prolog и Erlang. Хотя ни один из этих языков (кроме Python) не входит в ваши топ-10, многие из них имеют стабильную базу пользователей и активное сообщество; они, конечно, не уходят.
Кроме того, следует отметить, что степень влияния C в этих языках сильно различается, начиная от почти 100% C-совместимых языков C ++ и Objective-C и заканчивая Python (который намеренно отказывается от многих синтаксических возможностей языка C). И это только синтаксис: с точки зрения семантики большинство языков в этом списке не имеют много общего с C. Подавляющее большинство имеет встроенную в язык систему управления памятью и, следовательно, семантику копирования, передачу аргументов и т. Д. , очень разные. Например, JavaScript имеет сильное семантическое влияние со стороны Scheme, в то время как его синтаксис был разработан так, чтобы напоминать Java (который, в свою очередь, основывает свой синтаксис битов и кусочков на C, но не семантику). Другие различия (за исключением C ++ и Objective-C, которые в основном обратно совместимы с C) включают обработку ошибок, правила области видимости,
#include
), а также тот факт, что многие из этих языков «виртуализированы», то есть они работают на интерпретаторе, JIT-компиляторе или виртуальной машине.Между прочим, Python оказывает некоторое влияние на C, но он определенно не «основан на» C. И синтаксис, и семантика довольно радикально отличаются от C, и это по замыслу. Python заимствует функции только из C, где другие альтернативы одинаково «хороши» (согласно типу «Zen of Python»
import this
в интерпретаторе python).Что касается будущего программирования; предсказания меняются. Влияние C не проходит, но недавние разработки в области аппаратного обеспечения (многоядерные машины становятся обычным явлением, мощные графические процессоры, процессоры перестают быть типичным узким местом для производительности, быстрые надежные сетевые соединения и т. Д.) Требуют радикально различных подходов к программированию. в целом. Любой, кто когда-либо писал многопоточное распределенное приложение на императивном языке, может сказать, что это невероятно сложно, в то время как языки наподобие Haskell имеют функции, которые устраняют большинство типичных проблем и предлагают более абстрактный и более структурированный подход к распределенной, параллельной и параллельной обработке (чистота является важной концепцией в этом контексте). Более новые языки программирования (например, C # или D) уже включают в себя множество функций для поддержки такой идиомы. В любом случае,
источник
Это очень похоже на вопрос, почему английский является доминирующим языком в США. Почему не испанский или французский? Они контролировали больше территории США, чем английские колонии. Почему не голландец? Первая столица США находилась в бывшей голландской колонии. Я не уверен, что может быть "ответ" на это.
Тем не менее, хронология «История компьютерных языков» ( http://www.levenez.com/lang/ ) содержит все возможные ответы.
источник
Если вы создаете новый язык программирования, наличие синтаксиса, аналогичного популярным существующим языкам, облегчает изучение для ваших новых пользователей. Особенно, если многие понятия похожи между языками.
Также я думаю, что синтаксис в стиле C относительно легко читается. Для сравнения с Pascal использование символов «{» и «}» для блоков кода более разборчиво, чем «начало» и «конец», которые оптически очень похожи на идентификаторы. Python еще более разборчив, но включение пробелов в синтаксис открывает новые проблемы с редактированием. Другой пример: Lisp и JavaScript разделяют несколько идей, но когда одно и то же написано в синтаксисе в стиле C, это менее неясно.
Я уверен, что многие люди не согласятся со вторым абзацем, потому что у каждого есть свой любимый язык, но я думаю, что популярность синтаксиса в стиле C отчасти является историческим совпадением, но частично это также показывает, что авторы C сделали несколько хороших решения.
источник
Языки программирования развиваются с течением времени так же, как естественные языки, причем некоторые более старые языки влияют на эту эволюцию сильнее, чем другие, в то время как другие переходят в неизвестность, и их влияние труднее проследить на поверхностном уровне, то есть синтаксис.
Влияние Си исходит из многих источников - оно низкого уровня, широко распространено, имело поддержку как в кругах Unix, так и в кругах Microsoft. Это также выживание самой подходящей проблемы - легко увидеть, что краткий C-подобный синтаксис был более привлекательным, чем многословный, основанный на Алголе синтаксис Паскаля и других конкурентов C в 1970-х и 1980-х годах. Следовательно это было широко принято языками, которые прибыли после этого.
Учитывая нынешний рост важности многопоточного программирования и функциональных языков, особенно подходящих для него, я бы сказал, что мы увидим, как их влияние будет расти в будущем. Показательный пример: Python, который даже сделал этот список в посте с вопросом.
Хороший хронологический обзор истории языка, чтобы обдумать
источник
Большинство языков, которые вы перечисляете, практически не имеют ничего общего с Си, кроме несущественного синтаксического сходства. Единственными двумя действительными производными C являются Objective-C и C ++.
источник