SkillGridInformatik durch Machen lernen

Eine Sprache wählen: Python, JavaScript oder Go

Warum es drei Sprachen gibt, worin jede wirklich stark ist, und die ehrliche Tatsache, dass die erste Sprache viel weniger zählt, als alle behaupten.

13 Min. · 42 XP

Python, JavaScript und Go können alle zwei Zahlen addieren, eine Liste durchlaufen und eine Funktion beschreiben. Warum gibt es dann drei Sprachen, und warum streiten arbeitende Programmierer über sie? Weil eine Sprache nicht nur eine Art ist, Anweisungen aufzuschreiben. Sie ist auch eine Gemeinschaft, eine Menge von Bibliotheken und eine Rangfolge dessen, was leicht und was schwer sein soll.

Python ist die Sprache der Daten und Skripte. Dateien, Tabellen, Statistik, maschinelles Lernen, kleine Werkzeuge, die andere Programme zusammenkleben. Seine Syntax hält sich zurück, deshalb liest man auf dem Bildschirm die Form des Problems. Der Preis ist die Geschwindigkeit: Python läuft meist langsamer als die beiden anderen, und bei einem Skript, das einmal pro Nacht läuft, kümmert das niemanden.

import csv

with open("sales.csv") as f:
    total = sum(float(row["price"]) for row in csv.DictReader(f))

print(total)Python: eine Tabelle lesen, eine Spalte summieren, die Antwort ausgeben. Neun Zeilen.

JavaScript ist die Sprache des Browsers, und das ist keine Vorliebe, sondern eine Tatsache über die Welt: Es ist die einzige Sprache, die jeder Browser ausführt. Wenn dein Programm auf einen Klick reagieren und ändern soll, was ein Mensch sieht, ist JavaScript schon da, auf jedem Gerät, ohne dass etwas installiert werden muss. Es läuft auch auf Servern, also kann dieselbe Sprache beide Enden einer Website abdecken.

document.querySelector("#total").textContent = "42"

button.addEventListener("click", () => {
  count = count + 1;
});JavaScript: ändern, was auf der Seite steht, und dann auf einen Klick reagieren.

Go ist die Sprache der Dienste, die schnell und einfach sein müssen. Sie wurde von Leuten gebaut, die große, langsame und verwickelte Serverprogramme satt hatten. Sie übersetzt in eine einzige Datei, die du auf eine Maschine kopieren und starten kannst, sie startet in Millisekunden, und ihre Typenprüfung fängt ganze Fehlerklassen ab, bevor das Programm überhaupt startet. Der Preis ist die Ausführlichkeit: Für dieselbe Aussage schreibst du mehr Wörter.

http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
	w.Write([]byte("ok"))
})

http.ListenAndServe(":8080", nil)Go: eine Gesundheitsprüfung beantworten und dann auf einem Port dienen. Zwei Anweisungen und ein laufender Dienst.

Hier ist der ehrliche Teil. Die Begriffe aus den drei vorigen Lektionen gehören keiner Sprache. Werte und Typen, Bedingungen, Schleifen, Funktionen, Gültigkeitsbereich: Jede Sprache, die du je treffen wirst, hat sie alle, und sie funktionieren gleich. Nur die Schreibweise ändert sich.

same ideas, three spellings

value + type      name = "Ada"        const name = "Ada"     var name string
condition         if age >= 18:      if (age >= 18) {       if age >= 18 {
loop over list    for s in scores:   for (const s of ...)   for _, s := range ...
function          def f(a, b):       function f(a, b) {     func f(a, b) float64
map               {"soup": 2.50}     { soup: 2.50 }        map[string]float64{...}Eine Zeile pro Begriff. Vier Spalten Schreibweise, eine Spalte Bedeutung.
youconceptsPythonJavaScriptGolearn loops, types, functionswrite them one waywrite them another waywrite them a third waythe concepts stayed, only the spelling changed

Der erste echte Entscheidungsfaktor ist die Lesbarkeit, und sie bedeutet etwas Konkretes: Wie schnell versteht jemand, der diesen Code nicht geschrieben hat, was er tut? Code wird viel häufiger gelesen als geschrieben, und gelesen wird er von müden und eiligen Menschen. Eine Sprache, die den häufigen Fall kurz und offensichtlich macht, verdient ihren Platz. Das ist der ehrliche Grund, warum Python im Unterricht und in der Datenarbeit beliebt ist, und warum Go sich weigert, dass du dasselbe auf sechs verschiedene Arten schreibst.

Und hier ist das Fazit, klar ausgesprochen. Die erste Sprache, die du lernst, zählt viel weniger, als man dir sagt. Was du gerade wirklich lernst, ist die Form der Ideen: dass ein Typ eine Menge ist, dass eine Bedingung ein boolescher Wert ist, dass eine Schleife Kosten hat, dass eine Funktion ein Kasten mit einer Ausgabe ist. Diese übertragen sich vollständig und dauerhaft. Die Syntax wirst du vergessen und an einem Wochenende neu lernen, mehrmals, für den Rest deines Arbeitslebens. Wähle eine der drei, bring mit ihr ein echtes kleines Projekt zu Ende, und du wirst die anderen zwei lesen können.

Praxis

  1. Du baust eine Seite, auf der ein Klick auf eine Schaltfläche eine Zahl auf dem Bildschirm ändert, und sie muss auf einem Telefon funktionieren, auf dem nichts installiert ist. Welche Sprache wählt die Situation für dich?

    Hinweise
    • Frage, wo der Code laufen muss, nicht welche Sprache in einem Tutorial am schönsten aussieht.
    • Ein Browser enthält bereits genau eine dieser drei, und es ist nicht die, die du installierst.
  2. Ordne jede Situation der Sprache zu, die am besten passt, und dazu den ehrlichen Grund.

    Hinweise
    • Ordne die Form des Problems der Form des Werkzeugs zu: Dateien und Zahlen, eine Seite oder ein Dienst unter Last.
    • Keine dieser Stärken ist absolut. Eine Sprache ist in etwas gut, weil die Bibliotheken um sie herum darin gut sind.
  3. Du kommst in ein kleines Team, das in zwei Monaten ein funktionierendes Produkt ausliefern muss. Bringe die Überlegungen in die Reihenfolge, in der eine gute Ingenieurin sie tatsächlich abwägt.

    1. 1Prüfen, ob es die Bibliotheken, die die Aufgabe braucht, für eine Sprache gibt, die wir nutzen können
    2. 2Die Wahl nur dann überdenken, wenn im Betrieb eine echte Grenze auftaucht
    3. 3Die Sprache bevorzugen, die das Team schon lesen und pflegen kann
    4. 4Fragen, was das Programm tun muss und wo es laufen muss
    5. 5Es schreiben und den Code für die nächste Person lesbar halten
    Hinweise
    • Wenn ein Projekt groß wird, bricht selten zuerst die Syntax.
    • Die Nutzerin sieht deine Sprache nie. Sie sieht, ob sich die Seite öffnet und ob die Schaltfläche funktioniert.