Почему так много языков программирования?
А что побуждает кого-то создавать языки программирования, несмотря на то, что другие языки уже существуют?
Почему так много языков программирования?
А что побуждает кого-то создавать языки программирования, несмотря на то, что другие языки уже существуют?
Ответы:
Новые языки программирования часто учатся на существующих языках и по-новому добавляют, удаляют и комбинируют функции. Существует несколько различных парадигм, таких как объектно-ориентированная и функциональная, и многие современные языки пытаются смешать функции обоих.
Есть также новые проблемы, которые необходимо решить, например, увеличение количества многоядерных процессоров. Самым распространенным решением для этого были потоки, но некоторые языки программирования пытаются решить проблему параллелизма другим способом, например, модель актора. Посмотрите Erlang - Программное обеспечение для параллельного мира
Это цикл. Вы начинаете новый язык, и вы можете избавиться от всего плохого синтаксиса и неправильного выбора от ваших предшественников. В версии 1 язык выглядит великолепно, потому что у него нет этого багажа, и он выполняет свою работу. Затем в более новых версиях вы начинаете экспериментировать с функциями, которые могут не работать, или добавляете функции из других, более новых языков, которые делают ваш синтаксис немного хитрым. И вот, после еще нескольких версий вы понимаете, что ваш язык теперь такой же сложный, как и тот, который вы заменили, с глупыми синтаксическими проблемами и устаревшим багажом. И вдруг вы понимаете, что если бы вы создали новый язык, вы могли бы исправить все это ...
По той же причине есть молотки, отвертки, ручные пилы, ленточные пилы, отбойные молотки, ломы и множество других инструментов: не каждый язык идеально подходит для каждой задачи. Некоторые языки ориентированы на конкретные проблемные области: R особенно хорош для статистического анализа, C особенно хорош для написания ядер операционной системы, Haskell особенно хорош для математических и финансовых вычислений, Erlang особенно хорош для параллельного программирования и т. Д.
Кроме того, по той же причине, что рубашки бывают разных цветов: некоторым людям просто нравится «стиль» одного языка над другим.
И, конечно же, многим программистам нравится изобретать новый язык, просто чтобы посмотреть, что происходит, или, возможно, потому, что они немного знают о языках и хотят почесать зуд или опробовать некоторые идеи.
Потому что они все отстой (так или иначе).
В настоящее время мы создали около 5000 языков для описания естественных проблем, и ни один из них не доступен для написания программ (например, «английский»).
Пока кто-то не найдет способ создать язык программирования, который сможет выразить то, что вы можете выразить в предложении на естественном языке, он будет продолжать поступать.
Очевидно, одна важная мотивация для создания нового языка - добиться чего-то лучшего, чем уже существующие языки. И поскольку всегда есть возможности для совершенствования, всегда будут новые языки.
Коммерческие интересы являются еще одной важной причиной. Я считаю, что, например, для Microsoft важно, чтобы они предлагали язык для любых нужд, поэтому компании и разработчики предпочитают свои платформы.
Наследственный кодекс Если вы начинаете новый язык, вам не нужно слушать / рассматривать все жалобы при смене старого языка. Даже если все согласны с тем, что новая реализация лучше, она не может сломать старый код. И там много старого кода.
потому что это интересно создавать новые языки, даже если они не имеют никакого реального использования
Эзотерический язык программирования (иногда сокращенно до esolang) - это язык программирования, предназначенный для проверки границ дизайна языка компьютерного программирования, как подтверждение концепции или как шутка.
Создание языка программирования довольно весело. Это близко к чисто творческой работе, так как вы не ограничены предыдущими требованиями. Это не так сложно реализовать, так как вы всегда можете скомпилировать в C и скомпилировать код C для адекватной производительности, если вы пишете компилятор в первую очередь.
Конечно, у большинства из нас меньше хороших идей, чем мы думаем, поэтому они часто оказываются разочаровывающими или не любимыми кем-либо, кроме оригинального дизайнера.
Подумайте о любом языке программирования, который вы знаете. Вы можете легко придумать несколько вещей, которые вам не нравятся, верно? Вероятно, у вас есть идеи, как это можно исправить. Получив немного больше импульса, предполагая, что вы знаете много о сборке компилятора (и многие знают), вы можете начать разрабатывать и даже реализовывать свои собственные.
Быстрый короткий ответ
Изобретая Колесо ... Какова текущая тенденция ...
Скучный длинный ответ
Многие люди забывают, что «другой похожий новый язык для старых программистов» - это «простой новый язык для новых программистов».
Что я имею в виду для этого?
Ну, для «нескольких лет» программисты, Java или C # могут быть дополнительными языками программирования к существующим Cobol, (OO / Procedural) Basic, C / C ++, в то время как для «новых» программистов Java или C # являются новыми языками, в то время как Cobol, (OO / процедурный) Basic, C / C ++ для них не существует, поэтому изобретать велосипед становится обычным делом ...
И, если появятся новые тенденции в технологии, люди могут создать новый язык программирования, основанный на этой тенденции, такой как ecmascript / javascript для веб-сайтов и функционального программирования ...
Приветствия.
новые языки программирования создаются по многим различным причинам, в основном из-за появления новой парадигмы программирования или из-за достижений в области аппаратных средств люди создают новый язык, чтобы использовать преимущества новых аппаратных функций, таких как многозадачность и т. д.
в моем случае я обычно строю небольшие компиляторы (с новым языком программирования) по специальной причине. если я создаю множество игр и считаю, что язык программирования, специально разработанный для разработки игр, приведет к меньшему ускорению кода и ускорению процесса разработки, тогда я создам его. и в конце концов оказывается, что он также может быть использован для других программ общего назначения.
Я думаю, что большинство людей, которые создают языки программирования, имеют в виду определенную цель, есть те, кто создает их для общих целей с самого начала. но большинство нет.
Кстати, я думаю, что языков программирования слишком много, но сотни новых всегда будут выходить. некоторые из забавы, некоторые из нишевой цели, как школьный проект, или по сотням других причин. и рано или поздно новый станет популярным. Это никогда не закончится.
По той же причине существует так много <что угодно>, и мы продолжаем создавать новые <все>
Например, существует дюжина сред PHP MVC, но люди всегда будут создавать новые, чтобы удовлетворить конкретные потребности, чтобы не зависеть от какой-то другой команды или просто попытаться создать что-то лучшее. То же самое относится в основном к любому типу инструмента или приложения.
Это очень хорошая вещь, на мой взгляд, практически беспроигрышная для всех.
Университеты предоставляют много языков программирования, как и очень крупные корпорации, такие как Ericsson (Erlang = язык Ericsson), Bell Labs (языки B и C), Google (язык Go за несколько месяцев до этого). Многие из тех, которые были написаны как часть университетских исследований, не используются много. Однако есть несколько заметных исключений. Я полагаю, что написание собственного языка / компилятора - хорошая тема для кандидатских диссертаций для людей, изучающих теорию КС или смежные дисциплины. Меня поражает, что Python является одним из первых языков, которые родились в результате совместных онлайн-усилий различных программистов вокруг единой идеи.
Есть несколько причин, большинство из которых заключаются в том, что люди думают, что то, что существует, не позволяет легко решить некоторые проблемы. Некоторые просто для развлечения или для академического интереса.
Я думаю, что есть веский аргумент, что вопрос о том, как вы создаете идеальный язык, еще не решен (и, возможно, никогда не будет). Поэтому до тех пор, пока у людей появятся новые идеи о том, что может стать отличным языком, они будут продолжать пробовать. Некоторые из этих попыток будут отображать новые классные места, такие как Эрланг, а некоторые будут проваливаться, но до тех пор, пока что-то узнается из флопа, это тоже нормально.
Как было сказано ранее, языки пытаются нацеливаться на определенные конкретные задачи, а новые языки могут нацеливаться на новую область. Эти языки могут использовать функции других языков, которые в данный момент отсутствуют.
Еще одна причина появления новых языков - попытка включить много разных задач и стать языком выбора для множества разных потребностей. Некоторые из этих языков пытаются охватить все языки, которые вы всегда будете использовать, независимо от того, в чем вы нуждаетесь.
В своем классе языков программирования я узнал, что большинство языков было изобретено, чтобы почесать зуд. Большинство языков было изобретено, чтобы иметь возможность лучше выражать некоторые алгоритмы. Например, функциональные языки были изобретены, чтобы дать рекурсивным алгоритмам гораздо более выразительное пространство.
Спрашивать, почему так много языков, все равно, что спрашивать, почему C ++ 0x? :)
Кроме того, чем больше языков вы знаете, тем более выразительным вы можете стать - это верно как для программирования, так и для естественных языков!