понедельник, 26 июля 2010 г.

[prog] Прям бум языкостроения какой-то :)

Временами складывается впечатление, что сейчас только ленивый не создает и не продвигает собственные языки программирования. Вот недавно прошла конференция OSCON 2010, в рамках состоялся Emerging Languages Camp, где обсуждались следующие новые (и не очень) языки программирования:

  • AmbientTalk – язык, который поддерживает какую-то новую парадигму – ambient-oriented programming. Вроде бы предназначен для разработки приложений, которые вынуждены работать сразу на нескольких мобильных устройствах в ненадежной сетевой среде;
  • BitC – относительно новый низкоуровневый, но очень-очень безопасный язык для системного программирования;
  • Clojure – очередная реинкарнация Lisp-а, на этот раз для JVM (нужно заметить, что о Clojure сейчас очень много говорят, а применяют, думаю, намного реже);
  • CoffeeScript – язык, который транслируется в JavaScript;
  • Coherence – какой-то новый язык, как я понимаю, со встроенной поддержкой конкурентности;
  • Cola – статически-типизированный язык, который компилируется в .NET или в Parrot VM;
  • D – много обещавший когда-то нынешний долгострой;
  • F# – раскрученная благодаря MS производная от OCaml-а на .NET;
  • Factor – еще один новый функциональный язык, ориентированный на высокую производительность;
  • Fancy – какой-то язык, с похожим на Ruby и Smalltalk синтаксисом;
  • Frink – язык и система для вычислений;
  • Go – ну куда же без самого обещающего нативного языка последнего времени, да еще от Google ;)
  • Gosu – еще какой-то язык, чей сайт у меня сегодня не открылся вообще. Поэтому что это за зверь совершенно не понятно :)
  • Io – не новый язык с прототипным ООП и собственной VM;
  • Ioke – еще один язык для JVM от еще одного разработчика JRuby, вобрал в себя идеи из Io, Smalltalk, Lisp и Ruby;
  • Kodu – язык для визуального программирования игр от MS Research;
  • Mirah – бывший Duby, новый язык от одного из разработчиков JRuby. Ruby-новый синтаксис, но статическая типизация и генерация быстрого Java-байткода;
  • Newspeak – новый язык, который пытается брать идеи из Self, Smalltalk и Beta;
  • Noop – новый язык, который, если мне отшибает память, пару лет назад начали разрабатывать Google-овцы. Ориентирован на JVM;
  • Objective-J – язык и фреймворк для разработки Web-приложений без необходимости знать о HTML, CSS и прочей лабуды;
  • ooc – статически-типизированный современный мультипарадигменный язык, транслирующийся в C-шный код.
  • Slate – прототипный ОО язык, берущий идеи из Self, Smalltalk и CLOS;
  • Stratified JavaScript – расширение JavaScript для более мощной поддержки конкурентности;
  • Thyrd – еще один язык для визуального программирования;
  • Tyron – какой-то язык, синтаксис которого является помесью Python и Smalltak;
  • Ur – новый функциональный язык, который, по заверениям авторов, имеет более мощную систему типов, чем Haskell;

Если добавить сюда еще и Zimbu, Groovy с Groovy++, а так же Lisaac, то знатный зоопарк новых языков получается. Не знаю кто что думает, но когда я смотрю на этот список языков, то вспоминаю русскую житейскую мудрость – когда собаке делать нечего, она яйца лижет.

В подготовке данного материала были использованы ссылки:

http://olabini.com/blog/tag/emerging-languages/
http://emerginglangs.com/speakers/

PS. Из всего списка у меня появилось желание посмотреть поближе только на ooc.

12 комментариев:

night beast комментирует...

И это правильно :)

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

встречный вопрос: тебе самому ни разу изобретать велосипед не приходилось?

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

Выводы из поста напомнили отношение к науке в конце 19-го века - "всё что можно было открыть уже открыто, осталось кое-какие мелочи поуточнять".
Фигвам, дорогие мракобесы - языки ещё строить и строить, мы только в самом начале долгого пути ;)

4ybaka комментирует...

А почему D - долгострой? Новые версии компилятора с новыми плюшками выходили настолько часто, и так меняли сам язык (D2), что это было основным фактором, тормозящим его использование. А замороженный D1 вполне себе стабилен и работоспособен.
По моему, единственное, что там можно назвать долгостроем - это отсутствие хорошей IDE. Правда и тут проблема - DigitalMars сразу сказали, что IDE они пока не собираются делать. Так что и тут долгострой не вышел...

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

@night beast & Left: на эту тему нужно будет разродиться отдельным постом :)

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

@4ybaka: долгострой, поскольку никто за все время разработки D так и не знает, что же получится в итоге.

А по поводу d1/d2 -- смысла писать на d1 нет, поскольку под d2 все придется переписывать. И, судя по частоте анонсов, на d1 особо никто и не пишет.

4ybaka комментирует...

Частоте анонсов чего? Версий компилятора? Они все время вместе с D2 выходят. Единственная разница в том, что в D1 только баги фиксятся. Так что может и пару раз пропустили релиз, но я такого что-то не припомню. И кстати, большинство людей, использующих D в реальных проектах как раз используют D1, потому что никто не даст время на исправление несовместимостей с новым компилятором.
Ну и не совсем понятно, зачем переписывать все с D1 на D2? Как я уже говорил, D1 вполне работоспособен. Просто на D2 по приятнее писать будет:)
В общем не совсем понял Ваш ответ)

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

довольно много неплохих и интересных языков представлено, имхо

почему сразу "нечего делать"? кому то нравится на ПХП стрнички делать, кому то на С++ утилитки для раскладок.. а кому то нравится на том же С++ грамматику и компилятор сделать. Ту хум хау.

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

@4ybaka:

>Частоте анонсов чего?

Всего. Любых библиотек или каких-либо программ, написанных на D1.

>И кстати, большинство людей, использующих D в реальных проектах как раз используют D1, потому что никто не даст время на исправление несовместимостей с новым компилятором.

Хотелось бы посмотреть на этих людей, тем более на большинство.

>Ну и не совсем понятно, зачем переписывать все с D1 на D2?

D1 кто-нибудь будет развивать? Нет, пока не видно таких. В лучшем случае будут баги фиксить, пока. Но это означает программировать на мертвом языке без будущего.

А чтобы перевести код с D1 на D2 нужно будет очень сильно его перелопатить.

Alex Ott комментирует...

Clojure уже применяют достаточно часто, включая коммерческие компании

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

@Alex Ott: возможно, специально я его применение не мониторю. Но у меня сложилось впечатление, что о Clojure очень много публикаций в блогах, но при этом мало упоминаний о проектах, сделанных на Clojure. Тогда как о Scala говорят меньше, но чаше встречаются рассказы о выполненных на Scala проектах.

Хотя, возможно в около-Lisp-овых кругах о Clojure больше информации.

Alex Ott комментирует...

навскидку назову FlightCaster, Runa, Sonian Networks, DocuHarvest, BackType, DRW Trading Group, пара российских стартапов...
я говорил об этом на MarginCon.

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

@Alex Ott: за ссылочку спасибо, поглядим.

А Scala даже я у себя на работе пару лет назад использовал для внутренних инструментов :) И сейчас, когда потребовалось для Java библиотеку сделать, долго в сторону Scala смотрел.