Зачем разработчику Java изучать дополнительный язык JVM?

Я Java-разработчик, и я хочу знать, что является основным преимуществом изучения языка, такого как Scala или Groovy?

9 ответов

Решение

Изучение другого языка JVM дает такую ​​же выгоду, как и изучение любого нового языка. Это улучшает ваше понимание программирования в целом и, что более важно, добавляет еще один инструмент в ваш набор инструментов.

Таким образом, в следующий раз, когда вам придется решить проблему, вы можете достать гвоздодер вместо молотка.

Чтобы быть более конкретным, Groovy - хороший язык для быстрого макетирования кода, и Scala, хотя я никогда не использовал его, считается идеальным для написания параллельных приложений благодаря своему функциональному подходу. Как уже упоминалось, языки JVM могут взаимодействовать с кодом Java. Что может быть полезно для добавления в устаревшие системы или для быстрого макетирования частей приложения.

Несколько хороших причин, которые приходят на ум:

  • У них есть функции, которых нет в Java и которые вы можете найти полезными в определенных обстоятельствах.
  • Они используют разные парадигмы программирования, разные способы мышления.
  • Изучение других языков открывает ваш разум.
  • Изучение языков заставляет вас осознать их сильные и слабые стороны.
  • Они получают все больше внимания и лучшую поддержку JVM (с Java 7).

Собственно, возможно, задайте себе обратный вопрос:

  • Почему бы не выучить дополнительный язык JVM?

Другие ответы здесь имеют очень хорошие моменты, но есть одна вещь, по которой я скучаю.
Хороший кодер редко идентифицирует себя как "Java-разработчик", "Python-разработчик" или любой "разработчик". Изучение другого языка (будь то язык JVM или нет) заставит вас понять, что в мире есть чему поучиться.

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

Вот почему прагматичные программисты поощряют каждого программиста изучать язык в год.

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

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

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

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

С http://groovy.codehaus.org/:

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

Так что во многих случаях имеет смысл использовать Groovy поверх Java; Например, в модульных тестах Java!

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

Извините больше вопросов, чем ответов..

  • На что бы вы потратили время, если не изучаете новый язык?
  • Почему вы ограничиваете себя языками JVM?
  • Будет ли полезнее изучать разработку через тестирование?
  • Как насчет изучения стандартных патентов на дизайн?
  • Чего вы пытаетесь достичь, вкладывая время?

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

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

Преимущества языка сценариев внутри jvm. Бесшовное взаимодействие с скомпилированным кодом Java.

Другие вопросы по тегам