12 neue Programmiersprachen, die Sie kennen sollten

Für manche Menschen ist das Erlernen einer neuen Programmiersprache ein Übermaß, das am besten vermieden wird. Warum, oh warum, argumentieren sie, brauchen wir noch eine andere Sprache?
Haben wir nicht schon genug?
Erledigen die vorhandenen Tools nicht die Arbeit?
And then there are those tireless seekers who jump at the opportunity of trying new things and stumbling upon gems. Learning is an end in itself, and they don’t need much convincing to burn away their weekends building a console-based card game in that obscure, new language.

No matter which camp you belong to, there is something beyond debate: we all want to spend time on something that will have a bright future.
Für die Menschen im Vermächtnislager hat ihre bestehende Lieblingssprache bereits eine Menge Schwung und wird weiterhin eine glänzende Zukunft haben. Ich muss sie daran erinnern, dass ihre jetzt ausgereifte bevorzugte Entwicklungs-Toolkette einst „Kool-Hilfe“ war, die viele nicht trinken wollten. Und so ist es heute; Neue Technologien werden hinzugefügt, um neue Probleme zu lösen oder den Schmerz der Entwicklung zu lindern.
If something does this radically enough, chances are it will continue to snatch mindshare and reach the top. When that happens, you don’t want to be left behind. 🙂
Und für diejenigen, die gerne mit dem glänzenden Zeug laufen, eine Warnung: Spaß zu haben ist als Programmierer unerlässlich, aber wir müssen aufpassen, dass wir unsere Energie nicht ziellos verschwenden.
Sicher, Gehirnfick ist eine unglaublich verdrehte, rätselhafte, lustige kleine Sprache, aber es ist unwahrscheinlich, dass Sie davon profitieren, wenn Sie sie ernsthaft verfolgen. Sie wollen etwas Neues, Vernünftiges und auf einem soliden Fundament.
Wie diese Sprachen ausgewählt wurden

Language selection is an intimidating job, especially when new languages are being considered for future benefits in employment and satisfaction. Every language author is firmly convinced they’ve built the perfect language possible and solved all the problems there are to answer. How, then, do you cut?
In diesem Beitrag habe ich mich auf einige Parameter konzentriert, um meine Suche innerhalb angemessener Grenzen zu halten.
Freigegebenate
I specifically avoided languages that are very, very new.
New, I mean languages less than 5-6 years old as of writing, and especially those that haven’t reached stability (1.0 release, that is). But I do hope to come back to this and write about their success someday. 😀
Für mich sind 5-12 Jahre der Sweet Spot, wenn sich eine Sprache stabilisiert hat und weitere Verfeinerungen ausgearbeitet werden. Nun gibt es natürlich Ausnahmen von dieser Regel, und diese werden gegebenenfalls berücksichtigt.
Starkes Gemeinschaftsinteresse
Dieser ist ein Kinderspiel, wird aber oft ignoriert, wenn wir uns auf etwas Neues freuen. Nun, für viele Menschen ist die Unterstützung eines großen Unternehmens Präzedenzfall genug für den Erfolg, aber es ist nicht immer wahr.
Ja, Apples Objective-C und jetzt Swift blühten auf, weil dies die einzigen Optionen in einem stark kontrollierten Ökosystem waren, aber Facebooks D und hacken (meiner Meinung nach eine hässliche Interpretation einer bereits hässlichen Sprache) bleiben kaum mehr als Experimente.

Die ideale Kombination wäre eine Sprache, die von einem großen, stabilen Unternehmen unterstützt wird und an Popularität gewinnt (wie React).
But the meat of the matter is still the community. If a language is not creating a buzz, and there are not enough devs to educate and popularize, it’s not going to climb out of its GitHub grave.
Für mich schließt dies reife, faszinierende Sprachen wie aus Schläger und erlang, as they’ve remained flat on the growth curve.
Fokussierter, klar definierter USP
Der third thing I’m looking for is a clear-cut goal for the language. For example, a better version of PHP that fixes naming issues and compiles to native PHP doesn’t work for me.
Die Vorteile sind einfach zu gering, um die Risse zu rechtfertigen, wenn alle versuchen, darauf umzusteigen. Nach diesem Maßstab kann ich nicht umhin, Versuche wie abzulehnen KaffeeScriptund viele andere ähnliche Kompilierungen in JavaScript.

Honestly, I’m bound to dismiss syntax-only improvements immediately. History has shown that usefulness trumps friendliness when it comes to languages, so if all new languages focus on is a more pleasant experience, I’m afraid it won’t make this list.
Klare, konsistente Syntax
Ja, ich weiß. Ich habe nur gesagt, dass die Syntax keine Rolle spielt. Um genau zu sein, sagte ich, dass "Nur-Syntax-Verbesserungen" keine Rolle spielen. Die Syntax bleibt jedoch einer der wesentlichen Faktoren für die Produktivität und Wartbarkeit von Programmierern. Daher muss sie in meinen Berechnungen hier unbedingt berücksichtigt werden.

Mit der Syntax geht die Idee der Konsistenz einher. Funktionsnamen, Modulstrukturierung usw. sind wichtige Dinge, die sich eine Sprache nicht leisten kann, um falsch zu liegen. Es ist 2018, um Gottes willen, und ein anderes PHP-ähnliches Sprachdesign wäre eine Schande für uns alle. Beginnen wir also ohne weiteres mit unseren fünf wichtigsten Empfehlungen.
Julia
Für die Leute am MIT waren die für die Datenwissenschaft verfügbaren Sprachen bestenfalls ein Kompromiss. Bei Python fehlten trotz aller Klarheit und Beliebtheit native Konstrukte für den Umgang mit Datenobjekten. Als interpretierte Sprache war Python für sie auch langsam (nicht die Bibliotheken, wohlgemerkt, da sie meistens in C geschrieben sind).
But perhaps the biggest turn-off was the clunky concurrency model, and the lack of a parallel computing model, the latter of which is a staple in super-computing.
Dadurch Julia geboren wurde.
Julia erreichte ihre stabile Veröffentlichung am 29. September 2018, kaum ein paar Tage bevor dieser Artikel geschrieben wurde (sprechen Sie über das Timing!). Folgendes sagt die offizielle Website zu ihren Funktionen:
Julia excels at numerical computing. Its syntax is great for math, many numeric datatypes are supported, and parallelism is available out of the box. Julia’s multiple dispatch is a natural fit for defining number and array-like datatypes.
Syntax-wise, Julia can be seen as a combination of Python and C. Yes, it’s probably the first time a language has aimed at both these qualities and succeeded.
To keep matters simple, Julia is blazing fast and doesn’t enforce strict typing. Here are some benchMarkierungen:

As you can see, Julia is slightly worse than C but blows Java and Python out of the water. And what sort of eye-candy does Julia offer?
Nun, hier ist die Implementierung einer Funktion zur Berechnung der Hypotenuse eines rechtwinkligen Dreiecks:

Finally, while most of the Julia Ökosystem is heavily tilted towards mathematical work, I believe it has a bright general-purpose future.
It’s the first language, to my knowledge, that has first-class support for parallel computing, so it will be no surprise to see it gaining more popularity in the Web and IoT domains.
Rust
If you’ve tried the new Firefox browser releases, you know that finally, after years of working, it’s looking like they might be able to take away some market share from Chrome.
Wenn der browser feels light and snappy and renders quickly, it’s all thanks to the language Mozilla specially entwickelten: Rust.
To say that Rust has a bright future will be a lie; the language is already a massive success, and if you’ve not heard of it yet, it’s because its area of application is specialized, and its goal scary: replacing C++! Yes, we finally have a language that not only is capable of doing this but is already doing it.
For people frustrated with C++’s over-burdened design and memory management challenges, Rust comes as a breath of fresh air.
So sieht ein Rust-Programm aus:

Concise and elegant, in my opinion. Rust follows the functional programming approach, which makes your code more composable, and there are no object-oriented hierarchies to wrestle with.
Was gibt Rust den Mut, sich für C ++ zu entscheiden? Es ist das neue Speichermodell. Anstatt sich auf den alten neuen () / delete () Tanz zu verlassen, führt Rust die Idee des Eigentums ein.
Rather than allocating and accessing memory directly, Rust variables “borrow” from each other, with strict restrictions placed by the compiler. The overall concept is too complicated to explain in a few words, so feel free to check out the offizielle Dokumente um mehr zu erfahren.
Der Punkt ist, dass dies zu 100% Speichersicherheit führt, ohne dass ein Garbage Collector erforderlich ist, was eine große Sache ist.
Rust has taken the system programming world by storm. It’s already supported on some platforms, powers browsers and rendering engines are quickly replacing C/C++ code on production systems, and is being used to write operating systems.
Sure, it’s not everyone’s cup of tea to create another browser or device driver, but Rust is already spreading itself to other domains. We already have several fully functional, ridiculously fast Web frameworks in Rust, and more and more application libraries are being developed.
Ehrlich gesagt, wenn Sie an einer aufregenden Zukunft interessiert sind, ist Rust die perfekte Sprache, und jetzt an ist eine perfekte Zeit. Rust ist ein Flugzeug, das gestartet ist, aber es bleibt noch Zeit, an Bord der Sterne zu gehen!
MEHR ERFAHREN Rost von Dmitri Nesteruk.
Elixier
Unter den Sprachen, die sich auf das Glück der Entwickler konzentrieren, ist der erste Platz permanent Ruby vorbehalten. Es ist eine Sprache, die sich wie Poesie liest und über genügend Abkürzungen verfügt, um die mentale Reibung um eine Größenordnung zu verringern.
No wonder, then, that the Rails framework continues to dominate Full-Stack-Entwicklung for serious developers and startups. But not everyone was happy with Rails, especially one of its core developers – José Valim. I think the creator himself best explains the genesis of this language in an Interview:
It is a long story, but I will try to make it short and sweet. Back in 2010, I was working on improving Rails performance when working with multi-core systems, as our machines and production systems are shipping with more and more cores. However, the whole experience was quite frustrating as Ruby does not provide the proper tool for solving concurrency problems. That’s when I started to look at other technologies and I eventually fell in love with the Erlang Virtual Machine.
I started using Erlang more and more and, with experience, I noticed that I was missing some constructs available in many other languages, including functional ones. That’s when I decided to create Elixir, as an attempt to bring different constructs and excellent tooling on top of the Erlang VM.
Und siehe, Elixier wurde geboren!
So wie Scala die Java-Sprache verbessert, aber auf die gleiche virtuelle Maschine darunter (die JVM) abzielt, nutzt Elixir die jahrzehntealte, kampferprobte virtuelle Maschine von Erlang.
Eine Diskussion über Erlang würde den Rahmen dieses Artikels sprengen, aber das Minimum, das Sie wissen sollten, ist, dass es das bestgehütete Geheimnis der Telekommunikationsbranche ist: Wenn unsere Telefonnetze viel zuverlässiger sind als unsere webbasierten Systeme, ist dies alles dank Erlang.
Noch einfacher ausgedrückt bedeutet es Folgendes. Wenn Sie ein Echtzeitsystem wie Chat erstellen, ist Elixir viel weniger RAM-hungrig und stabil als Ruby (oder PHP, Python und Java).
A machine that runs Ruby and maxes out at 10,000 concurrent connections can easily handle 200,000 when using Elixir and still have enough RAM to run 2D games!

Syntax-wise, Elixir shamelessly copies Ruby, and its dominant Web framework, Phoenix, shamelessly copies Rails. I’d say that’s a good thing, too, because along with Laravel, Grails, Masonite, etc., we are reaching a point where all languages have Rails-like frameworks which can ease the transition. Some might scoff at the “lack of originality,” but at least I’m not complaining.
Finally, Elixier ist eine dieser Technologien, die erfrischend, angenehm und verdammt praktisch sind. Mehrere Ruby-Läden (und sogar Nicht-Ruby-Läden) ziehen zu Elixir um, und große Unternehmen wie Pinterest setzen es mit äußerst zufriedenstellenden Ergebnissen in der Produktion ein.
Many people think that Node.js was a makeshift attempt at concurrency and would soon be replaced by Elixir. I have to say I agree with them. 🙂
Kotlin
In 2017 I/O, Google unleashed a bomb upon the unsuspecting crowd. The company formally angekündigt Kotlin as the primary language for Android development, sending shock waves durch die Branche.
Now, that Google has been actively looking to replace Java comes as no surprise nachdem sie bitten by an Oracle lawsuit; however, the adoption of Kotlin was somewhat unexpected, and there’s still a good chance Google will come out with its virtual machine soon. For the time being, though, Kotlin is enjoying a surge.
Kotlin wurde von JetBrains entwickelt, einem Unternehmen, das besser für seine Suite wahnsinnig guter Code-Editoren bekannt ist. Einer von ihnen, IntelliJ IDEA, bildet das Fundament von Android Studio. Die Designziele von Kotlin sind Sicherheit, Prägnanz und 100 % Interoperabilität mit Java.
More than anything else, the Kotlin compiler works extra hard to eliminate any null-pointer exceptions that are so common in the Java world. It also takes down the proverbial Java verbosity quite a bit, which will come as a relief to many.
Hier ist ein wunderbarer Codevergleich zwischen Java und Kotlin:

Der Kotlin-Code ist deutlich kürzer und hat eine viel geringere kognitive Überlastung zum Durchpflügen.
Aber lassen Sie uns eines klarstellen: Kotlin wird Java höchstwahrscheinlich nicht ersetzen, obwohl es schnell zu einem schnellen Favoriten wird. Ich glaube, dass kleine bis mittelgroße Teams in zehn Jahren nicht weiter als Kotlin suchen werden, während große Gruppen Java nur aus früheren Gründen weiterhin verwenden werden.
Trotzdem hat Kotlin eine äußerst glänzende Zukunft, da es alles tut, was Java tut, mit Java-Code verschmelzen kann, ohne dass es jemand merkt, und viel angenehmer ist!
Typoskript
God knows I had to restrain myself for this spot! Everything inside me was screaming “Elm! Elm!”, but no matter how revObwohl seine Ideen zukunftsweisend sind oder wie göttlich die Syntax ist, wird Elm noch nicht als Mainstream-Alternative für Front-End-Arbeit angesehen. 🙁 Wie dem auch sei, kommen wir nun zu dem, was is Mainstream: TypeScript.
JavaScript ist wie wilde Beeren: hässlich und geschmacklos, aber man muss es ertragen, wenn man im Dschungel der Frontend-Entwicklung überleben will. Es wurden viele Versuche unternommen, es zu ersetzen (und höchstwahrscheinlich das neue WebAssembly Standard wird sich durchsetzen), aber was wirklich alle Aufmerksamkeit erregte, war das von Microsoft entwickelte Superset.
Es gibt ausgezeichnete Chancen, von denen Sie gehört haben Typoskript: Angular war das erste Framework, das es ab Version 2 unterstützte, und die Leute nahmen es schnell zur Kenntnis. Das liegt daran, dass TypeScript der berühmtesten Programmiersprache der Welt einige dringend benötigte und fantastische Superkräfte hinzufügt.
Yes, it’s finally possible to write native JavaScript code without suffering and cursing one’s birth!
Hier sind die Verbesserungen, die TypeScript in die Tabelle bringt:
✓ Starke Eingabe: Finally, a string is not a number, and a number is not an object, which is not an empty array!
✓ Typprüfung zur Kompilierungszeit: Wenn Ihr Code korrekt kompiliert wird, ist er mehr oder weniger garantiert frei von den Warzen der JavaScript-Laufzeit.
✓ Klassen und Module: Ja, Klassen sind Standard in ES6, aber sie sind neben einem ordentlichen Modulsystem auch in TypeScript enthalten.
✓ Typinferenz: Bei komplexen Typen kann der Compiler den Typ leicht herausfinden, was Ihnen Kopfschmerzen erspart.
✓Async/await: Die async/await keywords and patterns are fundamental, so no more messing around with Promises and Callbacks!
Namespaces, Generika, Tupel. . . Ich könnte weiter und weiter machen, aber es sollte ausreichen zu sagen, dass TypeScript eine der schlechtesten Entwicklungserfahrungen in eine der besten umwandelt.

Die Auswirkungen von TypeScript können nicht geleugnet werden. Es hat ähnliche Versuche wie Googles Dart aus dem Feld gedrängt (obwohl es ein Comeback durch Flutter, ein Framework für die mobile Entwicklung, versucht) und den JS-Entwicklern die Augen für die Vorteile stärkerer Typen geöffnet.
Infolgedessen haben bedeutende Bibliotheken wie React, D3, Vue (sogar jQuery!) jetzt eine TypeScript-Version, und zwar in den besten Software-Shops auf der ganzen Welt JavaScript-Code wird als TypeScript geschrieben code. TypeScript headers are now available for Node.js as well (honestly, if a node can improve its concurrency story and patch its lousy memory management, it will last foreväh).
You might be surprised to know that the creator of Node.js, after publicly Bedauern seine creation, arbeitet an einem neue Laufzeit (Derzeit gibt es keine offizielle Website; nur das GitHub-Repo), dessen Hauptsprache TypeScript ist.
Die besten Nachrichten? TypeScript ist ein kleines Sprache zu lernen with considerable benefits in the future. If you’re an intermediate JavaScript developer, you’ll pick up enough TypeScript within two days to port over all your existing code!
Ulme
Ulme is as quick as its name can be pronounced and is used for front-end applications, graphics, and games. It is a functional programming language created by Evan Czaplicki in 2012.
Elm is said to have no runtime exceptions – that’s where it shines. As a statically typed language, the compiler validates all the errors at compile-time (wow!) with friendly messages (the messages are full texts and not weirdly thrown codes).
Was für ein Aufatmen für Entwickler (Debugger)! Sie könnten lernen, in Elm zu programmieren, wenn Sie immer mehr Fehler erhalten – der Compiler sagt Ihnen, was falsch ist, und schlägt vor, was Sie tun sollten, um es zu korrigieren!
Elm rühmt sich, schneller zu sein als Reagieren und stärker typisiert als sogar TypeScript. Elm-Code ist sehr organisiert und ordentlich und wird Sie zu einem besseren Entwickler machen.
Since Elm is module based, you can easily create reusable components. Elm compiles to JavaScript that you can run on the browser. So, all you need for Elm to work is node and npm, and you can simply get Elm by using the command:
npm install -g elm@<version>
Sie können die Version eingeben, die Sie installieren möchten, z. B. 0.19.1.
You can then check if Elm is adequately installed by using the –version
Befehl. Wenn Sie noch nicht die gesamte Installation und Einrichtung vornehmen möchten, gehen Sie einfach zu deren offizielle Website und verwenden Sie den Online-Editor, um herumzuspielen.
So, let’s play around a little bit, dann!
Wenn Sie den Online-Compiler nicht verwenden, müssen Sie alle Abhängigkeiten für das Programm installieren, das wir jetzt schreiben werden (es ist jedoch ziemlich einfach).
Let’s ask a user to type his name inside a text box and print the same on the page with a hello.
import Browser
import Html exposing (Html, Attribute, div, input, text)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)
-- MAIN
main =
Browser.sandbox { init = init, update = update, view = view }
-- MODEL
type alias Model =
{ content : String
}
init : Model
init =
{ content = "" }
-- UPDATE
type Msg
= Change String
update : Msg -> Model -> Model
update msg model =
case msg of
Change newContent ->
{ model | content = String.append "Hello..." newContent }
-- VIEW
view : Model -> Html Msg
view model =
div []
[ input [ placeholder "Type your name", onInput Change ] []
, div [] [ text (model.content) ]
]
Hier ist der Anfangsbildschirm, wenn Sie das Programm erstellen:

Geben Sie einen Namen ein, und das wird auf dem Bildschirm angezeigt:

Although this program might seem overkill for its purpose, as the program complexity increases, you will appreciate how easy it becomes to debug and maintain.
You can see a clear separation between the model, view, and controller (update). Similar to how we use HTML tags, we can create forms in Elm using the model div tags.
Beim „on input“-Ereignis (dh der Benutzer gibt einen Text ein) ruft das Programm „Change“ auf, und das Programm gibt den Benutzernamen zusammen mit „Hallo“ aus, indem es die String.append-Funktion verwendet.
Pony
Pony is compiled and follows an actor model of computation designed for asynchronous behavior – i.e., highly concurrent applications.
Traditional programming languages provide a ‘lock’ feature to handle concurrency, which impacts performance. Pony doesn’t have a lock, thereby avoiding any blocking operations or deadlock scenarios. Each actor is single-threaded.
Pony bietet auch fähigkeitsbasierte Sicherheit, bei der Benutzer eine „Referenzfähigkeit“ verwenden müssen, um auf ein bestimmtes Objekt zuzugreifen, um eine sichere Datenverarbeitung zu gewährleisten. Beispielsweise beschreiben die Fähigkeiten, welche anderen Aliasnamen verweigert werden und nicht, was sie erlaubt sind.
Notions like mutability and isolation are based on these capabilities. This ‘deny’ capability feature makes Pony free from the data race.
Pony is safe, fast, and accurate and saves development time, making it a good choice for banking and finance applications.
Pony ensures type safety for data handling. It doesn’t have any exceptions – only errors need to be handled to compile the code. The main reason for this is that Pony is statically typed. You need to explicitly specify the type (like Java, and unlike Python) of a variable before using it
let name: String
Similar to Java, you can create constructors. Suppose you have an employee class with name and age:
class Employee
let name: String
let age: U64
new create(name': String) =>
name = name'
Java developers might note that there are subtle differences in the syntax (no curly braces, wow!). There is also a ‘’’ at the end of the class attributes. You can also create Funktionen:
fun get_emp_name(): String => name
Spaß Funktionen schreiben, oder?
Nun der Hauptteil – Schauspieler und Versprechungen.
Pony actors have Behaviours – similar to functions – but only asynchronous – they are executed at some time in the near future but not necessarily immediately when called. But they ‘promise’ that the behaviours will be executed for sure.
actor Employee
// actor has fields, similar to class
let name: String
// and of course, constructor
new create(name': String) =>
name = name'
// Note the behaviour 'be' instead of the fun function
be get_emp_name(promise: Promise[String]) => promise(name)
Well, promises can be rejected, too – if the actor cannot fulfill the asynchronous request being sent. You can create a promise:
// Create a new promise
let promise = Promise[String]
Und rufen Sie das Verhalten des Akteurs auf, indem Sie das zu erfüllende Versprechen weitergeben (in unserem Fall den Namen des Mitarbeiters erhalten).
employee.emp_get_name(promise)
Glaubst du, dieser Code wird kompiliert?
Ein weiteres großartiges Merkmal von Pony ist, dass es speichersicher ist – keine NULL- oder Pufferüberläufe. Jeder Code, der möglicherweise null zurückgibt, wird niemals kompiliert, es sei denn, er wurde behoben.
Nun, wir haben dem Programm noch nicht gesagt, was "Mitarbeiter" (unser Schauspieler) ist:
let employee = Employee(“J K Rowling”)
Unlike any other programming language, Pony allows division by zero, und das Ergebnis ist zero. Es gibt mathematical proofs für alle Funktionen in Pony.
Um Pony-Programme zu schreiben, müssen Sie Installieren Sie den Pony-Compiler. Da Pony eine kompilierte Sprache ist, müssen Sie das Programm mit 'ponyc' kompilieren, bevor Sie es ausführen.
Probieren Sie nach der Installation des Compilers die Hallo Weltprogramm.
Vyper
Vyper is a smart contract programming language based on Python. Like Python, it is human-readable, easy to code, and secure. Vyper compiles down to the Ethereum Virtual Machine (EVM) bytecode. EVM identifies the state of Ethereum für jeden Block in der Blockchain.
Um zu verstehen, warum Vyper etwas Besonderes ist, lassen Sie uns Smart Contracts verstehen.
Smart Contracts sind in einer Blockchain gespeicherte Programme, die eine Vereinbarung zwischen Verkäufer und Käufer definieren und ausführen, wenn die Vertragsanforderungen erfüllt sind.
Diese sind self-executing automated contracts that do not need human intervention. However, smart contracts are prone to vulnerabilities.
For example, smart contracts might be made to release ether to arbitrary addresses or killed by arbitrary addresses, or they may not be able to release ether. These vulnerabilities are usually introduced via the code – unintentionally oder Absichtally.
Vyper eliminates this issue by providing secure code, making it difficult to introduce vulnerable or misleading code. Although Vyper is based on Python, it doesn’t follow many OOP Paradigmen wie Vererbung, Überladen, Rekursion usw. Dies vermeidet Codekomplexität (mehrere Dateien haben, was Auditing-Zwecke erschwert).
Vyper also doesn’t support inline assembly, which means programs cannot perform any actions directly on the EVM, thus avoiding attacks.
Diese Funktionen machen Vyper ziemlich sicher zum Schreiben von Code für Smart Contracts, die in Blockchains verwendet werden.
Um das Schreiben von Programmen in Vyper zu üben, können Sie die Remix onZeilencompiler.
Sie können Vyper auch mit Docker oder Pip installieren (wenn Sie Python haben), indem Sie den Anweisungen auf der folgen Vyper-Dokumentationsseite.
R
R ist eine der beliebtesten Programmiersprachen für die Datenanalyse und Maschinelles Lernen. It has APIs for all the complex mathematics, statistics and scientific calculations, machine learning algorithms, and visual representations.
R is open source and widely popular for its rich graphical user interface. It has a vibrant and stable community and can easily integrate with other languages like C, C++, etc.
Wir erhalten alle oben genannten Funktionen über CRAN (Comprehensive R Arc).hive Network), das mehr als 10000 Pakete für Statistik, Wahrscheinlichkeit, Datenanalyse, Berechnung, Grafik und vieles mehr enthält.
Um die Magie von R zu sehen, versuchen wir ein einfaches Programm, um den Durchschnitt (Mittelwert) von 11 Zahlen zu finden. Um den Mittelwert zu finden, nehmen wir die Summe der Zahlen und dividieren sie durch die Gesamtzahl der Werte (in unserem Fall 11). R hat eine Funktion namens „Mittelwert“, die all diese Berechnungen für uns erledigt.
mynums <- c(51, 52, 53, 94, 88, 61, 31, 34, 76, 20, 10)
mean(mynums)
Die Ausgabe ist:
[1] 51.81818
Wir können diese mit der Plot-Methode plotten:
boxplot(mynums)
Es gibt viele erweiterte Pakete, wie ggplot2, dplyr und viele mehr, um reichhaltige Grafiken in R anzuzeigen.
Wir können auch ein schnelles Histogramm mit den obigen Werten anzeigen, um den Bereich zu sehen, in den die Werte passen.
hist(mynums, breaks = 10, col = "sky blue", main = "Histogram of marks", xlab = "Height Bin")
Beachten Sie, dass wir eine Unterbrechung von 10 angegeben haben; Wir können dies in eine beliebige Zahl ändern, abhängig von den gewünschten Divisionen.
The above variable, mynum was a vector that contained a list of numbers. Similar to Python, we create a data frame in R to work with more dimensions.
This is most useful for analytics. For example, we can combine multiple vectors, create a data frame, and manipulate the same depending on the number of variables and the type of analysis we need.
Let us say we have employee name, skill, and age vectors. We can create a dataframe and display the data together:
employees = data.frame(Name = c("John","Mac","April","Ron","Matt"),
Age = c(23,28,30,43,31), Skill = c("Java", "Python", "C++", "R", "PHP"))
print(employees)
> print(employees)
Name Age Skill
1 John 23 Java
2 Mac 28 Python
3 April 30 C++
4 Ron 43 R
5 Matt 31 PHP
Another interesting feature of R is the ease of matrix manipulation using arrays. R will blow you away by performing complex matrix calculations with a breeze. All you have to do is create the matrix and give it to the R-Programm.
M1 <- matrix(c(1, 2, 1, 2), ncol=2)
M2 <- matrix(c(3, 4, 3, 4), ncol=2)
print(M1*M2)
>print(M1*M2)
[,1] [,2]
[1,] 3 3
[2,] 8 8
Apache Groovy
Nach sorgfältiger Überlegung und Bewertung habe ich es aufgenommen Groovy in meiner Liste der Top-Programmiersprachen. Diese Sprache ist wie die Butter auf einem köstlichen Kuchen und verleiht jedem Projekt zusätzlichen Geschmack und eine besondere Note.
One of the main reasons Groovy deserves a spot on the list is its wide range of features, which have contributed to its growing popularity in the tech world. As an agile and dynamic language for the Java Virtual Machine (JVM), it enables modern programming features for Java developers with a minimal learning curve.

Es ist erwähnenswert, dass die JVM eine ABB istreviation für Java virtuelle Maschine. JVM ist ein integraler Bestandteil von Java und bietet eine Plattform zum Ausführen von Java-Bytecode auf jedem Gerät. Groovy basiert auf der JVM und bietet eine breite Palette von Funktionen, die seine Leistung verbessern und es zu einem machen attractFünf Wahl für Entwickler.
In simple terms, it provides a platform for running Java bytecode, making it possible to use Java on any device. From a performance perspective, Groovy can statically type-check and compile your code for improved robustness and performance.
Groovy’s seamless integration with existing Java classes and libraries sets it apart from other programming languages. It can also compile straight to Java bytecode, making it easy to use anywhere you can use Java. This feature adds to the flexibility and versatility of Groovy and makes it a top choice for developers looking to create efficient and reliable software.
Die dynamische Natur von Groovy kann die Typprüfung problematisch und das Debuggen von Code schwieriger machen, was einen potenziellen Nachteil darstellt. Viele Programmierer glauben jedoch, dass die Flexibilität und Einfachheit von Groovy mögliche Nachteile überwiegen.
As a developer, it’s essential to recognize the unique value that Groovy brings to the table. To illustrate this point, I would like to share an example that showcases how Groovy’s powerful features can enhance your code.
def greeting = "Hello, World!"
println greeting
// Define a list of numbers
def numbers = [1, 2, 3, 4, 5]
// Use a closure to map the list to its squares
def squares = numbers.collect { it * it }
println squares
In this example, we illustrate the versatility and expressiveness of the Groovy language by defining a string variable and printing it to the console using the println function.
Zusatzally, we showcase how Groovy simplifies complex operations, such as transforming a list of numbers using a closure to create a new list containing the squares of each number. This demonstrates how Groovy can enhance your productivity as a developer by providing concise, readable syntax for everyday programming tasks.
Daher ist es offensichtlich, warum Groovy die Aufmerksamkeit jedes Entwicklers verdient.
Kristall
Nach umfangreicher Recherche konnten wir nicht anders, als hinzuzufügen Kristall zu unserer Liste. Und nein, die Rede ist nicht von Mineralien! Crystal ist eine universelle, objektorientierte Programmiersprache, die 2014 veröffentlicht wurde. Sie wurde so konzipiert, dass sie eine Syntax hat, die Ruby sehr ähnelt, und gleichzeitig schnell und effizient ist. Mit seinem statischen Typsystem und der vorzeitigen Kompilierung bietet Crystal Entwicklern die Geschwindigkeit von C und die Einfachheit von Ruby.
Crystal ist eine relativ neue Programmiersprache, die aufgrund ihrer beeindruckenden Geschwindigkeit und Benutzerfreundlichkeit bei Entwicklern immer beliebter wird. Es wird oft als „Schnell wie C, glatt wie Ruby“ beschrieben, was seine Fähigkeit hervorhebt, blitzschnelle Leistung zu bieten und gleichzeitig die benutzerfreundliche Syntax und Lesbarkeit von Ruby beizubehalten.

Allerdings erreicht Crystal seine beeindruckende Geschwindigkeit, indem es einige der dynamischen Aspekte von Ruby opfert und bestimmte Programmierkonstrukte einschränkt. Dennoch hat dieser Kompromiss Crystal zu einem gemacht attractEine gute Option zum Erstellen leistungsstarker Anwendungen in einer entwicklerfreundlicheren Sprache.
# Define a class for a person with name and age attributes
class Person
getter name : String
getter age : Int32
def initialize(@name : String, @age : Int32)
end
end
# Create an array of Person objects
people = [Person.new("Alice", 25), Person.new("Bob", 30), Person.new("Charlie", 35)]
# Use a block to filter the array by age and map the names to uppercase
names = people.select { |person| person.age >= 30 }.map { |person| person.name.upcase }
# Print the resulting array of uppercase names
puts names.inspect
This code demonstrates Crystal’s benefits in syntax, performance, and type safety. Crystal’s syntax is similar to Ruby’s, making it easy to read and write. However, Crystal compiles to native code, resulting in faster execution than interpreted languages like Ruby.
Zusatzally, Crystal is statically typed, which provides type safety at compile-time and improves performance. In this example, the code uses a block to filter an array of Person objects by age and map the names to uppercase, demonstrating the flexibility and expressiveness of Crystal’s syntax.
Grund
Grund ist eine moderne Programmiersprache mit einer Syntax ähnlich wie JavaScript oder anderen Sprachen der C-Familie mit dem robusten Typsystem von OCaml. Aufgrund seiner starken Typprüfungsfunktionen können Entwickler Probleme früher erkennen und robusteren und zuverlässigeren Code schreiben.
Die benutzerfreundliche Oberfläche und das unkomplizierte Design von Reason machen es zu einer fantastischen Wahl für verschiedene Programmieraufgaben, unabhängig von Ihrer Programmiererfahrung.

Reason and OCaml are highly versatile programming languages that can be used across various environments thanks to numerous projects that support them. One way to use them is to build native executables that can run directly on your machine using the standard compiler. In addition, several tools like “dune” and “esy” that aid in this process.
Another option is compiling Reason to JavaScript code compatible with browsers, which can be achieved through projects like ReScript (formerly BuckleScript) and Js_of_ocaml. These versatile options make Reason and OCaml appealing to developers across various industries.
Reason ist eine moderne Programmiersprache mit einer benutzerfreundlichen Oberfläche und einer JavaScript-ähnlichen Syntax. Seine Vielseitigkeit und sein unkompliziertes Design machen es zu einer beliebten Wahl für Entwickler in verschiedenen Branchen.
Fazit und Haftungsausschluss
Nun, wir alle haben unterschiedliche Favoriten, aber die oben genannten Sprachen sind einen Versuch wert, da sie mit allen neuen Funktionen ausgestattet sind und viele der Probleme lösen, die frühere Sprachen hinterlassen haben.
Elm is great for neater code separation and modular programming. Pony is one of the best for asyncChronologische Programmierung.
Obwohl Vyper in der Welt der Smart-Contract-Sprachen recht neu ist, bietet es eine vielversprechende Alternative zu Solidity. Vyper punktet besonders bei der Vertragsdefinition und Fehlerbehandlung. R hingegen gilt als eine der besten Sprachen für Analysen und hat bereits eine großartige Community.
Bestimmte Sprachen erfreuen sich ebenso großer Beliebtheit wie die in diesem Artikel, wurden jedoch aus verschiedenen Gründen nicht in die Liste aufgenommen. Hier ist ein kurzer Blick:
- Golang: Bereits als Mainstream-Sprache etabliert, wenn auch nicht sehr beliebt. Ich glaube zu diesem Zeitpunkt, dass Golang mehrere Konkurrenten hat, die seinen Marktanteil niedrig halten werden.
- Swift: Apple hat sein Ökosystem fest im Griff, und Swift ist die einzige dort verfügbare Sprache. Früher war Objective C der letzte Schrei, so wie jetzt Swift. Ich halte es für Betrug und weigere mich daher, es hier aufzunehmen. 😀
Die Zukunft ist immer ungewiss, und eine Möglichkeit, Ihre Karriere fortzusetzen, besteht darin, sich an das zu halten, was bereits funktioniert, und sich zu weigern, „abgelenkt“ zu werden. Wenn Sie das tun, sind Java, PHP, Python, Ruby usw. ausgezeichnete Sprachen, bei denen Sie bleiben können. Für einige von uns reicht die Norm jedoch nicht aus. Sie wollen rausgehen und die Zukunft erkunden und groß wetten. Wenn Sie in das letztere Lager fallen, sollte eine dieser fünf Sprachen ganz oben auf Ihrer To-Do-Liste stehen.
Finally, when trying to assess a language, don’t let the effort overwhelm you because it’s not that much. If you already know a few programming languages, you can learn any of these within two months max, spending 5-6 hours a week. Whereas the happiness and monetary returns that can be generated in the future will be several times more.
Als nächstes können Sie auschecken Programmiersprachen zur Verwendung in der Datenwissenschaft.