Прошло всего-то два месяца после выхода библиотеки Microsoft DLR, а реализации разных динамических языков растут буйным цветом. Основные все уже на подходе:
- Python — ну IronPython не в счет, потому как из него DLR собственно и вырос
- Nua - проект интерпретатора lua под .net было загнулся, но теперь авторы его активно реанимируют и переносят на рельсы DLR.
- И, наконец, Ruby - исходники IronRuby сегодня выложены в открытый доступ, под Microsoft Permissive License. Говорят, по синтетическим тестам уже эта версия кое-где обгоняет Ruby 1.8.6.
Ожидается также в скором времени реализация "самого недооцененного" языка — ECMAScript, он же javascript.
Все это довольно радужно, интегрировать какой-нибудь скриптовый движок в свое десктопное приложение получается совершенно раз плюнуть. Не нужен ни громоздкий windows scripting host, все получается даже проще чем подход в boost::python/lua и SWIG.
Веб-приложения тоже выигрывают, можно, скажем, иметь IronPython / IronRuby как фронтенд для интерфейса и всяких несложных операций, и C#/F# как бэкенд. Правда, насколько я понимаю, связь тут обычно все равно через RPC идет, но общая платформа (.net) это дело должна все равно упростить.
Усиленно надеюсь на ответный удар от Sun — хорошо работающий и отлаженный набор Java/Scala + JRuby/JPython.
6 comments:
Ну, Scala работает хорошо, только она не динамический язык.
Нет, я, может, неудачно выразился, -- скала, конечно, не динамический, и работает над ней толпа умных людей, но хотелось бы иметь к ней хорошую отлаженную реализацию JRuby или JPython.
То есть под дотнет есть F# и C#, и к ним, если нужен и динамический язык -- вполне рабочий IronPython. Еще IronRuby вот появился, и у меня почти нету сомнений что это будет доведено до отлаженного состояния. А в JVM пока с Python и Ruby туго.
Ну вот да, разве что на Groovy переходить. Но мне питон и руби предпочтительнее потому что там и библиотечек много, и коммьюнити огромное.
Про ветку scala под .net я в курсе, но вроде она загнулась потихоньку, разве нет? На сайте вот лежит старый компилятор scala 1.4 под .net, а под JVM тем временем уже версия 2.5 вышла..
Ну не знаю, для питона тоже столько всяких приятностей.. И ориентированных именно на использование в динамическом питоне..
Вообще моя тоска по нормальному JPython — это очень субъективное ;) Дело все в том, что у меня давно есть желание нормально освоить JVM как платформу и, возможно, переползать туда. Если бы там был питон или, скажем, ocaml — я чувствовал себя бы более комфортно.
Руби vs Python тоже дело вкуса. Мне тоже руби нравится, он весь такой жутко объектно-ориентированный, RoR опять же. Но как-то не пошло у меня, плюс некоторые неровности с производительностью и уникодом там отпугивают. А питон вот он как-то сразу родным стал, отчасти как раз потому что он простой, как барабан.
В общем, я надеюсь что у sun и на jpython денег теперь немного найдется.
> можно, скажем, иметь IronPython / IronRuby как фронтенд для интерфейса и всяких несложных операций, и C#/F# как бэкенд.
Непонятно только разнесение это, по фичам-то питон на голову выше C# того же. ;)
piranha> Таки, скажем, что-то высокопроизводительное или сильно ответственное (например, связанное с деньгами) -- я б на статически типизированном языке писал. В идеале лучше всего F#/Scala в этом качестве, конечно.
Post a Comment