5 neue Programmiersprachen, die Sie kennen sollten

Für manche Menschen ist das Erlernen einer neuen Programmiersprache ein zu vermeidender Exzess. Warum, oh warum, argumentieren sie, brauchen wir noch eine weitere Sprache?

Haben wir nicht schon genug?

Reichen die vorhandenen Tools nicht aus?

Und dann gibt es diese unermüdlichen Suchenden, die die Gelegenheit nutzen, neue Dinge auszuprobieren und über Edelsteine ​​zu stolpern. Lernen ist ein Selbstzweck, und sie brauchen nicht viel Überzeugungsarbeit, um ihre Wochenenden damit zu verbringen, ein konsolenbasiertes Kartenspiel in dieser obskuren, neuen Sprache zu entwickeln.

Egal, welchem ​​Lager Sie angehören, eines steht außer Frage: Wir alle wollen Zeit mit etwas verbringen, das eine glänzende Zukunft hat.

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.

Wenn etwas dies radikal genug tut, stehen die Chancen gut, dass es weiterhin die Aufmerksamkeit auf sich zieht und die Spitze erreicht. Wenn das passiert, möchten Sie nicht zurückgelassen werden. 🙂

Und für diejenigen, die gerne mit dem glänzenden Zeug laufen, eine Warnung: Spaß als Programmierer ist wichtig, 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

Die Sprachauswahl ist eine einschüchternde Aufgabe, insbesondere wenn neue Sprachen für zukünftige Vorteile bei der Beschäftigung und Zufriedenheit in Betracht gezogen werden. Jeder Sprachautor ist fest davon überzeugt, dass er die perfekte Sprache entwickelt und alle Probleme gelöst hat, die es zu beantworten gilt. Wie schneidest du denn?

Für diesen Beitrag habe ich mich auf ein paar Parameter konzentriert, um meine Suche in vernünftigen Grenzen zu halten.

Veröffentlichungsdatum

Sprachen, die sehr, sehr neu sind, habe ich ausdrücklich vermieden.

Neu, ich meine Sprachen, die zum Zeitpunkt des Schreibens weniger als 5-6 Jahre alt sind, und insbesondere diejenigen, die noch keine Stabilität erreicht haben (dh Version 1.0). Dies schließt leider einige echte Juwelen wie aus KristallAber ich hoffe, dass ich eines Tages darauf zurückkommen und über seinen Erfolg schreiben kann. 🙂

Ein Codeschnipsel in Crystal („Fast as C, Slick as Ruby“)

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, die gegebenenfalls berücksichtigt werden.

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 gediehen, weil dies die einzigen Optionen in einem stark kontrollierten Ökosystem waren, außer denen von Facebook D und Hacken (meiner Meinung nach eine hässliche Version 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).

Aber der Kern der Sache ist immer noch die Gemeinschaft. Wenn eine Sprache nicht für Aufsehen sorgt und es nicht genügend Entwickler gibt, um sie zu erziehen und bekannt zu machen, wird sie nicht aus ihrem GitHub-Grab herauskommen.

Das schließt für mich ausgereifte, faszinierende Sprachen wie z Schläger und Erlangda sie auf der Wachstumskurve flach geblieben sind.

Fokussierter, klar definierter USP

Das dritte, wonach ich suche, ist ein klar umrissenes Ziel für die Sprache. Zum Beispiel funktioniert eine bessere Version von PHP, die Namensprobleme behebt und zu nativem PHP kompiliert, für mich nicht.

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 CoffeeScriptund viele andere ähnliche Kompilierungs-zu-JavaScript-Sprachen.

Ehrlich gesagt bin ich verpflichtet, reine Syntaxverbesserungen sofort zu verwerfen. Die Geschichte hat gezeigt, dass Nützlichkeit die Freundlichkeit übertrumpft, wenn es um Sprachen geht. Wenn also alle neuen Sprachen sich darauf konzentrieren, eine angenehmere Erfahrung zu sein, fürchte ich, dass es diese Liste nicht schaffen wird.

Klare, konsistente Syntax

Ja, ich weiß. Ich sagte nur, dass die Syntax keine Rolle spielt. Nun, um genau zu sein, sagte ich, dass „Nur-Syntax-Verbesserungen“ keine Rolle spielen. Trotzdem bleibt die Syntax einer der wichtigsten Faktoren für die Produktivität und Wartbarkeit von Programmierern, also ist sie etwas, das in meine Berechnungen hier einfließen wird.

  Hinzufügen von Farbfiltern zu Videos auf Ihrem iPhone

Zusammen mit der Syntax kommt die Idee der Konsistenz. Benennung von Funktionen, Strukturierung von Modulen usw. sind wichtige Dinge, die eine Sprache nicht falsch machen darf. Es ist 2018, um Himmels willen, und ein weiteres PHP-ähnliches Sprachdesign wäre für uns alle eine Schande. Beginnen wir also ohne weiteres mit unseren Top-5-Empfehlungen.

1. Julia

Für die Leute am MIT waren die für Data Science verfügbaren Sprachen bestenfalls ein Kompromiss. Trotz all seiner Klarheit und Popularität fehlte es Python an nativen Konstrukten für den Umgang mit Datenobjekten. Da es sich um eine interpretierte Sprache handelt, war Python für sie auch langsam (nicht die Bibliotheken, wohlgemerkt, da sie hauptsächlich in C geschrieben sind).

Aber die vielleicht größte Abkehr war das klobige Parallelitätsmodell und das Fehlen eines parallelen Rechenmodells, von dem letzteres ein Grundnahrungsmittel im Supercomputing ist.

Als Ergebnis, Julia wurde geboren.

Julia erreichte seine stabile Veröffentlichung am 29. September 2018, kaum ein paar Tage bevor dieser Artikel geschrieben wurde (sprechen Sie über das Timing!). Hier ist, was die offizielle Website über ihre Fähigkeiten zu sagen hat:

Julia zeichnet sich durch numerische Berechnungen aus. Seine Syntax eignet sich hervorragend für Mathematik, viele numerische Datentypen werden unterstützt und Parallelität ist sofort einsatzbereit. Julias Multiple Dispatch eignet sich hervorragend zum Definieren von Zahlen- und Array-ähnlichen Datentypen.

Syntaxtechnisch kann Julia als eine Kombination aus Python und C angesehen werden. Ja, es ist wahrscheinlich das erste Mal, dass eine Sprache auf diese beiden Eigenschaften abzielt und erfolgreich ist.

Um die Sache einfach zu halten, Julia ist blitzschnell und erzwingt keine strenge Eingabe. Hier sind einige Benchmarks:

Die offiziellen Julia-Benchmarks

Wie Sie sehen können, ist Julia etwas schlechter als C, bläst aber Java und Python aus dem Wasser. Und was für eine Augenweide bietet Julia?

Nun, hier ist die Implementierung einer Funktion zur Berechnung der Hypotenuse eines rechtwinkligen Dreiecks:

Schließlich, während die meisten der Julia Ökosystem stark auf mathematische Arbeit ausgerichtet ist, glaube ich, dass es eine glänzende Allzweck-Zukunft hat.

Es ist meines Wissens nach die erste Sprache, die eine erstklassige Unterstützung für paralleles Computing bietet, daher wird es nicht überraschen, dass sie in den Bereichen Web und IoT immer beliebter wird.

2. Rost

Wenn Sie die neuen Versionen des Firefox-Browsers ausprobiert haben, wissen Sie, dass es nach jahrelanger Arbeit so aussieht, als könnten sie Chrome einige Marktanteile wegnehmen.

Wenn sich der Browser leicht und bissig anfühlt und schnell rendert, ist das alles der von Mozilla speziell entwickelten Sprache zu verdanken: Rost.

Zu sagen, dass Rust eine glänzende Zukunft hat, ist eine Lüge; die Sprache ist bereits ein riesiger Erfolg, und falls Sie noch nichts davon gehört haben, liegt es daran, dass ihr Anwendungsbereich spezialisiert und ihr Ziel beängstigend ist: C++ zu ersetzen! Ja, wir haben endlich eine Sprache, die das nicht nur kann, sondern bereits tut.

Für Leute, die von den überlasteten Design- und Speicherverwaltungsherausforderungen von C++ frustriert sind, kommt Rust wie ein Hauch frischer Luft.

So sieht ein Rust-Programm aus:

Prägnant und elegant, wie ich finde. Rust folgt dem funktionalen Programmieransatz, der Ihren Code zusammensetzbarer macht, und es gibt keine objektorientierten Hierarchien, mit denen Sie ringen müssen.

Was also gibt Rust den Mut, C++ zu verfolgen? Es ist das neue Speichermodell. Anstatt sich auf den alten new()/delete()-Tanz zu verlassen, führt Rust die Idee des Eigentums ein.

Anstatt Speicher direkt zuzuweisen und darauf zuzugreifen, „leihen“ sich Rust-Variablen voneinander, wobei der Compiler strenge Einschränkungen auferlegt. Das Gesamtkonzept ist zu kompliziert, um es in wenigen Worten zu erklären, also schauen Sie sich die an offizielle Dokumente um mehr zu lernen.

Der Punkt ist, dass dies zu 100% Speichersicherheit führt, ohne dass ein Garbage Collector erforderlich ist, was eine große Sache ist.

Rust hat die Welt der Systemprogrammierung im Sturm erobert. Es wird bereits auf einigen Plattformen unterstützt, unterstützt Browser und Rendering-Engines, ersetzt schnell C/C++-Code auf Produktionssystemen und wird zum Schreiben von Betriebssystemen verwendet.

Sicher, es ist nicht jedermanns Sache, einen weiteren Browser oder Gerätetreiber zu erstellen, aber Rust breitet sich bereits auf andere Domänen aus. Wir haben bereits mehrere voll funktionsfähige, lächerlich schnelle Web-Frameworks in Rust, und es werden immer mehr Anwendungsbibliotheken entwickelt.

Ehrlich gesagt, wenn Sie an einer aufregenden Zukunft interessiert sind, ist Rust die perfekte Sprache, und jetzt ist ein perfekter Zeitpunkt. Rust ist ein Flugzeug, das gestartet ist, aber es ist noch Zeit, an Bord zu gehen, während es zu den Sternen aufbricht!

Lernen Rost von Dmitri Nesteruk.

3. Elixier

Unter den Sprachen, die sich auf die Zufriedenheit der Entwickler konzentrieren, ist der erste Platz dauerhaft für Ruby reserviert. Es ist eine Sprache, die sich wie Poesie liest und genügend Abkürzungen hat, um geistige Reibung um Größenordnungen zu reduzieren.

  Die 5 besten IT-Helpdesk-Software: Cloud-basiert oder lokal installiert?

Kein Wunder also, dass das Rails-Framework weiterhin die Full-Stack-Entwicklung für ernsthafte Entwickler und Startups dominiert. Aber nicht jeder war mit Rails zufrieden, besonders einer seiner Kernentwickler – José Valim. Ich denke, der Schöpfer selbst erklärt die Entstehung dieser Sprache am besten in einem Interview:

Es ist eine lange Geschichte, aber ich werde versuchen, sie kurz und bündig zu machen. Im Jahr 2010 arbeitete ich daran, die Leistung von Rails bei der Arbeit mit Mehrkernsystemen zu verbessern, da unsere Maschinen und Produktionssysteme mit immer mehr Kernen ausgeliefert werden. Die ganze Erfahrung war jedoch ziemlich frustrierend, da Ruby nicht das richtige Werkzeug zum Lösen von Nebenläufigkeitsproblemen bietet. Das war der Zeitpunkt, an dem ich begann, mich mit anderen Technologien zu beschäftigen, und ich verliebte mich schließlich in die Erlang Virtual Machine.

Ich fing an, Erlang mehr und mehr zu verwenden, und mit zunehmender Erfahrung bemerkte ich, dass mir einige Konstrukte fehlten, die in vielen anderen Sprachen verfügbar sind, einschließlich funktionaler. Das war der Zeitpunkt, an dem ich mich entschied, Elixir zu erstellen, als Versuch, verschiedene Konstrukte und hervorragende Werkzeuge auf die Erlang-VM zu bringen.

Und siehe, Elixier wurde geboren!

So wie Scala die Java-Sprache verbessert, aber auf dieselbe virtuelle Maschine darunter (die JVM) abzielt, nutzt Elixir die jahrzehntealte, kampferprobte virtuelle Maschine von Erlang.

Nun, eine Diskussion über Erlang würde den Rahmen dieses Artikels sprengen, aber das Mindeste, was 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 das 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).

Eine Maschine, auf der Ruby läuft und die maximal 10.000 gleichzeitige Verbindungen erreicht, kann mit Elixir problemlos 200.000 bewältigen und hat immer noch genug RAM, um 2D-Spiele auszuführen!

Elixir-Code-Snippet

In Bezug auf die Syntax kopiert Elixir schamlos Ruby, und sein dominantes Web-Framework Phoenix kopiert schamlos Rails. Ich würde sagen, das ist auch gut so, denn zusammen mit Laravel, Grails, Masonite usw. erreichen wir einen Punkt, an dem alle Sprachen Rails-ähnliche Frameworks haben, die den Übergang erleichtern können. Einige mögen über den „Mangel an Originalität“ spotten, aber zumindest beschwere ich mich nicht.

Endlich, Elixier ist eine dieser Technologien, die erfrischend, angenehm und verdammt praktisch sind. Mehrere Ruby-Shops (und sogar Nicht-Ruby-Shops) wechseln zu Elixir, und große Unternehmen wie Pinterest verwenden es in der Produktion mit äußerst zufriedenstellenden Ergebnissen.

Viele Leute denken, dass Node.js ein provisorischer Versuch der Parallelität war und bald durch Elixir ersetzt werden würde. Ich muss sagen, ich stimme ihnen zu. 🙂

4. Kotlin

Bei der I/O 2017 ließ Google eine Bombe auf die ahnungslose Menge los. Das teilte das Unternehmen offiziell mit Kotlin als primäre Sprache für die Android-Entwicklung und hat Schockwellen durch die Branche geschickt.

Nun, dass Google aktiv versucht hat, Java zu ersetzen, ist keine Überraschung, nachdem es von einer Klage von Oracle gebissen wurde; Die Einführung von Kotlin war jedoch etwas unerwartet, und es besteht immer noch eine gute Chance, dass Google bald mit seiner virtuellen Maschine herauskommt. Vorerst erfreut sich Kotlin jedoch eines Aufschwungs.

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.

Mehr als alles andere arbeitet der Kotlin-Compiler besonders hart daran, alle in der Java-Welt so verbreiteten Nullzeiger-Ausnahmen zu beseitigen. Es nimmt auch die sprichwörtliche Java-Ausführlichkeit ziemlich ab, was für viele eine Erleichterung sein wird.

Hier ist ein wunderbarer Code-Vergleich zwischen Java und Kotlin:

Bildnachweis: hype.codes

Der Kotlin-Code ist deutlich kürzer und hat eine viel geringere kognitive Überlastung zum Durchpflügen.

Aber lassen Sie uns eines klarstellen: Es ist äußerst unwahrscheinlich, dass Kotlin Java ersetzen wird, 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 Legacy-Gründen weiterhin verwenden werden.

Kotlin hat jedoch 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!

5. TypeScript

Gott weiß, dass ich mich für diesen Spot zurückhalten musste! Alles in mir schrie „Elm! Elm!“, aber egal wie revolutionär seine Ideen sind oder wie göttlich die Syntax ist, Elm muss noch als Mainstream-Alternative für die Front-End-Arbeit angesehen werden. 🙁 Wie auch immer, kommen wir zum Mainstream: TypeScript.

  So schalten Sie Ihr iPhone für einen Film mit einer Siri-Verknüpfung stumm

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 wird der neue WebAssembly-Standard Erfolg haben), 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.

Ja, es ist endlich möglich, nativen JavaScript-Code zu schreiben, ohne seine Geburt zu leiden und zu verfluchen!

Hier sind die Verbesserungen, die TypeScript auf den Tisch bringt:

✓ Starke Typisierung: Schließlich ist ein String keine Zahl und eine Zahl kein Objekt, das kein leeres Array ist!

✓ Typüberprüfung zur Kompilierzeit: 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 Typ vom Compiler leicht ermittelt werden, was Ihnen einige Kopfschmerzen erspart.

✓ Async/await: Die async/await-Keywords und -Muster sind von grundlegender Bedeutung, also kein Herumspielen mehr mit Promises und Callbacks!

Namensräume, Generika, Tupel . . . Ich könnte endlos weitermachen, aber es sollte ausreichen zu sagen, dass TypeScript eine der schlechtesten Entwicklungserfahrungen in eine der besten verwandelt.

TypeScript-Codeausschnitt

Die Auswirkungen von TypeScript sind nicht zu leugnen. Es verdrängte ähnliche Versuche wie Googles Dart aus dem Feld (obwohl es durch Flutter, ein mobiles Entwicklungsframework, ein Comeback versucht) und öffnete JS-Entwicklern die Augen für die Vorteile stärkerer Typen.

Infolgedessen haben bedeutende Bibliotheken wie React, D3, Vue (sogar jQuery!) jetzt eine TypeScript-Version, und in den besten Software-Shops auf der ganzen Welt wird der gesamte JavaScript-Code als TypeScript-Code geschrieben. TypeScript-Header sind jetzt auch für Node.js verfügbar (ehrlich gesagt, wenn ein Knoten seine Nebenläufigkeitsgeschichte verbessern und seine lausige Speicherverwaltung patchen kann, wird es ewig dauern).

Sie werden vielleicht überrascht sein zu erfahren, dass der Schöpfer von Node.js nach der öffentlichen bedauern seine Schöpfung, arbeitet an a neue Laufzeit (derzeit gibt es keine offizielle Website; nur das GitHub-Repo), die TypeScript als Hauptsprache hat.

Die beste Nachricht? TypeScript ist ein kleines Sprache zu lernen mit erheblichen Vorteilen in der Zukunft. Wenn Sie ein fortgeschrittener JavaScript-Entwickler sind, lernen Sie innerhalb von zwei Tagen genug TypeScript kennen, um Ihren gesamten vorhandenen Code zu portieren!

Fazit und Haftungsausschluss

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.
  • R: R ist unter Datenwissenschaftlern bereits heiß begehrt und wird Anwendungsentwickler wahrscheinlich nicht besonders anziehen. Außerdem dürfen wir nicht vergessen, dass Bibliotheken für maschinelles Lernen langsam ihren Weg in alle wichtigen Sprachen finden (verdammt noch mal, sogar PHP hat sie jetzt!), also müssen Sie nur noch etwas warten. 🙂
  • 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 voranzutreiben, besteht darin, an dem festzuhalten, was bereits funktioniert, und sich nicht „ablenken“ zu lassen. Wenn Sie das tun, sind Java, PHP, Python, Ruby usw. hervorragende Sprachen, bei denen Sie bleiben sollten. Für einige von uns ist die Norm jedoch nicht genug. Sie wollen hinausgehen und die Zukunft erkunden und groß auf die Zukunft setzen. Wenn Sie in das letztere Lager fallen, sollte eine dieser fünf Sprachen ganz oben auf Ihrer To-Do-Liste stehen.

Wenn Sie schließlich versuchen, eine Sprache zu beurteilen, lassen Sie sich nicht von der Anstrengung überwältigen, denn es ist nicht so viel. Wenn Sie bereits einige Programmiersprachen beherrschen, können Sie jede davon innerhalb von maximal zwei Monaten erlernen, wobei Sie 5-6 Stunden pro Woche aufwenden. Während das Glück und die monetären Renditen, die in Zukunft generiert werden können, um ein Vielfaches höher sein werden.

Habe ich hier eine kritische Sprache übersehen? Oder habe ich vielleicht etwas falsch mit den hier aufgeführten Sprachen? Wenn ja, hinterlassen Sie bitte einen Kommentar und helfen Sie mir, mich zu verbessern. 🙂