9 Top Languages: What Their Creators Say

From Node.js to C++, creators of mainstay and upstart programming languages discuss the upside and future of their creations.

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.

Full interview: Node.js inventor extends JavaScript programming beyond browsers

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?

Stroustrup: C++ has significant strengths compared to "virtual machine-based languages" when it comes to building infrastructure. In other words, where performance, reliability, resources, and complexity need to be tightly controlled. For example, you wouldn't write a JavaScript engine in JavaScript, and you probably wouldn't write a "first to market" simple Web app in C++. You would write the foundations of a Google, an Amazon, a Facebook in C++, but maybe not the rapidly changing top layers of such systems. C++ comes in strong where power consumption is an issue -- for example, server farms and handheld devices.

Full interview: Stroustrup reveals what's new in C++ 11

Lars Bak, Dart

InfoWorld: I understand that Dart actually compiles to JavaScript code. Why not just use JavaScript then?

Bak: Because we have ... a Dart virtual machine developed for the language that gives faster performance and better startup time. One of the problems in my mind with JavaScript is if you have a big application, it takes a long time to start the Web application using JavaScript. If you would have used a Dart VM, we have an infrastructure called snapshotting that will allow an application to start 10 times faster. What we can see is Web applications are getting larger and larger, and as they grow bigger, startup performance is very important.

Full interview: Why Google Dart beats JavaScript

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