📜 ⬆️ ⬇️

13 promising programming languages



Faster, smarter programming with fewer bugs. Similar promises creators of many modern languages ​​attract the attention of programmers. We have heard all this many times already, but the lack of novelty is not a reason to reject these promises. After all, the future of programming requires stability and the introduction of good methods, so innovation will work. And considering that software products are often simply huge, today we need innovation more than ever.


')
It is characteristic of the languages ​​listed below that an increase in the degree of automation can really make their code worthy of the characteristics “faster, smarter and without bugs”. Modern approaches imply the enhancement of structuredness and abstractness, thanks to which the “filling” of languages ​​increasingly assumes the fulfillment of tasks that programmers had to solve on their own. Due to the growth of such automation, developers can pay more attention to finding and fixing bugs. In many cases, it even improves the performance of languages, since automated algorithms more effectively solve the tasks of parallelizing calculations without making many simple errors.

But behind this main theme lies one small agreement. One of the languages ​​was created for statistical analysis. Several others are upgrading classic languages. Some are not languages ​​at all, they are just preprocessors. But at the same time, they all change our approach to writing code and lay the foundation for future programming.

Below are 13 languages ​​that change the way we tell computers what to do . Some of them are new, some have already gained widespread popularity, and some are not languages ​​in the full sense of the word.

R


At heart, R is a programming language, but it acts as a standard-bearer in the modern world, obsessed with using statistics to detect patterns in large amounts of data. R was developed by statisticians and scientists for the sake of facilitating their work. It implements most of the standard functions used for data analysis, and with the help of freely distributed libraries you can add a lot of additional useful algorithms to it. R gives data processing and analysis specialists almost everything that is needed for research.

Many are limited to using R inside the integrated development environment as a notebook for data experiments. You can download and work with data using two popular frontends: R Studio and R Commander . They turn R from a language that needs to be compiled and run into a more interactive environment.

Key points: Sophisticated expressions for the selection of subsets and their analysis.
Difficulties: Sharpened for personal computers, not part of the big data world, where technologies like Hadoop rule.

Java 8


Java is not a new language. For many of us, it was the first programming language due to its lingua franca role in computer science. Today, billions of JAR files circulate around the world and manage it. But Java 8 is somewhat different. It has the opportunity to introduce functional programming techniques that open the way for concurrency. It is not necessary to use them, you can stay in the framework of the good old Java. But then you cannot improve the structure for the sake of optimizing the performance of the JVM. You cannot think within the framework of the functional programming paradigm, you cannot write cleaner, faster code with fewer bugs.

Key points: Lambda expressions and multi-threaded (concurrent) code.
Difficulties: There is a desire to run away and plunge into Scala.

Swift


Apple saw the prospect in newbie complaints about the difficulties of writing code on Objective-C. As a result, the company rolled out Swift and opaquely hinted that it would replace Objective-C in development for MacOS or iOS. Apple realized that creating header files and juggling with pointers is no longer necessary. Swift hides such things from you, and the style of writing is much closer to modern languages, like Java or Python. In addition, he performs for you all the dirty work.

Swift has an extensive specification. This is not just a syntactically cleaned-up Objective-C, the number of innovations is so large that you’re trying to list them. Some programmers even complain that they have to learn too much new things when switching from Objective-C, and Swift makes life difficult for teams whose members review each other’s code. But you should not dwell on it, because now iOS-developers can roll out the code as quickly as others. The syntax has become cleaner, and the language can now solve more complex problems.

Key points: Much clearer and more comprehensible syntax, less low-level fuss with pointers.
Difficulties: Backward compatibility sometimes requires thinking about bits and bytes.



Go


When Google began to develop a new language for their server farms, they decided to create something simple, gathering up good ideas from other languages. As one of the authors said, they wanted everything to be "so simple that one person can remember." In Go, there are no complicated abstractions or tricky metaprogramming - only basic features expressed by a simple syntakis.

This makes it easier to work in teams, because you do not have to worry about someone digging out another brilliant idea in the depths of the specification.

Key points: Clean and simple language for working with data.
Challenges: Sometimes more opportunities are required.

CoffeeScript


Once a programmer got tired of writing all these semicolons and curly braces in JavaScript. As a result, he created CoffeeScript , a preprocessing tool that transforms syntactic abbreviations into plain JavaScript. This is not so much a language as a way to save time on writing out the JS syntax.

Pranksters argue that CoffeeScript is a means to reduce the number of button presses; and {}. But they miss the point: the cleaner the code, the more readable it is, and it is always better for a programmer when he can quickly decompose the code in his mind. CoffeeScript makes it easier for you to understand code.

Key points: The code gets cleaner.
Difficulties: Sometimes brackets help to better understand the multiple levels of recursion.

D


For many programmers, there is nothing better than the very clear and simple world of the C language. The syntax is minimal, and the structure is clearly translated into the processor. Some people call it "portable assembler." But despite all these advantages, some C-programmers lack the capabilities of other languages.

This was one of the reasons for the appearance of D. It offers updated logical purity of C and C ++ with the addition of modern conveniences such as memory management, type inference and bounds checking.

Key points: Some of the most important new features from other languages.
Difficulties: Part of the resources spent on safety net.

Less.js


Like CoffeeScript, Less.js is just a preprocessor that makes it easy to create complex CSS files. Anyone who tried to create a list of layout rules for even the simplest site knows that creating basic CSS requires numerous repetitions. And Less.js processes all these repetitions in loops, variables, and other software constructs. For example, you can create a variable for the shade of green used for both the background of the page and the selection of text. If the customer wants to change the color, it will be enough to make a change in one place.

There are also more complex constructions, like mixins and nested rules, which allow you to effectively create blocks of standard layout commands, which can then be included in any number of CSS classes. If you need to abandon bold fonts, you can simply change this setting in the root, and Less.js will extend the new rule to all other definitions.

Key points: Simplifying the code.
Difficulties: I would like more useful designs.

Matlab


MATLAB is a hardcore language for hardcore mathematicians and scientists who need to compute complex systems of equations. Today, developers are increasingly delving into mathematical and statistical analysis, and MATLAB is becoming more in demand. This language has been honed for decades, and now it can be useful to mere mortals.

Key points: Fast, stable and high-quality algorithms for complex calculations.
Difficulties: Mathematics is still difficult.

Arduino


The Internet of Things is actively coming. More and more devices acquire built-in chips that need to be told what to do. Arduino is not so much a new language as a set of C- and C ++ functions that you assemble into strings, and the compiler does the rest.
Many of the functions will be new to programmers, especially for those who are used to creating user interfaces for ordinary computers. You can read the voltage, check the status of the terminals of the board, and even control the flashing of the LEDs to transmit certain messages to the device user.

Key points: The world of technology in your hands.
Difficulties: For the most part, this is C and C ++.

CUDA


Many people take the power of their video cards for granted. They don’t even think about how many triangles are counted by their video accelerator, as long as their world is no more difficult than a network shooter. But if you look under the hood, it turns out that with the right approach, the video card can give you a lot of computing power. Using the CUDA language, Nvidia allowed us to use our video cards not only to kill zombies and shoot tanks.

To work with CUDA, you need to learn how to identify parallel fragments of your algorithm. Having found them, you can take advantage of the huge advantages of video cards in parallel computing. Some tasks, like mining cryptocurrency, are solved very simply. Others, for example, rejection and molecular dynamics, will require a strong reflection. CUDA is often used in large scientific, multi-dimensional simulations.

Key points: Very high performance, at least for parallel code.
Difficulties: It is not always easy to identify easily parallelized parts of the code.

Scala


Anyone who has studied programming languages ​​in depth knows that the academic world loves the functional programming paradigm. It states that each function must have well-defined input and output, without any additional variables. There are many good functional languages, and one of the most popular is Scala . It was created for execution in a Java virtual machine, so everything written in Scala can be executed where Java works. That is, almost everywhere.

There are a number of logical considerations, according to which following the rules of functional programming helps to create code that is easier to optimize and often free from the most annoying bugs. Scala - one of the ways to join this.

Key points: A functional, but flexible enough language to interact well with other languages ​​using the JVM.
Challenges: For a number of tasks and applications, it may be difficult to use a functional approach.

Haskell


Scala is not the only functional language with a large number of users. In this regard, Haskell competes with it, from which you can begin your familiarity with programming. It is already used in large projects, for example, in Facebook. In tasks that at first glance are not very suitable for academic code, Haskell demonstrates good performance.

Key points: Already tested on serious projects.
Difficulties: Functional thinking may require you to give up some bad habits.

Jolt


When XML was a format for big data, one of the best tools for manipulating large volumes of XML was the functional programming language XSLT. Now JSON rules the world, for which Jolt works well. You can write simple filters to extract attributes, and JOLT will find and transform them as you need. You can also take a look at Tempo and use XSLT.

Key points: Very simple language for solving most JSON problems.
Difficulties: Some JSON transformations are almost impossible to implement.

No generalizations


Perhaps, new languages ​​are united only by the fact that they promise to create code faster, smarter and with fewer bugs. Yes, and they can be called new with a stretch: some have been around for years, some for decades. So they only look new, because today they are being mastered by more and more programmers.

Source: https://habr.com/ru/post/317748/


All Articles