Динамические языки - какой выбрать? - PullRequest
4 голосов
/ 24 июня 2009

Динамические языки находятся на подъеме, и их много: например, Ruby, Groovy, Jython, Scala (статический, но имеет внешний вид динамического языка) и т. Д. И т. Д. Я имею опыт программирования на Java SE и EE, и я хочу расширить свои знания на один из этих динамических языков, чтобы лучше подготовиться к будущему.

Но на каком динамическом языке я должен сосредоточиться на обучении и почему? Какой из них будет предпочтительным языком в ближайшем будущем?

Ответы [ 12 ]

16 голосов
/ 24 июня 2009

Изучение Ruby или Python (и в меньшей степени Scala) означает, что вы будете обладать очень переносимыми навыками - вы можете использовать версию Java, нативную версию или версию .NET (IronRuby / IronPython). Groovy хорош, но специфичен для JVM.

Быть «лучше подготовленным к будущему» сложно, если вы не предусмотрите конкретные сценарии. Над какими вещами ты хочешь работать? У вас есть проект, который вы могли бы с пользой реализовать на динамическом языке? Достаточно ли мало, чтобы примерить пару из них, чтобы почувствовать, как они отличаются?

10 голосов
/ 24 июня 2009

Scala не является динамическим языком вообще. Вывод типа не означает, что он не типизирован. Тем не менее, это очень хороший язык, который имеет хорошее сочетание ООП и функционального программирования. Единственная проблема - некоторые ошибки, с которыми вы сталкиваетесь по пути.

Поскольку вы уже являетесь опытным Java-программистом, он прекрасно впишется в ваш набор навыков. Теперь, если вы хотите пройти весь путь динамически, оба языка Ruby или Python - это классные языки. Существует спрос на оба языка.

8 голосов
/ 24 июня 2009

Я бы лично порекомендовал Clojure. Clojure - это потрясающий новый язык, который набирает популярность быстрее, чем я когда-либо видел. Clojure - это мощный, простой и быстрый Лисп, реализованный на JVM. Конечно, он имеет доступ ко всем библиотекам Java, как и Scala. Об этом уже написана книга, она переросла в версию 1.0 и в разработке три плагина IDE, причем все три очень удобны в использовании.

5 голосов
/ 24 июня 2009

Я бы посмотрел на Скалу. Почему?

  1. это язык JVM, так что вы можете использовать свои текущие навыки Java
  2. теперь он имеет много инструментов и поддерживает IDE (например, Intellij будет обрабатывать проекты Scala)
  3. имеет функциональный аспект . Функциональные языки, похоже, в настоящее время становятся все более популярными, и я думаю, что это парадигма, которую стоит изучить в будущем

Мое (полностью субъективное) мнение таково, что Scala, похоже, привлекает большое внимание, которое Groovy привлек год или два назад. Я не пытаюсь быть здесь спорным или предлагать, чтобы это улучшило язык, но, похоже, это новый язык JVM de jour .

Кроме того, язык с некоторыми динамическими атрибутами является F # от Microsoft. В настоящее время я смотрю на это (и игнорирую свой собственный совет по пунктам 1 и 2 выше!). Это функциональный язык с объектами, построенный на .Net, и в настоящее время он привлекает большое внимание.

4 голосов
/ 24 июня 2009

Я обнаружил, что Groovy - это относительно легкий переход от обширного фона Java - это своего рода более удобная версия Java. Он очень хорошо интегрируется с существующим Java-кодом, если вам нужно делать подобные вещи.

4 голосов
/ 24 июня 2009

В игровой индустрии Lua, если вы дизайнер на базе Adobe, Lua также хорош, если вы программист на встраиваемых системах Lua - практически единственное легковесное решение, но если вы ищете веб-разработку и инструмент General скриптинг Python будет более практичным

3 голосов
/ 24 июня 2009

Я бы порекомендовал Python. У этого есть огромное сообщество и есть зрелая реализация (наряду с несколькими многообещающими, пока еще не зрелыми). Насколько я знаю, Perl теряет большую популярность по сравнению с более новыми языками, возможно, из-за своей «неинтуитивности» (нет, не начинайте меня с этого).

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

1 голос
/ 02 июля 2009

Принимая во внимание ваше прошлое, я бы порекомендовал язык, в котором семантика похожа на ту, о которой вы знаете. Следовательно, такой язык, как Scala, Fan, Groovy был бы хорошей отправной точкой. Как только вы освоите базовую семантику использования функционального языка (а также начнете его любить), вы можете перейти на язык, подобный Ruby. Таким образом, сокращается время для вас, а также тот факт, что вы можете стать программистом полиглота.

1 голос
/ 24 июня 2009

Если вам нужен язык с большим количеством модулей (почти для всего!), Выберите Perl . С CPAN вы всегда найдете то, что хотите, не изобретая велосипед.

1 голос
/ 24 июня 2009

JScript довольно полезен и, безусловно, динамический язык ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...