11 New Programming Languages ​​”Digging Niches”

As the British poet Alexander Pope said, “Hope springs eternal in the human breast”, I believe that even poets who are not hackers will understand the hope of discovering a new programming language. Software developers are forever hoping that a language built from a unique combination of Unicode characters will finally solve all the problems, making coding easy with just a few clicks.

Pope will certainly understand the hope of a syntax that is intuitive enough to just have to imagine the answer. You’ll also appreciate the desire to get your hands on a new code that looks as elegant and effortless as the triple axel you see at the Olympics or the glide downhill (though it’s not).

ⓒGetty Images Bank

But most of today’s languages ​​aren’t built to show ingenuity or coding prowess. It was created as a developer (creator) came up with a solution to a problem that he desperately wanted to solve. While the majority of developers will continue to code in one or more outdated off-the-shelf languages, they are also ‘forever’ looking for new tools to help solve coding problems. In particular, with the rise of domain-specific languages ​​(DSLs), this trend has become more pronounced. These languages ​​focus on a specific domain and are not universally used. But that’s why it can occupy a special place in the toolbox.

Here we look at 11 new languages ​​that have found a niche. Although it’s not necessary right now, everyone has something to improve on what they do.

Reactive Clojure
It is the result of combining Clojure and React. In other words, it is a system that combines all the possibilities of a reactive frontend with the robust and functional advantages of closures. Reactive closures allow you to lay out a complex collection of front-end components and tie them together with functionality. Reactive frameworks fill in the details and allow application data to flow seamlessly between components and databases. Closures allow for unusual use cases and provide a functional basis for debugging.

Is this union natural? Time will tell. Reactive closures are a useful option for writing glue code that holds frontend components together. The multithreaded model fits naturally into complex, responsive dashboards reporting multiple tasks simultaneously.

Nickel
One of the ironic games programmers play is pushing most of their work into configuration files. These files, encoded in JSON, YAML, or even XML, are good coding ideas that translate into sophisticated consciousness. In some cases, you don’t even need to write actual code. You can endlessly rearrange the various configuration files to get the job you need.

Therefore, a programming language for generating configuration files nickelis meaningful Nickel is like a template with embedded logic that can be used to create non-static configuration files. The parameter can have one value on weekdays and another value on weekends. When executed, Nickel creates a new configuration file suitable for all parameters received.

The structure of nickel is largely functional, and type checking is possible. The key is ‘accuracy’. This is because a well-written piece of nickel code almost guarantees that the output obeys both the syntax rules and any other rules that must be enforced. Nickel’s compiler allows you to write a contract and then check that the output complies with the contract. Of course, there is the tricky part in writing the code to create the configuration file. However, it is a very practical solution for modern architectures.

Cobra
cobra Developers wanted a language that would open machine learning to engineers, scientists, and (hence) other non-specialized coders. The result is a visual language for machine learning. Cobra’s editor organizes code-like sequences with drag-and-drop tiles representing common built-in routines that support statistical analysis and machine learning. The process feels like R, with dataframes made up of tabular data and graphical displays for creating dashboards and reports.

Bicep
One of the useful features of the cloud is starting and deactivating servers to handle data spikes. At one time, it took weeks for data center hardware teams to request, install, test, and configure systems. Now with the cloud, all of this can be done in minutes or seconds. Many devops teams have started writing code for different APIs supported by different clouds. Microsoft went further and decided to create a simplified language for launching systems in Azure as part of its Infrastructure as Code (IaC) philosophy.

bicepThis language provides an efficient and declarative form of describing most of the different bits that developers want to flip in a new instance. Some basic type-safety helps prevent errors, and there is also a syntax-aware editor available in VS Code. The language itself is designed for higher-order thinking, and its strong declarative structure allows you to include instructions in any order, helping Azure’s resource manager optimize execution.

Frink
Some say that one requirement for choosing a bank is that the bank’s accounting software calculates in cents using integers rather than floating-point numbers in dollar units. The dangers of floating-point errors are well known and too great. How many bugs were caused by insignificant rummaging through numbers?

fringeis a ‘unit aware’ language created to solve this very problem. Each variable in Frink displays not only a number, but also a unit of measurement, such as tons, watts, feet, and meters. Unit conversion is easy thanks to Frink’s configuration files. The core mechanism also reduces rounding problems by using arbitrary precision numbers.

Faust
Sound synthesis may seem like a very small market, but it is very useful in game development, virtual reality, and any application that takes advantage of superior sound quality. If so, a domain-specific language that gets its name from a combination of functional audio streams. Faustpay attention to Faust’s architecture is purely functional, and all its functions make up the sound processing pipeline. The backend breaks the incoming sound into numerical representations, and the code itself is a set of functions that can be constructed or combined into an end result. For example, you can split the chord output and add a delay to create an echo or reverb. Because Faust’s code is converted to C++, C, LLVM bit code, WebAssembly, Rust, etc., it can be used in almost any project.

Melrōse and Glicol
Whoever writes the code knows how a programmer starts a band. Instead of advertising and interviewing all applicants to find a drummer, you simply write code that describes the rhythm of the drum machine. Then, all other band members can be replaced with subroutines. In that way, you could make an entire symphony orchestra.

Melrose and Glycol are music programming languages ​​designed for this style of music creation. Both can create sophisticated compositions with a few keystrokes. first, Melroseoperates at the high level of the standard 12-note octave commonly found in Western music. The notes are grouped into sequences, and the software handles many tasks (eg transpose, etc.). The output goes to a MIDI-enabled device, and the chords can react to signals coming through the MIDI port, so Melrose chords can be band members.

glycolis a Rust-based tool that does the same thing at a lower level. The code is integrated with digital signal processing to provide a wide range of music options. It is designed to use an open source audio engine to generate sounds that can be used in browsers. The developers of Glycol said the language has ‘low cost and high ceilings’ to encourage collaboration with others at all skill levels.

WebAssembly and Wase
The most efficient way to send instructions to a computer is to encode them in binary and limit them to the basic set of operations used by the CPU. Each chip has a preferred binary syntax, and some languages, such as Pascal or Java, have a neutral binary format that runs in a local virtual machine. WebAssembly provides a web browser with binary code combined with text in a standard format. The goal is to replace the minified JavaScript code that makes up the backbone of a web application with code ready to run at near native speed.

Many developers take advantage of WebAssembly rather than writing it themselves, using a compiler that translates the high-level language into WebAssembly that runs in the browser. There is also a movement to develop a low-level language that exposes most of the basic structure of WebAssembly in a user-readable form. weissis one of the options that provides strongly typed C-like syntax.

WebAssembly is also looking for a way to use it outside of a web browser as a general way to encode instructions with a stack machine similar to Java’s JVM. for example Redpandais a streaming data platform that gives developers the opportunity to modify data as it goes down the pipe into code written in WebAssembly.

Java 17
Technically, Java is not a new language. But the biggest advantage of Java is that developers have played a big role in maintaining backward compatibility. Compiling 10 or 20 year old code on a modern JVM is very easy. There’s no guarantee that your code will work, but it’s still easier to compile than any other language. The fact that the Java team has performed millions of integration tests demonstrates this.

Java 17 was included on this list because it was so modern that it was barely recognizable to time travelers in the 1990s. Java 17 has many additional features and extensions that change the way we code. For example, improved random number generators or stricter floating-point calculation schemes solve the problem of writing very complex numeric codes. Developers writing accounting systems can use integers to hold the number of cents, but developers working with AI algorithms and complex linear algebra need floating-point numbers.

In addition, strong encapsulation and extended switch semantics provide a mix of discipline and flexibility in the core language. Overall, all of these improvements make it easier than ever to write stronger, safer, and safer code. [email protected]


Source: ITWorld Korea by www.itworld.co.kr.

*The article has been translated based on the content of ITWorld Korea by www.itworld.co.kr. If there is any problem regarding the content, copyright, please leave a report below the article. We will try to process as quickly as possible to protect the rights of the author. Thank you very much!

*We just want readers to access information more quickly and easily with other multilingual content, instead of information only available in a certain language.

*We always respect the copyright of the content of the author and always include the original link of the source article.If the author disagrees, just leave the report below the article, the article will be edited or deleted at the request of the author. Thanks very much! Best regards!