when they discover new programming languages, developers hope that it will finally be the one in their hands that will get rid of all their problems and barriers and that it will turn programming into a much easier task in which to bring applications and services to life without complications. But it happens very rarely. Both in the case of general purpose languages and those designed for a specific niche of activity.
But finding a language that really simplifies tasks is not always impossible, and sometimes there are languages with very intuitive syntax and logic, with which to create elegant code that can be understood effortlessly and with just a couple of glances. Be careful, this does not mean that the code should not be commented, something that must always be done to avoid driving crazy those who have to review it at a given time.
Fortunately, the development process of new programming languages is not carried out to prove the worth of the developers, or to make it even more rare and intricate than the previous ones. In general, they are created in response to a problem common to many developers that the creators of the language want to solve. And although most developers will continue to code daily in one or more languages that are already old and solid, they always look for tools to solve their problems.
Especially when it comes to programming languages created specifically for a particular area, which are known as DSL, or Domain Specific Languages. But there are also other new generals who can easily pull the chestnuts out of the fire for their discoverers. Below are seven, both niche and general, created to make development easy.
We can consider Reactiva Clojure as a mixing Clojure with React, which has generated a system that combines all the possibilities offered by reactive front-ends with the functional robustness of Clojure. It allows you to deploy a complex collection of front-end components and insert them into code along with functions. The Reactive framework fills in the details and makes sure that application data flows seamlessly between your components and the database.
Clojure provides the foundation for the language, which will result in the possibility of making feasible use cases that are even out of the ordinary. In addition, it will allow you to debug them. For now it is considered a good option for writing the code that will be used to bind front-end components. It features a multi-threaded model, making it suitable for complex and reactive dashboards that display information about multiple tasks at the same time.
Nickel is one of the so-called niche programming languages: its mission is to create configuration files, something that, although it may not seem like it, is very practical when it comes to developing modern architectures. This language offers a very template-like foundation with built-in logic, which you can use to create non-static configuration files. That is, one of its parameters can have a value some days, and others a different one. When executed, Nickel generates a new configuration file that satisfies all the parameters it has received.
This language has a structure that above all we can consider as functional. In addition, it has type checking. It is a language that also seeks correctness, and if a piece of code is well written, there are guarantees that it will conform to both the syntactic rules and others that you want to reinforce. Its compiler allows you to write code contracts, and then check if the output obeys them.
When Kobra was created, its developers thought of giving life to a language that would make machine learning available to engineers and scientists, among other professions, and not just to developers of different levels. That is why they gave life to Kobra, conceived as a visual language for machine learning.
u editor composes code-like sequences, with draggable and droppable pieces that represent built-in routines common in statistical analysis and machine learning. The development process with Kobra is similar to R, but with data frames built from table-formatted data and a collection of graphical display functions for generating dashboards and documents.
For some time now, many DevOps teams have been developing code for the different APIs that are compatible with different clouds. But microsoft has gone further and has been in charge of developing a simplified language to start machines in Azure, as part of its “Infrastructure as Code” philosophy. This language is Bicep.
It is characterized by offering a declarative format in which efficiency prevails in order to detail most of the different pieces of code that a developer may want to integrate into a new instance. It has basic type safety, which can help prevent errors. Also, there is a syntax-aware editor in VS Code.
This language is designed for high-level thinking about infrastructure, and has a strongly declarative structure that allows you to include statements in any order, then let the Azure resource manager optimize execution.
Frink is a programming language created to avoid floating point errors when working, for example, with coins. For this reason, this language, created to take into account units and fractions, will be very useful in sectors that have to do with carrying out precise calculations and in large quantities. For example, for the banking sector and in any related to weight and distances.
Each Frink variable not only stores a number, but also stores an indication of the quantity’s unit of measure. It can be a unit of measure for weight, distance, power or currency. Measurement conversion in Frink is also easy thanks to its configuration file. Frink’s main working mechanism also employs arbitrary precision numbers to reduce problems with rounding. It works similarly to type checking, but with numeric units of measure.
Faust is a programming language generated for a really specific task: process the sound so that it has the best possible quality, something very important in fields such as game development or virtual reality. And in general, for any application that bases its operation on good sound quality.
Its name is short for Functional Audio Stream, and all of its functions develop a sound processing channel. Its back-end splits the sound it receives and converts it into a numerical representation. The Faust code itself is a set of functions that can be composed or combined to achieve a result.
For example, you can generate an echo of a sound or a reverb effect just by performing various operations with the code. Faust’s code can be integrated into C++. C, WebAssembly and Rust, among other programming languages, which facilitates its integration in all kinds of projects.
Many developers already use WebAssembly without even throwing code into it directly. Instead, they use compilers that convert high-level languages into WebAssembly that will run in browsers. However, this language is also beginning to be used beyond web browsers. It is used, for example, to encode instructions with a Java JVM-like stack engine.