Why would a Java developer learn an additional JVM language?

I am a Java developer and I want to know What is the main benefit of learning a language like Scala or Groovy?

+7
java jvm jvm-languages
source share
9 answers

You can benefit from learning another JVM language by learning any new language. This improves understanding of programming in general and, more importantly, it adds another tool to your toolkit.

So, the next time you have to solve a problem, you can get a nail gun instead of a hammer.

To be more specific, Groovy is a good language for quickly mocking code, and Scala, although I have never used it, can be useful for writing concurrent applications due to its functional approach. As others have noted, JVM languages ​​can interact with Java code. What can be useful for adding to legacy systems or for quick mockery of parts of an application.

+10
source share

Some good reasons that come to mind:

  • They have features that Java does not have and that may be useful in certain circumstances.
  • They use different programming paradigms, different ways of thinking.
  • Learning other languages ​​opens your mind.
  • Learning languages ​​make you aware of your strengths and weaknesses.
  • More and more attention is being paid to JVM support (since Java 7).

Actually, perhaps ask yourself the opposite question:

  • Why not learn an additional JVM language?
+5
source share

The other answers here have some very good points, but there is one thing that I am missing.
A good coder rarely identifies itself as a “Java developer,” “Python developer,” or any “developer.” Learning another language (whether JVM or not) will make you realize that there is much more to learn in the world.

If you are satisfied with only one language, this usually means that you do not pay attention to the problems that it has, and that there are many tasks that are better suited for other languages.

This is why Pragmatic programmers encourage every programmer to learn a language annually.

+3
source share

The languages ​​you talked about use a different programming paradigm that can help you be more productive. They are also more interesting for work.

Languages ​​such as Scala and Clojure run on the JVM and demonstrate excellent performance on multi-core systems without the need for synchronization.

And, of course, you can still use the full number of libraries available for Java.

+2
source share

from http://groovy.codehaus.org/ :

"Groovy is like a super version of Java. It can take advantage of Java's business features, but it also has cool performance features such as closure, compiler, and dynamic typing. If you are a developer, tester, or script guru, you have to love Groovy."

Therefore, in many cases it makes sense to use Groovy for Java; For example, in Java unit tests!

+1
source share

Because then you will learn a new language, which means a wider range of skills and another way to find problems. But since Groovy and Scala work on the JVM, and you know Java, you can integrate existing libraries and code if you want or need.

+1
source share

Benefits of the scripting language inside jvm. Seamless interaction with compiled Java code.

0
source share

I know with Groovy, you can load scripts (from files) at runtime from your Java application. This allows me to customize the behavior of the application’s actions on the client site, without requiring recompiling the code. This is pretty sweet.

0
source share

Sorry for more questions than answers.

  • What would you spend your time on if you are not learning a new language?
  • Why are you limiting yourself to JVM languages?
  • Would it be more useful to study test-based development?
  • How about studying standard design patents?
  • What are you trying to achieve with the investment of time?

Learning a language is always good, however, if you do not learn them very well and do not use them, you will not get much benefit, because you need to be able to " think in the language ", so that to expand your mind.

Using several languages ​​in a company leads to a lot of additional long-term costs, so you can get more by learning how to better program in your main language, only you can decide.

0
source share

All Articles