Clojure inventor Hickey now aims for Android

Clojure founder Rich Hickey discusses his mobile aspirations

Clojure, pronounced "closure," is a functional programming language that's geared toward the JVM (Java Virtual Machine) but also accommodates Microsoft's Common Language Runtime and JavaScript environments. Rich Hickey, founder of data management technology vendor Datomic, is the author of Clojure. After speaking at the Clojure/West conference in San Jose, Calif., last Friday, Hickey talked with InfoWorld Editor at Large Paul Krill about Clojure, including mobile application development ambitions, and about Datomic.

InfoWorld: When did you develop Clojure? What was your intention in doing so?

Hickey: I started in 2005, and the first version I released was toward the end of 2007. It's kind of a Lisp for the JVM. My intention was to make a dynamic, functional programming language for the JVM.

[ Also in an interview with InfoWorld, Python founder Guido van Rossum defends that language's performance. | Subscribe to InfoWorld's Developer World newsletter to get more news on software development. ]

InfoWorld: Why did you see a need for that?

Hickey: Because 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.

InfoWorld: What's attracting developers to Clojure?

Hickey: 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. They're empowered by it.

InfoWorld: What would be the ideal application to write with Clojure?

Hickey: Clojure is designed to be a general-purpose language. It should be useful anywhere Java is. The areas where we've seen it take off most rapidly are, first of all, among startups. It's very popular among startups because they have new ideas they need to pursue quickly.

InfoWorld: Startups in what realm?

Hickey: All kinds -- people doing sales prediction on the Web and flight delay prediction, some social network stuff. Then it's also popular with people who are doing big data [projects].

InfoWorld: Where would you not want to use it?

Hickey: It's not great for scripting jobs because between the startup time in the JVM and the startup time in Clojure, it's not really good for places where you might use Perl. It's a little bit too bulky currently for smartphones, but we're working on that. Targeting Android is a little bit of a challenge at the moment. There are definitely people working on it.

InfoWorld: How would you persuade developers use Clojure for Android software development?

Hickey: People who like Clojure will choose it because of the power. Lisps traditionally empowered developers because you can eliminate anything that's tedious through macros, and that power is really what people keep going back for.

InfoWorld: When do you expect that developers will be able to use Clojure for building Android apps?

Hickey: They can right now. It's mostly an optimization [effort that is required] to make the startup and memory usage smaller and faster.

InfoWorld: What's the intention behind Clojure targeting not just the JVM, but also Microsoft's CLR and JavaScript? Is there a difference in Clojure's relationship with the JVM versus its relationship with the CLR and JavaScript?

Hickey: It actually has sort of the same relationship. Clojure was always designed to be a hosted language. It was designed to have a relationship to the host environment, so if you're a Java developer, you have a bunch of libraries that you want to use and want to continue to use, you know how to deploy Java. Clojure being hosted lets you do all those things and deploy it the same way you always did. The same thing on the CLR -- if you're on the CLR, you have .Net libraries that you care about and you know how to deploy .Net. When you do Clojure there, it's the same story. On JavaScript it's the same idea. We let you reach the JavaScript libraries but run everywhere JavaScript does.

InfoWorld: Clojure is good for multithreaded programming. In this age of multicore programming, shouldn't Clojure have a bright future in that regard?

Hickey: Yes, absolutely. Clojure definitely has a sound model of state that keeps the programmers from having to use locks, and so it's great for concurrent programming and multicore.

InfoWorld: What's the status of Clojure?

Hickey: We're on version 1.3; version 1.4 should be [available] in the next month or two.

InfoWorld: What's going to be the main attractions in that?

Hickey: The main improvement is an extensible reader. You can add your own data types to what can be read.

InfoWorld: You talked about Datomic, which was developed in Clojure. What's the main purpose of Datomic?

Hickey: Datomic is a general-purpose database. It's for use by all JVM languages. It's for Java programmers and Scala and Clojure programmers and JRuby, all those. The appeal is that it's a transactional system that deals well with time and has scalability properties of these new distributed storage services.

InfoWorld: Right now, the marketplace has Oracle, SQL Server, MongoDB. What problem is Datomic solving that they're not solving?

Hickey: It's like traditional databases in being consistent and transactional, and it's like these new databases in being oriented toward flexibility for the application developer. It's bridging those two worlds.

InfoWorld: Is Datomic cloud-based data management?

Hickey: It can be. Our first solution is definitely in the cloud, and that's another area where we're pointedly different. It's meant to run in the cloud, unlike when you try to move a traditional database to the cloud it's a misfit in some ways, because it wants reliable disks and there aren't reliable disks. It's a new way of thinking about storage -- moving storage out of the database.

This article, "Clojure inventor Hickey now aims for Android," 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.

Copyright © 2012 IDG Communications, Inc.