Я действительно хотел бы сосредоточиться на том, почему некоторые новые языки программирования приняты в мейнстриме, а другие остаются относительно нишевыми. Я хотел бы знать о таких вещах, как конкретные варианты использования, обратная совместимость или некоторые новые функции, простые или сложные трудности реализации. Будем признательны за конкретные примеры, но давайте не будем зацикливаться на точном определении «основного направления» или «ниши» здесь.
programming-languages
DeadMG
источник
источник
Ответы:
Если бы кто-нибудь действительно знал, они были бы очень богатыми людьми.
Тем не менее, вот мое предположение:
Доступность
BASIC - ужасный маленький язык, который появился на (всех?) ПК, когда они только появились. Apple II (стандартный компьютер для многих вузов) и ATARI 400/800 (первый супер дешевый домашний компьютер) поставлялись с BASIC.
Если у вас был компьютер с UNIX (система AT & T V или Berkeley), у вас был C. Если вы хотели запрограммировать компьютер, это то, что вам нужно было использовать.
РЕДАКТИРОВАТЬ : С появлением и повсеместным распространением сети, это требование превращается в:
Легкость перехода
Ява является хорошим примером здесь. Если вы знали программирование на C, то Java не была далеко впереди, и все же она давала многие функции, которых не хватало в C, и C ++ не смог обеспечить чисто.
C ++ по понятным причинам был легким шагом вперед по сравнению с C, и его было легко продать руководству как «улучшенный» C. C ++ имел дополнительное преимущество обратной совместимости со значительной частью существующей унаследованной базы кода C.
Perl был объединением C, awk, sed и других утилит Unix в одном комплекте. До его появления большинство системного администрирования выполнялось с помощью сценариев оболочки, склеивающих все вместе неудовлетворительным образом. Объединение всего процесса в один процесс со структурами данных и контролем над C-подобным языком было настоящей находкой.
Заполняет потребность
С взлетел, потому что он позволил вам добиться эффективности, близкой к сборке, не увязая в специфическом для машины, сложном в обслуживании мире сборки.
Фортран взлетел, потому что он позволял легко переводить математические идеи в код, не теряясь в деталях машины.
Аналогично для LISP и символических манипуляций.
Python вырос из необходимости «лучшего» Perl. (Я здесь предвзятый, поэтому не буду больше говорить.)
По сути, PHP был Бейсиком для Интернета - он был установлен по умолчанию на многих веб-серверах, и было легко быстро собрать что-то полезное.
Адвокация, Пользовательская база, Добавленный код
Посмотрим правде в глаза, Haskell не был бы нигде столь же популярным, как для не-производственного языка, если бы не неустанная поддержка его разработчиков и пользователей.
Многие языки имеют культ личности за создателем (ями) языка, и мы все знаем, кто они.
Фортран имеет огромные наборы проверенного и проверенного математического кода; то же самое для Java и веб / системная интеграция / MVC-системы; то же самое для Perl и CPAN; то же самое для T E X и управления документами; и т.п.
Это фактор
По некоторым причинам, кажется, что в некоторых языках есть нужное количество нового , с достаточным количеством намеков на старое , способ, который делает его простым или нужным. То есть это делает свое дело. И кто знает, как это происходит?
Во всяком случае, это мое лучшее предположение, почему некоторые делают это. Что касается того, почему некоторые не ... ну, если они не соответствуют вышеуказанным критериям, возможно, поэтому они потерпели неудачу.
источник
Языки становятся популярными, потому что они имеют преимущество перед существующими языками в нужной области.
Джава
PHP
JavaScript
Objective-C
Рубин
C #
ActionScript
Erlang
источник
Я буду циником: деньги и буду с этим, маркетинг.
Не случайно C # поддерживается Microsoft, Java - Oracle, Objective C - Apple. Только Google Go пока что не поднял.
Конечно, деньги - не единственная причина, но наличие глубоких карманов, несомненно, помогает разместить ваш язык на рынке.
источник
С одной стороны, это маркетинг, точнее презентации, блоги и т. Д. Важно иметь функции, к которым обычные программисты могут относиться и видеть преимущества по сравнению с тем, что они знают (Java против C ++ - сборщик мусора против управления памятью). И последнее, но не менее важное - иметь низкий барьер для входа - примеры, хорошую документацию, беспроблемную установку, хорошее сообщество и поддержку, динамичное развитие.
источник
Почти все языки имели нетривиальные, реальные программы решения проблем, написанные с использованием их очень рано.
Unix был написан на C, как и инструменты на Unix, когда C был очень молодым и развивающимся.
Anaconda (программа установки RedHat) была написана на Python, когда Python был молодым и не пользовался популярностью сегодня.
Это то, что я могу вспомнить без посторонней помощи. Этот список может касаться каждого из языков, которые пережили свои годы становления.
Тогда широкомасштабное принятие в университетах может помочь долголетию языка. Ява очень популярна в университетах как язык обучения. В некоторой степени Лисп и диалекты Лисп тоже пользуются этим статусом.
источник