3 new programming languages: What their creators say

Developers of emerging programming languages shed light on the urge to create new tools

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.

“It has macros to avoid boilerplate code. And it has a very easy way to use existing C libraries,” says Borenszweig, who works at Manas, which builds technical and scientific software.

Oden: Piggybacking on Go’s success

Oden, meanwhile, was developed by a Go fan who had issues with the up-and-coming programming language.

“I have always liked the tooling and deployment story in Go. The learning curve is gentle and the tools work really well. Go the language, however, has some characteristics, which I think are problematic,” Oden developer Oskar Wickström says.

He cites a lack of generics and a difficulty in abstracting control flow, error-handling, and nil-checking.

“The idea with Oden is to lift these restrictions and provide a more flexible type system, while also putting an emphasis on functional programming,” says Wickström, who has been a programmer since 2011 (and dabbles in music). He works at startup Empear, which develops project analysis tools.

“Another main objective is to provide easy interoperability with Go, letting early adopters use their standard Go libraries without having to write bindings,” Wickström says.

Emerging uses for emerging languages

It’s one matter to create a language; it’s another to ensure it’s of use to others who may be bumping up against similar problems. Each of the developers of these three emerging languages see use cases already evolving.

Oden, Wickström says, is good at tasks within Go’s wheelhouse: web servers, back-end services, and command-line tools, to name a few. It is also good for building libraries that provide generic user-defined data structures, generic algorithms, and control-flow abstractions, he says.

Crystal, meanwhile, is suited for web services, because it has nonblocking I/O and lightweight processes, Borenszweig says. Existing applications have included command-line applications, emulators, websites, and IRC bots.

“It can also be used in competition programs, where you need to prototype fast but achieve good performance,” Borenszweig says. “Finally, it can be used to build compilers, such as Crystal.”

Coconut is suitable for the same applications as Python, Hubinger says. This is a “very loose criterion, given Python’s popularity these days,” he says. “Since Coconut compiles to Python, there's nothing Python can do that Coconut can't.”

While Crystal and Oden remain in early stages of development, Coconut reached its 1.0 release milestone in June, followed by a 1.1 release in July.

Crystal was originally written in Ruby, although the compiler has been rewritten in Crystal itself. Coconut’s compiler was written in Python. Oden’s first compiler was written in Racket while its type inferencer was developed using MiniKanren, a relational programming language embedded in Scheme. The compiler was then rewritten using Haskell.

Related articles

Join the PC World newsletter!

Error: Please check your email address.

Tags pythonGoogle

Our Back to Business guide highlights the best products for you to boost your productivity at home, on the road, at the office, or in the classroom.

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Paul Krill

Show Comments

Most Popular Reviews

Latest News Articles


PCW Evaluation Team

Azadeh Williams

HP OfficeJet Pro 8730

A smarter way to print for busy small business owners, combining speedy printing with scanning and copying, making it easier to produce high quality documents and images at a touch of a button.

Andrew Grant

HP OfficeJet Pro 8730

I've had a multifunction printer in the office going on 10 years now. It was a neat bit of kit back in the day -- print, copy, scan, fax -- when printing over WiFi felt a bit like magic. It’s seen better days though and an upgrade’s well overdue. This HP OfficeJet Pro 8730 looks like it ticks all the same boxes: print, copy, scan, and fax. (Really? Does anyone fax anything any more? I guess it's good to know the facility’s there, just in case.) Printing over WiFi is more-or- less standard these days.

Ed Dawson

HP OfficeJet Pro 8730

As a freelance writer who is always on the go, I like my technology to be both efficient and effective so I can do my job well. The HP OfficeJet Pro 8730 Inkjet Printer ticks all the boxes in terms of form factor, performance and user interface.

Michael Hargreaves

Windows 10 for Business / Dell XPS 13

I’d happily recommend this touchscreen laptop and Windows 10 as a great way to get serious work done at a desk or on the road.

Aysha Strobbe

Windows 10 / HP Spectre x360

Ultimately, I think the Windows 10 environment is excellent for me as it caters for so many different uses. The inclusion of the Xbox app is also great for when you need some downtime too!

Mark Escubio

Windows 10 / Lenovo Yoga 910

For me, the Xbox Play Anywhere is a great new feature as it allows you to play your current Xbox games with higher resolutions and better graphics without forking out extra cash for another copy. Although available titles are still scarce, but I’m sure it will grow in time.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?