Поддержи Openmeetings

четверг, 22 марта 2012 г.

От чего зависит успех или провал нового языка программирования

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

Почему? Как язык программирования достигает признания? И что отличает успешный язык от неудачного?

Успешные языки узнаваемы

Языки, которые мы сейчас имеем, работают достаточно хорошо. Немногие разработчики хотят переучиваться основам с нуля. По этой причине новые языки не должны слишком далеко уходить от того, что было прежде. Основная грамматика должна выглядеть узнаваемой.

Это означает, что новым языкам следует быть хотя бы немного C-подобными.

Несомненно, это разочарует тех, кто ненавидит фигурные скобки и загадочные операторы Си. Но 35 лет существования Cи — продолженного C + +, Java, JavaScript, и бесчисленным множеством других Си-образных диалектов — означает, что вы вряд ли найдете программистов, которые сегодня не понимают идиомы Си.

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

Кроме того, новые языки должны поддерживать знакомый стиль программирования. Это нормально для инноваций, но не за счет известных практик. С языком, который не предлагает в той или иной степени объектно-ориентированного подхода, далеко не уедешь в современном мире, к примеру.

При введении новых понятий лучше делать шаги, как начинающий ходить ребенок. Несколько основных языков начали с заимствования идей из функционального программирования, таких, как замыкания и функции высшего порядка. Тем не менее чисто функциональные языки остаются непопулярными. Разработчики любят инновационные идеи, но им не нравится, когда их вытесняют из той зоны, где они чувствуют себя комфортно.

Успешные языки имеют открытый исходный код

Забудьте о собственных языках. Те дни прошли. Современным разработчикам не нравится, когда у одного поставщика слишком большой контроль над языком. Открытый исходный код дает им гарантию того, что код, который они пишут сегодня, не сможет устареть завтра из-за изменения в инструментах, языке или условиях лицензии. Но открытый исходный код дает и преимущества. Пользователи компиляторов — все разработчики, по определению. Любой из них может улучшить язык и его инструменты. Вклад со стороны может быть особенно полезен в наполнении стандартной библиотеки языка, где у Java большая фора.

Это не означает, что в языках программирования нет денег. Свободные компиляторы C и C + + были популярны в течение десятилетий, Intel все еще делает хороший бизнес на высокопроизводительной оптимизации этих компиляторов. Но это работает только для раскрученных языков. Новый язык, который хочет завоевать аудиторию сегодня, сначала должен быть в свободном доступе и полностью открыт. Рынок для «профессиональных» инструментов возникает позже.

Успешные языки имеют свою нишу

Такие языки, как C + + и Java, достигли успеха в значительной степени из-за своей универсальности. Независимо от Вашей специализации как разработчика, эти языки найдут, что предложить Вам.

Но и поэтому их трудно сместить. У нас уже есть один язык Java — нужен нам еще один? Инерция раскрученных языков велика, поэтому новые языки общего назначения редко продвигаются так хорошо, как те, что занимают определенную нишу.

Например, Perl начинался как своего рода улучшенный инструментарий программирования оболочек для системных администраторов. Позже, богатый инструментарий текстовой обработки сделал его идеальным для CGI-скриптов, и он поднялся на этом.

Аналогичным образом, Ruby начинал, по сути, как более мощный Perl. Это было прекрасно, но Ruby по-настоящему не поднялся, пока каркас Rails не сделал его популярным инструментом для создания веб-приложений.

Ниша C # — развитие Windows, как у Visual Basic до этого. Но, будучи языком конкретного производителя, он работает только, когда у вас есть огромная установленная база, как у Windows. Такой подход, напротив, не применяется для языков Google.

Некоторые из новых передовых языков были разработаны для веб-приложений. Другие взялись за запутанные проблемы параллельных вычислений. Третьи нацелены на науку. Ни один не стремится быть заменой языков общего назначения, которые у нас уже есть.

Успешному языку программирования нужно немного удачи

Конечно, кто-то говорит, что нам не нужно больше языков программирования. Я не согласен. Но очевидно, что мэйнстрим не собирается принимать любой язык. Чтобы быть успешным, новый язык должен быть одновременно знакомым и инновационным — и не должен пытаться откусить больше, чем может прожевать.

infoworld

1 комментарий :

CTpaHHoe комментирует...

*накаченный* - это от какого же слова? o_O

Отправить комментарий