Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Scala designer cites goals for JVM language alternative

Developer Martin Odersky discusses Scala's origins and future

  • Print
  • Feedback

Page 3 of 3

InfoWorld: How does Scala differ from other JVM languages, such as Groovy and JRuby?

Odersky: Groovy and JRuby are both dynamic languages or, more precisely, dynamically typed languages. Scala is a statically typed language, so it's in that sense in the same camp as Java, which is another statically typed language. That said, the types in Scala are, at the same time, more expressive and less cumbersome, so they're less cumbersome to write than in Java. Sometimes, Scala feels like a dynamic language, but it isn't really, because it really does have the static type system. And the static type system has advantages when it comes to performance. Scala programs run very fast, about as fast as Java programs. And it has advantages for tooling so that you can have essentially code completion in IDEs, you can have better refactoring and all these things.

InfoWorld: What's the next step for Scala? Any new versions coming out soon?

Odersky: We just released [version] 2.9.1, which was a bug fix release and a release that gave better performance. The interactive shell is starting up very, very fast now, much faster than before. The next major release, 2.10, will have a number of additions in particular on the side of reflection, so there will be Scala-specific reflection, and there will be a range of new libraries.

InfoWorld: What does "reflection" mean?

Odersky: Reflection means that you can, from a running program, introspect. You can find out what code you are running, what classes you have, what members these classes have. Essentially the whole structure of a program that is in the head of the programmer or that's known to the compiler is then opened at runtime. Reflection does exist for Java since Java 1.1. That gives you essentially the Java view of a Scala program when it runs, but we wanted to lift it up, the whole level, to Scala, so that Scala programs could see themselves as Scala programs, not just Java programs.

InfoWorld: Are you familiar with the Kotlin language from JetBrains? I believe they looked at Scala and wanted to go their own way. Do you have any perspective on Kotlin at all?

Odersky: Yes, I've looked at it. I think it has elements of both Scala and C# in a new language. It's not out yet, so to comment further I think we should all wait when it's out and we have something concrete to try.

This article, "Scala designer cites goals, directions for JVM alternative," was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.


  • Print
  • Feedback

Resources