Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

9 neue Programmiersprachen, die Sie kennen sollten

Programmiersprachen
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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

neue Programmiersprache

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 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, 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 auf einem soliden Fundament.

Wie diese Sprachen ausgewählt wurden

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.

Release Date

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

crystal-lang-snippet
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 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.

Starkes Gemeinschaftsinteresse

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 und 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, wenn alle versuchen, darauf umzusteigen. Nach diesem Maßstab kann ich nicht umhin, Versuche wie abzulehnen KaffeeScriptund viele andere ähnliche Kompilierungen in JavaScript.

mit dem Fokus auf

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 sich also alle neuen Sprachen darauf konzentrieren, ist es eine angenehmere Erfahrung, fürchte ich, dass es diese Liste nicht schaffen wird.

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.

Klare, konsistente Syntax

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

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, Julia ist blitzschnell und erzwingt keine strenge Eingabe. Hier sind einige Benchmarks:

Julia-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:

Julia-Ausschnitt

Schließlich während die meisten 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.

Rust

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: Rust.

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:

Rostschnipsel

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 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, ersetzt schnell C/C++-Code auf Produktionssystemen und 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 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.

Elixir

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 dominiert Full-Stack-Entwicklung für ernsthafte Entwickler und Startups. 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 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 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).

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!

Elixier-Schnipsel
Elixier-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.

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

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

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:

java-vs-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: 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!

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

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.

Typoskript-Schnipsel
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 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-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 er ewig halten).

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, lernen Sie innerhalb von zwei Tagen genug TypeScript kennen, um Ihren gesamten vorhandenen Code zu portieren!

Elm

Ulme ist so schnell wie sein Name ausgesprochen werden kann und wird für Front-End-Anwendungen, Grafiken und Spiele verwendet. Es ist eine funktionale Programmiersprache, die 2012 von Evan Czaplicki entwickelt wurde.

Elm soll keine Laufzeitausnahmen haben – da glänzt es. Als statisch typisierte Sprache validiert der Compiler alle Fehler zur Kompilierzeit (wow!) mit freundlichen Nachrichten (die Nachrichten sind Volltexte und keine seltsam geworfenen 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.

Da Elm modulbasiert ist, können Sie problemlos wiederverwendbare Komponenten erstellen. Elm kompiliert zu JavaScript, das Sie im Browser ausführen können. Alles, was Sie also brauchen, damit Elm funktioniert, ist node und npm, und Sie können Elm einfach mit dem folgenden Befehl abrufen:

npm install -g elm@<version> 

Sie können die Version eingeben, die Sie installieren möchten, z. B. 0.19.1.

Sie können dann überprüfen, ob Elm ordnungsgemäß installiert ist, indem Sie die verwenden –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.

Also, lass uns ein bisschen herumspielen!

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

Lassen Sie uns einen Benutzer bitten, seinen Namen in ein Textfeld einzugeben und dasselbe mit einem Hallo auf die Seite zu drucken.

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:

Bild-85
Erster Bildschirm

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

Bild-84
Letzter Bildschirm

Obwohl dieses Programm für seinen Zweck übertrieben erscheinen mag, werden Sie mit zunehmender Programmkomplexität zu schätzen wissen, wie einfach es zu debuggen und zu warten ist.

Man sieht eine klare Trennung zwischen Model, View und Controller (Update). Ähnlich wie wir es verwenden HTML -Tags können wir Formulare in Elm mit den div-Tags des Modells erstellen.

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 wird kompiliert und folgt einem Akteursberechnungsmodell, das für asynchrones Verhalten ausgelegt ist – dh hochgradig gleichzeitige Anwendungen.

Herkömmliche Programmiersprachen bieten eine „Sperr“-Funktion, um Parallelität zu handhaben, was sich auf die Leistung auswirkt. Pony hat keine Sperre, wodurch Blockierungsvorgänge oder Deadlock-Szenarien vermieden werden. Jeder Akteur ist 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.

Begriffe wie Wandlungsfähigkeit und Isolation basieren auf diesen Fähigkeiten. Diese „Deny“-Fähigkeitsfunktion befreit Pony vom Datenrennen.

Pony ist sicher, schnell und genau und spart Entwicklungszeit, was es zu einer guten Wahl für Bank- und Finanzanwendungen macht.

Pony gewährleistet Typsicherheit für die Datenverarbeitung. Es gibt keine Ausnahmen – nur Fehler müssen behandelt werden, um den Code zu kompilieren. Der Hauptgrund dafür ist, dass Pony statisch typisiert ist. Sie müssen den Typ (wie Java und im Gegensatz zu Python) einer Variablen explizit angeben, bevor Sie sie verwenden

let name: String

Ähnlich wie bei Java können Sie Konstruktoren erstellen. Angenommen, Sie haben eine Mitarbeiterklasse mit Name und Alter:

class Employee

  let name: String

  let age: U64

  new create(name': String) =>

    name = name'

Java-Entwickler könnten bemerken, dass es geringfügige Unterschiede in der Syntax gibt (keine geschweiften Klammern, wow!). Am Ende der Klassenattribute steht auch ein '''. Sie können auch Funktionen erstellen:

fun get_emp_name(): String => name

Spaß Funktionen schreiben, oder?

Nun der Hauptteil – Schauspieler und Versprechungen.

Pony-Akteure haben Verhaltensweisen – ähnlich wie Funktionen – aber nur asynchron – sie werden irgendwann in der nahen Zukunft ausgeführt, aber nicht unbedingt sofort, wenn sie aufgerufen werden. Aber sie „versprechen“, dass die Verhaltensweisen mit Sicherheit ausgeführt werden.

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)

Nun, Versprechungen können auch abgelehnt werden – wenn der Akteur die gesendete asynchrone Anfrage nicht erfüllen kann. Sie können ein Versprechen erstellen:

// 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”)

Anders als jede andere Programmiersprache erlaubt Pony die Division durch Null, und das Ergebnis ist Null. Es gibt Mathematische Beweise 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 ist eine Programmiersprache für intelligente Verträge, die auf Python basiert. Wie Python ist es für Menschen lesbar, einfach zu programmieren und sicher. Vyper wird bis zum Bytecode der Ethereum Virtual Machine (EVM) kompiliert. EVM identifiziert den Zustand von 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.

Dies sind selbstausführende automatisierte Verträge, die kein menschliches Eingreifen erfordern. Smart Contracts sind jedoch anfällig für Schwachstellen.

Beispielsweise können Smart Contracts erstellt werden, um Ether an beliebige Adressen freizugeben oder von beliebigen Adressen getötet zu werden, oder sie sind möglicherweise nicht in der Lage, Ether freizugeben. Diese Sicherheitslücken werden normalerweise über den Code eingeführt – unbeabsichtigt oder absichtlich.

Vyper beseitigt dieses Problem, indem es sicheren Code bereitstellt, wodurch es schwierig wird, anfälligen oder irreführenden Code einzuführen. Obwohl Vyper auf Python basiert, folgt es nicht vielen OOP Paradigmen wie Vererbung, Überladen, Rekursion usw. Dies vermeidet Codekomplexität (mehrere Dateien haben, was Auditing-Zwecke erschwert).

Vyper unterstützt auch keine Inline-Assemblierung, was bedeutet, dass Programme keine Aktionen direkt auf der EVM ausführen können, wodurch Angriffe vermieden werden.

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. Es verfügt über APIs für alle komplexen mathematischen, statistischen und wissenschaftlichen Berechnungen, maschinellen Lernalgorithmen und visuellen Darstellungen.

R ist Open Source und weithin bekannt für seine umfangreiche grafische Benutzeroberfläche. Es hat eine lebendige und stabile Community und kann leicht in andere Sprachen wie C, C++ usw. integriert werden.

Wir erhalten alle oben genannten Funktionen durch CRAN (Comprehensive R Archive Network), das mehr als 10000 Pakete für Statistiken, Wahrscheinlichkeiten, Datenanalyse, Berechnungen, Grafiken 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)

Box-Plot

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")

Histogramm

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.

Die obige Variable mynum war ein Vektor, der eine Liste von Zahlen enthielt. Ähnlich wie bei Python erstellen wir in R einen Datenrahmen, um mit mehr Dimensionen zu arbeiten.

Dies ist am nützlichsten für Analysen. Beispielsweise können wir mehrere Vektoren kombinieren, einen Datenrahmen erstellen und diesen abhängig von der Anzahl der Variablen und der Art der benötigten Analyse manipulieren.

Nehmen wir an, wir haben Mitarbeiternamen, Fähigkeiten und Altersvektoren. Wir können einen Datenrahmen erstellen und die Daten zusammen anzeigen:

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

Ein weiteres interessantes Merkmal von R ist die einfache Matrizenmanipulation mit Arrays. R wird Sie umhauen, indem es komplexe Matrixberechnungen im Handumdrehen durchführt. Sie müssen lediglich die Matrix erstellen und dem R-Programm übergeben.

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

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 eignet sich hervorragend für eine sauberere Codetrennung und modulare Programmierung. Pony ist eines der besten für asynchrone 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.

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.

Als nächstes können Sie auschecken Programmiersprachen zur Verwendung in der Datenwissenschaft.

Danke an unsere Sponsoren
Weitere großartige Lektüre auf Karriere
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder