Зачем кому-то разрабатывать свой собственный язык, чтобы использовать его только внутри этой фирмы, если у вас есть XY другие языки, которые могут помочь вам с их библиотеками, логикой и т. Д.? Разве не намного проще идти в потоке с чем-то другим, чем развивать свой собственный язык?
programming-languages
Иосип Ивич
источник
источник
Ответы:
Намного легче понять, когда вы понимаете, что это часто продукт длительного процесса, а не кто-то просто говорит «мы хотим создать новый язык».
Обычно он начинается с идеи, что некоторую проблему можно решить с помощью простого предметно-ориентированного языка. Часто предполагается, что неспециалисты будут использовать этот язык, поэтому он прост и часто не имеет таких функций, как строгая типизация и модули.
Все идет нормально. Но затем люди начинают сталкиваться с проблемами, которые не могут быть решены с помощью языка. Поэтому новые «возможности» медленно добавляются для решения этих проблем. А поскольку процесс медленный и функции встречаются нечасто, нет мотивации правильно проектировать эти новые функции, пока проблемы решаются.
Со временем новый язык приобретает функции, которые превращают его из простого предметно-ориентированного языка в сложный язык «общего» назначения, часто с противоречивой, сбивающей с толку семантикой и сложными синтаксическими правилами.
И к тому времени, когда люди понимают, что создали такого огромного зверя, уже слишком поздно убивать его и заменять его должным образом разработанным языком.
Есть несколько языков , которые эволюционировали так , что не привязаны к конкретным предприятиям кашля JavaScript кашля PHP кашлю .
источник
Конечно, но чтобы довести это до абсурда, мы бы все писали на ассемблере, если бы никто не разрабатывал новые языки.
Иногда нет потока. Новые языки появляются, потому что у кого-то есть царапина, будь то любитель языков, который просто хочет изобрести что-то новое, или компания, нуждающаяся в неудовлетворенности тем, что уже существует.
Именно это и произошло, когда в 1953 году Джон Бакус предложил Систему перевода математических формул IBM . Он хотел, чтобы научные пользователи могли проще определять математические формулы, чем записывать их в сборке. Этот проприетарный продукт стал первым языком программирования, который не был ассемблерным, и вы знаете его как Fortran.
Там, где Фортран был первым, кто прошел этот путь, Эрланг в значительной степени является его детищем. Эрикссон хотел улучшить способ разработки программного обеспечения для своих телефонных коммутаторов и изобрел язык для прототипирования с функциями, специфичными для того, что им нужно. Когда я впервые исследовал его, я понял, что его разработали люди, у которых была реальная проблема, решить которую не удалось бы ни на одном из других языков, доступных в 1986 году. Erlang оставался проприетарным внутренним продуктом, таким как ваш. Коллега встречалась до тех пор, пока она не была открыта более десяти лет спустя, и теперь это основной язык.
И Go, и Scala являются относительно молодыми языками в общем плане вещей, и вполне возможно, что язык, используемый в компании вашего коллеги, предшествует обоим. Что ему нужно сделать, так это спросить о его истории, почему она появилась и почему она продолжает использоваться.
Я провел десятилетие между 2003 и 2013 годами, работая в компании, которая широко использовала отраслевую среду, в которую входил собственный язык, корни которого появились в конце 1970-х годов. Хотя некоторые более новые языки могли бы стать более подходящей заменой (и зацепки для них были привиты в течение долгого времени), в эту отрасль были вложены достаточно большие средства и огромный массив хорошо себя зарекомендовавшего себя кода, который просто не был хорошим бизнес-обоснованием. для переключения на что-то другое.
источник
Я видел это раньше. Это никогда не работает хорошо. У некоторых людей есть «не изобретенный здесь» комплекс. Обычно это заставляет компанию бегать заново изобретать колесо.
Думаю об этом. Этот новый язык, вероятно, ломается все время. Между парсером, компилятором, виртуальной машиной, компоновщиком и т. Д. Теперь существуют тысячи ошибок, с которыми люди будут тратить часы на отладку случайных проблем. Все для того, что, по их мнению, им нужно, чего нет у других языков.
C / C ++ используется для написания операционных систем, таких как, вы знаете, все они. И все же кто-то думал, что им нужно что-то другое.
источник