What Their Creators Say
The creator's-eye view may not unlock a programming language's every secret, but talking with the author of a programming language can lend significant insights as to where you should place your programming bets.
InfoWorld Editor at Large Paul Krill caught up with nine creators of programming languages both popular and rising to discuss the benefits, use cases, criticisms, and future direction of their wares.
Ryan Dahl, Node.js
InfoWorld: What's the main benefit [of Node]?
Dahl: Node does things a bit differently than other programming platforms. The main thing is that it handles I/O very differently, so it doesn't allow the user to lock up the program, ever. It keeps the user handling new things, so it's very useful for network programming. You often are dealing with many people at the same time on your server, and you're juggling these different connections. Node encourages the developer to continue to process connections without blocking. And because of this model of handling I/O, users tend to find it easier than developing with a traditional programming language for servers.
Guido van Rossum, Python
InfoWorld: Why is there criticism that [Python] is too slow?
Van Rossum: People pick a tool and build something incredible, and as part of that incredible thing, they're doing crazy stuff [that] involves doing a whole bunch of computation. At some point, you end up with one little piece of your system ... where you end up spending all your time. If you write that just as a sort of simple-minded Python loop, you will see that that is the bottleneck in your system. It is usually more effective to take that one piece and replace [it] with a little bit of code in C or C++ rather than rewriting your entire system in a faster language.
Full interview: Van Rossum: Python is not too slow
Yukihiro Matsumoto, Ruby
InfoWorld: What are your goals for the language moving forward?
Matsumoto: My goal is to make programmers happy. So currently, I think I was successful [at making] Web programmers happy. So I want to help more programmers, like in the embedding field -- the small-device programmers, or the high-performance computing programmers. Like supercomputers.... I'm currently working on an alternative subset or dialect of Ruby for the small devices. I'm going to make it public early next year. Of course, mobile computing is the way to go, so that's one of the reasons I focus on the Ruby dialect working on the smaller devices.
Full interview: Ruby creator sets sights on mobile
Dmitry Jemerov, Kotlin
InfoWorld: Why should I use Kotlin over, say, Groovy or JRuby?
Jemerov: Both Groovy and JRuby are dynamically typed languages, and for tasks that are a good fit for dynamic languages, you can use Groovy or JRuby and be very productive. If you are developing, for example, a small or medium-scale Web application, then probably JRuby on Rails or Groovy with Grails is one of the most productive options that you can have. But if you are developing something large or more complicated, more performance-critical, perhaps a high-frequency trading application, then it really helps to have a statically typed language like Kotlin.
Full interview: Kotlin project adds another language option to JVM
Martin Odersky, Scala
InfoWorld: What was your intent in developing Scala?
Odersky: It was curiosity, whether we could combine functional and object-oriented programming in a package that was useful to people [and] would make it a powerful language.... It felt like it would be the right thing to do, to have very complementary strengths. Functional programming is in a sense very clean, it can be very powerful. It makes it easy to construct things out of simple elements. Object-oriented programming has a good story when it comes to essentially the evolution of large systems.... I always felt it would be interesting to combine the two, and I think the success of Scala has shown that there is something.
Full interview: Scala designer cites goals for JVM language alternative
Bjarne Stroustrup, C++
InfoWorld: When should a developer opt for native programming, and when should a developer opt for a virtual machine-based language?
Full interview: Stroustrup reveals what's new in C++ 11
Lars Bak, Dart
Stefan Karpinski, Julia
InfoWorld: When did you develop Julia, and what was the main intention?
Karpinski: We started talking in August 2009 about our frustrations with technical computing languages. Primarily, you have to use many different languages for different things.... The idea is [Julia] should be extremely high productivity. To that end, it's a dynamic language, so it's relatively easy to program, and it has a very simple programming model. But it has extremely high performance.... For Matlab, R, and NumPy ... you need to at some point drop down into C to get performance. One of our goals is to have sufficiently good performance in Julia that you'd never have to drop down into C.
Full interview: New Julia language seeks to be C for scientists
Rich Hickey, Clojure
InfoWorld: What was your intention in [developing Clojure]?
Hickey: My intention was to make a dynamic, functional programming language for the JVM.... I had been building large systems in C# and Java, and the only way we could do them sanely was to do them in a functional style, but the functional style is not idiomatic in those languages. I wanted a language where functional style was idiomatic, and that's the case for Clojure.... Fundamentally, Clojure gives developers a lot of leverage. They can write short, succinct programs that work correctly the first time and are fast enough for production use.... It's very popular among startups because they have new ideas they need to pursue quickly.
Full interview: Clojure inventor Hickey now aims for Android