Introducing Loop - a new JVM language
Ah the JVM. Whatever your needs are, there's probably a JVM language suitable for you, whether Groovy, Scala, JRuby or just straight up Java. Now it's time to open arms to another option - this one being strong, dynamic and duck typed.
Inspired by the likes of Haskell, Scheme and Ruby, strongly-typed language Loop has arrived to help ease your woes with parallelism, but also focus on being as simplistic as possible for concurrent (multi-threaded) programming, which is often a bugbear for some JVM languages. Mentioning no names of course.
Developed by former Google employee and JAX-RS specification co-author, Dhanji R. Prasanna, Loop is still very much a little research project in progress but shows promise. On its simple website, its philosophy is clear:
As a programming language, Loop prizes readable, compact and elegant syntax. Many design choices are made in favor of clarity over convenience.
Loop also emphasizes performance over purity or theoretical considerations. This means that practical design choices generally rule the day
The overall philosophy is to bring together the best features of functional programming with the practical and ease-of-use lessons from modern imperative and OO languages, but to do so in a consistent, pragmatic and elegant form.
Although most languages aspire towards these ideals, some get lost in translation. Just an endless array of tacked-on features purely acting as superfluous material that says how good this language is. The problem is that it just makes things more complicated as you go along. But we're hopeful here for Loop and hope it can act upon its mantra and become King of Convenience.
Scripts are compiled on-the-fly to optimized JVM bytecode thus suffers no performance penalty to interpretation; all while maintaining the quick, edit-and-run responsiveness of compiled code. It also states that Loop 'doesn't have any of the baggage of the host platform (Java), but interoperates tightly and borrows semantically from Java where appropriate.' So keeping ties close but not too close.
Here's the simplest Hello World example:
To check out what else Loop can do in terms of basic expressions and how strings, operator et al work, check out the excellent Getting Started documentation provided.
The future roadmap includes plans for a comprehensive web/app framework and a graphics library, plus further loop shell work, which will be aided by a community involvement, should Loop get some backing. So what do you make of the latest JVM language?