With hundreds of programming languages already in existence, why invest the considerable effort in creating a new one? For developers of three newfangled open source languages -- Coconut, Crystal, and Oden -- the answer is simply that, in programming, there are always new niches to fill and new needs to be met.
Scratching the proverbial itch and unwilling to settle for existing tools that they found somewhat lacking, these developers set out to build their own languages, driven by specific goals. For Coconut, which compiles to Python, it’s all about bringing functional programming to the Python language. Crystal is devoted to combining multiple programming capabilities. And the driving force behind the development of Oden is filling in some capabilities absent from Google’s popular Go language.
We spoke with the developers and teams behind each of these languages to get a better sense of the origins and practicality of their emerging languages -- as well as what inspires developers to tackle the task of building a new programming language.
Coconut: Expanding Python’s reach
“I love functional programming. I think the functional paradigm provides a much more natural way to think about problems and yields much more elegant, concise, and readable code as a result,” Coconut developer Evan Hubinger says. “And yet, if you look at the top 20 most popular programming languages, not a single one is functional. But there are functional alternatives to a lot of them. Java has Scala. C# has F#. Python has ... nothing.”
(Note: Java added functional capabilities in 2014 but was not originally developed as a functional language.)
Python, says Hubinger, was his first language. While Python is elegant for imperative programming, trying to use it for functional programming is difficult and obtuse, he says. Coconut is actually his second attempt at functional programming for Python. Hubinger scrapped his previous effort in this vein, a language called Rabbit, after he became dissatisfied with it. Hubinger is a college student who has been interning as a software developer at Yelp.
Crystal: Bringing existing languages’ features into focus
Crystal’s main developer Ary Borenszweig not only acknowledges the wealth of programming languages already in existence, he builds on their best features.
“Yes, there are many languages. However, Crystal mixes some features present in other languages in a way that no other language does,” Borenszweig says.
The language has static type-checking without specifying the types of method arguments or local variables. This enables faster prototyping, less verbose code, and more generic code, Borenszweig stresses.
Crystal also features automatic memory management and native compilation sans a virtual machine.
Sign up for Computerworld eNewsletters.