Застрявший в JVM, Больной от Java …, Куда пойти?

Не пишите содержание или предоставляйте услугу, которая может обратиться к фанатам;)

11
задан wheaties 24 September 2009 в 18:14
поделиться

11 ответов

Вы думали о Groovy? Я не думаю, что он такой же функциональный, как Scala / Clojure, но он определенно намного функциональнее Java **. В общем, я могу проделать ту же работу в Groovy примерно с 50% кода, который мне потребуется на Java.

Это потому, что Groovy синтаксически похож на Java и обеспечивает беспрепятственный доступ к библиотекам JDK, но добавление множества языковых функций (замыкания, метапрограммирование, свойства) и динамическая типизация устраняют почти все шаблоны, связанные с программированием на Java.

** Я имею в виду функциональность в смысле «функционального программирования», а не «правильная работа»

10
ответ дан 3 December 2019 в 00:43
поделиться

Откровенно говоря, найди другую работу.

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

Даже если вам удастся выучить язык, который вам нравится, если вы являетесь частью команды (а я думаю, что это так), остальной части команды этот язык может не понравиться. Если остальные кодируют на Java, а вы используете язык программирования « заполните пробел », то могут возникнуть проблемы.

Это не так уж и плохо.

Поговорите со своим начальником, расскажите ему, как вы себя чувствуете. Начните искать альтернативы и получите хороший и профессиональный «отпуск».

Нет причины, по которой у вас все еще не могут быть хорошие отношения со своим нынешним начальником. Если в конце концов у них появится новый проект для .net, вы можете вернуться. Об этом также поговорите с ними. Оставьте свои двери открытыми.

9
ответ дан 3 December 2019 в 00:43
поделиться

Я обращусь к вопросам, которые вы подняли по поводу Scala.

  • Поддержка IDE :

    Scala не имеет такого же уровня или поддержки IDE У Java есть - или, если на то пошло, у F # должен быть VS10.

    Тем не менее, у него одна из лучших (возможно, даже лучших?) IDE, поддерживаемых на JVM, за пределами Java. В настоящий момент NetBeans достаточно хорош, и люди постоянно говорят, что IDEA все еще лучше (по слухам). Плагин Eclipse, тем не менее, нестабилен.

    Но вы упомянули трехлетний диапазон, и поддержка Scala в среде IDE должна быть значительно улучшена после выхода Scala 2.8, поскольку он обеспечит некоторую поддержку компилятора для IDE. Дата выхода не определена, но похоже, что это произойдет в течение следующих шести месяцев, может быть, трех. И плагин Eclipse будет обновлен вместе с ним.

  • Инфраструктура модульного тестирования In flux :

    Да, если вы имели в виду, что он динамичный, развивающийся и хорошо поддерживаемый, а не застойный и заброшенный. ScalaTest, Specs и ScalaCheck - это фреймворки высшего качества, совместимые между собой и совместимые с другими фреймворками и библиотеками Java, такими как JUnit и JMock.

    Фреймворки тестирования, по сути, являются почти дочерним плакатом того, что возможно с Scala. .

    РЕДАКТИРОВАТЬ: Scala имеет базовую поддержку модульных тестов в своей стандартной библиотеке (scala.testing.SUnit). Однако, учитывая, что появилось много превосходных, активно поддерживаемых и бесплатных альтернатив, он устарел и, скорее всего, не будет частью библиотеки, поставляемой с Scala 2.8.

  • Проблемы с производительностью :

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

    В любом случае, вы можете писать код Scala как быстрее, чем код Java (даже быстрее с некоторыми предстоящими функциями). И вы можете писать код Scala с функциональными возможностями почти так же быстро, как код Java.

10
ответ дан 3 December 2019 в 00:43
поделиться

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

Плюсы Scala

  • Быстрее, чем Clojure благодаря более статической типизации
  • Ближе к ML (синтаксис, программирование с ориентацией на типы)
  • Более крупный стандартный API (API-интерфейсы Clojure растут очень медленно, потому что они хотят убедиться, что они находят лучшие идиомы, прежде чем публиковать их. Тем не менее, Clojure все еще имеет полуофициальные дополнительные API)
  • Лучшая интеграция практикует с типичным набором инструментов Java (Clojure все еще принимает некоторые решения, поэтому в этом отношении он не так твердо утвержден)
  • Старше, чем Clojure (но Clojure построен на основе очень старого и проверенного ядро: производительность со временем будет только улучшаться; в компиляторе все еще есть место для хорошей оптимизации
  • . Связь Scala с Java кажется более ограничивающей, чем Clojure (взаимодействие между системами статических типов Scala и Java). Иногда то же самое можно сказать и о Clojure (поддержка объектной ориентации не соответствует соотношению 1: 1, но поддержка для этого скоро станет лучше)
  • Рич Хики обладает даром делать выбор, который ставит Clojure в положение технического основные функции, которые будут приняты другими языками в последующие десятилетия. И у него также есть дар объяснять их . Так что используйте их сегодня в Clojure или подождите, чтобы использовать их на другом языке через некоторое количество лет. :)

О распределенном параллелизме

Если ваши потребности в параллелизме распределены, Clojure не У меня еще есть что-нибудь для этого, если вы не запустите его поверх Terracotta или чего-то подобного, и в этом случае вы сможете использовать все его функции параллелизма. Если вы это сделаете, у вас будет лучший опыт распределенного параллелизма, чем у Scala Actors, IMO.

Заключение

IMO Scala пытается делать все и преуспевает в выполнении большей части. Clojure не пытается сделать то же самое, но то, на чем он фокусируется, более чем достаточно и преуспевает настолько хорошо, что большинство людей, действительно знающих Clojure, не захотят возвращаться к чему-то еще. Раскрытие информации : мои личные предпочтения, конечно же, в пользу Clojure. Я надеюсь, что смог быть объективным в том, что написал.

у вас будет лучший опыт распределенного параллелизма, чем у Scala Actors, IMO.

Заключение

IMO Scala пытается делать все и преуспевает в выполнении большей части. Clojure не пытается сделать то же самое, но то, на чем он фокусируется, более чем достаточно и преуспевает настолько хорошо, что большинство людей, действительно знающих Clojure, не захотят возвращаться к чему-то еще. Раскрытие информации : мои личные предпочтения, конечно же, в пользу Clojure. Я надеюсь, что смог быть объективным в том, что написал.

у вас будет лучший опыт распределенного параллелизма, чем у Scala Actors, IMO.

Заключение

IMO Scala пытается делать все и преуспевает в выполнении большей части. Clojure не пытается сделать то же самое, но то, на чем он фокусируется, более чем достаточно и преуспевает настолько хорошо, что большинство людей, действительно знающих Clojure, не захотят возвращаться к чему-то еще. Раскрытие информации : мои личные предпочтения, конечно же, в пользу Clojure. Я надеюсь, что смог быть объективным в том, что написал.

Не хочу возвращаться к чему-то другому. Раскрытие информации : мои личные предпочтения, конечно же, в пользу Clojure. Я надеюсь, что смог быть объективным в том, что написал.

Не хочу возвращаться к чему-то другому. Раскрытие информации : мои личные предпочтения, конечно же, в пользу Clojure. Я надеюсь, что смог быть объективным в том, что написал.

24
ответ дан 3 December 2019 в 00:43
поделиться

Это не совсем игра с нулевой суммой, выучите их все!
ps: я голосую за Clojure , я считаю его самым интересным!

6
ответ дан 3 December 2019 в 00:43
поделиться

Считайте, что вам повезло, что вы можете использовать JVM, потому что JVM становится все более популярной среди альтернативных языков программирования, чем Java.

Помимо Java, существует Groovy ], Scala , Clojure (диалект Лиспа на JVM), JRuby (Ruby на JVM), Jython (Python на JVM), Jaskell (Haskell на JVM), Fan (работает как на JVM, так и на .NET CLR) и многое другое, а также есть OCaml -Java , OCaml, который работает на JVM.

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

5
ответ дан 3 December 2019 в 00:43
поделиться

Инструментальная поддержка Scala и Clojure может быть незрелой, но она постоянно улучшается.

Поскольку вам нравится F #, то, скорее всего, лучше всего подойдет Scala. Я предлагаю попробовать и составить собственное мнение - вы можете обнаружить, что люди недовольны тем, что не имеет для вас значения или над чем можно работать.

3
ответ дан 3 December 2019 в 00:43
поделиться

Не забывайте jRuby и обратите внимание, что IDE необязательна для не-Java

Я думаю, у вас отличная ситуация. Сколько людей получают разрешение на выбор языка реализации? Для всего, что доступно для JVM, выбор вашей среды не является большим ограничением.

  • Вам не понадобится отличная поддержка IDE на менее подробных языках.
  • На таком мощном языке, как Ruby, без объявлений типов, вы не должны Мне вообще не нужна IDE
  • Scala была разработана специально для того, чтобы избавиться от многословного java-блюза
  • Считайте себя удачливым, что у вас есть три года работы: -)
  • Clojure может быть забавным и предоставляет функциональные шаблоны проектирования, безопасные для параллелизма
2
ответ дан 3 December 2019 в 00:43
поделиться

Нет? http://code.google.com/p/noop/ (хотя экспериментально)

0
ответ дан 3 December 2019 в 00:43
поделиться

С точки зрения поддержки IDE и других сомнений, которые у вас возникают, Clojure ничем не лучше Scala. А для человека с опытом ML / F # (или, как правило, со строго статически типизированными языками FP) вы определенно найдете Scala намного ближе к тому, к чему вы привыкли.

0
ответ дан 3 December 2019 в 00:43
поделиться

Если вам нравится ML, вам может понравиться CAL , который является более или менее Haskell 98 для JVM.

Это высокое качество, очень стабильная и хорошая поддержка IDE в Eclipse, но, к сожалению, больше не находится в активной разработке.

0
ответ дан 3 December 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: