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.
Recently, however, many programmers have begun experimenting with more tailored programming languages, which are designed for more specific purposes and intended to extend these existing and well-known languages.
• 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. Crystal is a language that almost serves as a consolidator. It has been designed to bring together the best features of numerous other languages, thereby intending to bring the “best of the best” into a single design. Some of the features of Crystal include static type-checking, which facilitates rapid design. Automatic memory management and native compilation also makes Crystal the programming language of choice for developers that need to develop fast.
• 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 is essentially a re-development of the programming language Go, designed to improve upon the existing platform. The developer found some issues with the open source language that was initially developed by Google in 2007. The Go language is designed to be used for highly specific use cases, such as standalone command-line apps or very simple and small scripts. But beyond that, there are challenges creating more complex programs. Oden ideally makes it easier to develop desktop apps with the language. Oden is designed so that it can be used with Go, to make it easier for adopters.
Python has long been the industry standard language for rapid prototyping, due to its low barrier to entry and ease of use. Nevertheless, the language itself has not changed for quite some time. The Coconut developer is designed to make functional programming easier to use on Python’s imperative programming base and to provide an alternative to traditional Python. Coconut itself should be fairly easy to get into for Python programmers, but it effectively works very differently because of its functional approach.
So what are the advantages to these new languages? For employees, these languages may not be all that sought after in the market right now; there are many more employers looking for Python programmers than Coconut programmers. But for developers and freelance programmers looking for an edge, any of these programming languages may be exactly the tool they need to create programs faster, more efficiently, and more solidly built. The common theme between Crystal, Coconut, and Oden is the ability to make things easier and better that can already be done in other languages. Because of this, certain projects may have an edge when developed in one over the other
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.
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.
For more information, please visit : www.osglsofttech.com
Call: +91-8650030309, +91-8650030308
Mail: info@osglsofttech.com
Address: Shanti Vihar, Behind Mahindra Showroom, Ajabpur Khurd, Dehradun
Comments
Post a Comment