• Erledigen Sie die Anwendungssicherheit auf die richtige Weise! Erkennen, schützen, überwachen, beschleunigen und mehr…
  • 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?

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

    Egal zu welchem ​​Lager Sie gehören, es gibt etwas, über das nicht diskutiert werden kann: Wir alle möchten Zeit mit etwas verbringen, das eine glänzende Zukunft haben wird.

    Für die Menschen im Legacy-Camp hat ihre bevorzugte Lieblingssprache bereits eine Menge Schwung und wird auch weiterhin eine glänzende Zukunft haben. Für sie muss ich daran erinnern, dass ihre mittlerweile ausgereifte bevorzugte Entwicklungs-Toolchain einst „Kool-Aid“ war, die viele nicht trinken wollten. Und so ist es heute; Neue Technologien werden hinzugefügt, um neue Probleme zu lösen oder den Entwicklungsschmerz zu lindern.

    Wenn etwas dies radikal genug tut, wird es wahrscheinlich weiterhin Mindshare schnappen und die Spitze erreichen. 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ß 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 Solides.

    Wie diese Sprachen ausgewählt wurden

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

    In diesem Beitrag habe ich mich auf einige Parameter konzentriert, um meine Suche innerhalb angemessener Grenzen zu halten.

    Veröffentlichungsdatum

    Ich habe speziell Sprachen vermieden, die sehr, sehr neu sind.

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

    Ein Code-Snippet in Crystal ("Schnell wie C, Slick wie 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, und diese werden gegebenenfalls berücksichtigt.

    Starkes Gemeinschaftsinteresse

    Dieser ist ein Kinderspiel, wird aber oft ignoriert, wenn wir uns über etwas Neues freuen. Für viele Menschen ist die Unterstützung eines großen Unternehmens ein Präzedenzfall für den Erfolg, aber das stimmt nicht immer.

    Ja, Apples Objective-C und jetzt Swift blühten auf, weil dies die einzigen Optionen in einem stark kontrollierten Ökosystem waren, aber Facebooks D  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).

    Aber das Fleisch 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 herausklettern.

    Für mich schließt dies reife, faszinierende Sprachen wie aus Schläger Erlang, da sie auf der Wachstumskurve flach geblieben sind.

    Fokussierter, klar definierter USP

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

    Die Vorteile sind einfach zu gering, um die Risse zu rechtfertigen, die auftreten, wenn alle versuchen, sich darauf einzulassen. An diesem Maßstab kann ich nicht anders, als Versuche wie abzulehnen KaffeeScriptund viele andere ähnliche Kompilierungen in JavaScript.

    Ehrlich gesagt bin ich verpflichtet, Verbesserungen nur für die Syntax sofort zu verwerfen. Die Geschichte hat gezeigt, dass Nützlichkeit die Freundlichkeit in Bezug auf Sprachen übertrifft. Wenn also alle neuen Sprachen eine angenehmere Erfahrung darstellen, wird diese Liste leider nicht erstellt.

    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.

    1. 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).

    Aber das vielleicht größte Problem war das klobige Parallelitätsmodell und das Fehlen eines Parallel-Computing-Modells, von dem letzteres eine Grundvoraussetzung für Super-Computing ist.

    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 zeichnet sich durch numerisches Rechnen aus. Die Syntax eignet sich hervorragend für die Mathematik, viele numerische Datentypen werden unterstützt und Parallelität ist sofort verfügbar. Julias Mehrfachversand ist eine natürliche Lösung für die Definition von Zahlen- und Array-ähnlichen Datentypen.

    In Bezug auf die Syntax 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, erzwingt Julia keine strenge Eingabe und ist dennoch blitzschnell. Hier 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 welche Augenweide bietet Julia an?

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

    Schließlich während die meisten Julia Ökosystem Ich glaube, es hat eine glänzende Zukunft für allgemeine Zwecke.

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

    2. Rost

    Wenn Sie die neuen Firefox-Browserversionen ausprobiert haben, wissen Sie, dass sie nach Jahren der Arbeit möglicherweise in der Lage sind, Chrome Marktanteile abzunehmen.

    Wenn sich der Browser leicht und bissig anfühlt und schnell rendert, ist dies alles der Sprache zu verdanken, die Mozilla speziell entwickelt hat: Rost.

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

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

    So sieht ein Rust-Programm aus:

    Prägnant und elegant, meiner Meinung nach. Rust folgt dem funktionalen Programmieransatz, der Ihren Code komponierbarer macht und es gibt keine objektorientierten Hierarchien, mit denen Sie sich auseinandersetzen müssen.

    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.

    Anstatt Speicher direkt zuzuweisen und darauf zuzugreifen, „leihen“ sich Rust-Variablen voneinander aus, wobei der Compiler strenge Einschränkungen auferlegt. Das Gesamtkonzept ist zu kompliziert, um es in wenigen Worten zu erklären. Schauen Sie sich das an 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 hat die Welt der Systemprogrammierung im Sturm erobert. Es wird bereits auf einigen Plattformen unterstützt, unterstützt Browser und Rendering-Engines und ersetzt schnell C / C ++ - Code auf Produktionssystemen. Es wird zum Schreiben von Betriebssystemen verwendet.

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

    Ehrlich gesagt, wenn Sie an einer aufregenden Zukunft interessiert sind, ist Rust die perfekte Sprache und jetzt ist eine perfekte Zeit. Rust ist ein Flugzeug, das gestartet ist, aber es bleibt noch Zeit, an Bord der Sterne zu gehen!

    Lernen Rost von Dmitri Nesteruk.

    3. 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.

    Kein Wunder also, dass das Rails-Framework weiterhin die Full-Stack-Entwicklung für ernsthafte Entwickler und Startups dominiert. Aber nicht alle waren mit Rails zufrieden, insbesondere einer seiner Hauptentwickler - 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 an der Verbesserung der Rails-Leistung bei der Arbeit mit Mehrkernsystemen, da unsere Maschinen und Produktionssysteme mit immer mehr Kernen ausgeliefert werden. Die gesamte Erfahrung war jedoch ziemlich frustrierend, da Ruby nicht das richtige Tool zur Lösung von Parallelitätsproblemen bietet. Zu diesem Zeitpunkt begann ich mich mit anderen Technologien zu beschäftigen und verliebte mich schließlich in die Erlang Virtual Machine.

    Ich begann immer mehr mit Erlang und bemerkte mit der Erfahrung, dass mir einige Konstrukte fehlten, die in vielen anderen Sprachen verfügbar waren, einschließlich funktionaler. Zu diesem Zeitpunkt habe ich beschlossen, Elixir zu erstellen, um 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 auch Elixir die jahrzehntealte, kampferprobte virtuelle Erlang-Maschine.

    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 dies: Wenn Sie ein Echtzeitsystem wie Chat erstellen, ist Elixir viel, viel weniger RAM-hungrig und stabil als Ruby (oder PHP, Python und Java).

    Ein Computer, auf dem Ruby ausgeführt wird und beispielsweise 10,000 gleichzeitige Verbindungen erreicht, kann bei Verwendung von Elixir problemlos 200,000 verarbeiten und verfügt dennoch über genügend RAM, um 2D-Spiele auszuführen!

    Elixier-Code-Snippet

    In Bezug auf die Syntax kopiert Elixir Ruby schamlos, und sein dominantes Webframework Phoenix kopiert Rails schamlos. Ich würde sagen, das ist auch eine gute Sache, 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 sich über den „Mangel an Originalität“ lustig machen, aber zumindest beschwere ich mich nicht.

    Schließlich 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.

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

    4. Kotlin

    Im Jahr 2017 hat I / O Google eine Bombe auf die ahnungslose Menge losgelassen. Das Unternehmen gab offiziell bekannt Kotlin als Hauptsprache für die Android-Entwicklung, die Schockwellen durch die Branche sendet.

    Nun, da Google aktiv versucht hat, Java zu ersetzen, ist es keine Überraschung, dass es von einer Oracle-Klage gebissen wurde. Die Einführung von Kotlin war jedoch etwas unerwartet, und es besteht immer noch eine gute Chance, dass Google seine virtuelle Maschine bald herausbringt. Vorerst genießt Kotlin jedoch einen Aufschwung.

    Kotlin wurde von JetBrains entwickelt, einem Unternehmen, das besser für seine Suite wahnsinnig guter Code-Editoren bekannt ist. Eine davon, IntelliJ IDEA, bildet das Fundament des Android Studio. Die Designziele von Kotlin sind Sicherheit, Prägnanz und 100% Interoperabilität mit Java.

    Vor allem 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 stark ab, was für viele eine Erleichterung sein wird.

    Hier ist ein wunderbarer Codevergleich zwischen Java und Kotlin:

    Bildnachweis: hype.codes

    Der Kotlin-Code ist deutlich kürzer und es ist viel weniger kognitive Überlastung zu 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!

    5. TypeScript

    Gott weiß, ich musste mich für diesen Ort zurückhalten! Alles in mir schrie: „Ulme! Elm! “, Aber egal wie revolutionär seine Ideen sind oder wie göttlich die Syntax ist, Elm muss noch als Mainstream-Alternative für Front-End-Arbeiten angesehen werden. 🙁 Wie auch immer, gehen wir weiter zu was is Mainstream: TypeScript.

    JavaScript ist wie wilde Beeren: hässlich und unangenehm, aber Sie müssen es ertragen, wenn Sie den Dschungel der Front-End-Entwicklung überleben wollen. Es wurden viele Versuche unternommen, es zu ersetzen (und höchstwahrscheinlich wird der neue WebAssembly-Standard erfolgreich sein), aber was wirklich die Aufmerksamkeit aller auf sich zog, war die von Microsoft entwickelte Obermenge.

    Es gibt ausgezeichnete Chancen, von denen Sie gehört haben Typoskript: Angular war das erste Framework, das es ab Version 2 verwendete, und die Leute nahmen es schnell zur Kenntnis. Das liegt daran, dass TypeScript der berühmtesten Programmiersprache der Welt einige dringend benötigte und einige fantastische Superkräfte hinzufügt.

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

    Hier sind die Verbesserungen, die TypeScript in die Tabelle bringt:

    ✓ Starke Eingabe: Schließlich ist eine Zeichenfolge keine Zahl, und eine Zahl ist kein Objekt, das kein leeres Array ist!

    ✓ 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 / warten: Die asynchronen / wartenden Schlüsselwörter und Muster sind von grundlegender Bedeutung, sodass Sie nicht mehr mit Versprechungen und Rückrufen herumspielen müssen!

    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.

    TypeScript-Code-Snippet

    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 verfügen wichtige Bibliotheken wie React, D3, Vue (sogar jQuery!) Jetzt über eine TypeScript-Version, und in den besten Software-Shops der 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 Parallelitätsgeschichte verbessern und seine miese Speicherverwaltung patchen kann, hält er für immer).

    Sie könnten überrascht sein zu wissen, dass der Schöpfer von Node.js nach öffentlich Bedauern seine Schöpfung 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 mit erheblichen Vorteilen in der Zukunft. Wenn Sie ein fortgeschrittener JavaScript-Entwickler sind, werden Sie innerhalb von zwei Tagen genug TypeScript abrufen, um Ihren gesamten vorhandenen Code zu portieren!

    Schlussfolgerung und Haftungsausschluss

    Bestimmte Sprachen werden immer beliebter als die in diesem Artikel genannten, 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 populär. Ich glaube zu diesem Zeitpunkt, dass Golang mehrere Wettbewerber hat, die seinen Marktanteil niedrig halten werden.
    • R: R ist unter Datenwissenschaftlern bereits heiß und es ist unwahrscheinlich, dass Anwendungsentwickler viel anziehen. Außerdem dürfen wir nicht vergessen, dass Bibliotheken für maschinelles Lernen langsam ihren Weg in alle wichtigen Sprachen finden (um Himmels willen, sogar PHP hat sie jetzt!). Sie müssen also nur einige Zeit warten. 🙂
    • Swift: Apple hat sein Ökosystem fest im Griff, und Swift ist die einzige Sprache, die dort verfügbar ist. Kein Zweifel, früheres Ziel C war der letzte Schrei, genau wie Swift jetzt. Ich halte es für Betrug und lehne es daher ab, 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.

    Wenn Sie versuchen, eine Sprache zu bewerten, lassen Sie sich nicht von den damit verbundenen Anstrengungen überwältigen, denn es ist nicht so viel. Wenn Sie bereits einige Programmiersprachen kennen, können Sie diese innerhalb von maximal zwei Monaten erlernen, indem Sie 5-6 Stunden pro Woche verbringen. 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 vermisst? Oder habe ich etwas falsches an den hier aufgeführten Sprachen? Wenn ja, bitte, bitte hinterlasse einen Kommentar und hilf mir, mich zu verbessern. 🙂