2 Punkte von GN⁺ 2024-08-13 | 1 Kommentare | Auf WhatsApp teilen

Go ist mein Hammer, und alles ist ein Nagel

Einführung

  • Markus ist ein allein arbeitender Entwickler und Ersteller digitaler Produkte
  • Er arbeitet ohne Team allein und strebt eine flexible Arbeitsweise an
  • Er vermeidet komplexe Tech-Stacks und konzentriert sich darauf, Kundinnen und Kunden Mehrwert zu bieten

Warum er sich für Go entschieden hat

Grund 1: Mit Go kann man fast alles machen

  • Go ist einfach, gut lesbar und konsistent
  • Es kann für viele Zwecke eingesetzt werden, etwa für CLI, Cloud-Infrastruktur, HTTP-Server und Netzwerkarbeit
  • Auch Nintendo-Switch-Spiele, GUI-Apps und Terminal-String-Synthesizer lassen sich mit Go entwickeln

Grund 2: Weniger Kontextwechsel

  • Wenn man mehrere Programmiersprachen verwendet, ist der Wechsel zwischen den Syntaxen schwierig
  • Wenn man nur eine Sprache verwendet, kann man dieses Problem vermeiden
  • Sprache, Compiler, IDE, Toolchain und Community sowie weitere Elemente lassen sich leichter verwalten

Grund 3: Tiefes Wissen

  • Wenn man sich auf eine einzige Sprache konzentriert, kann man tiefergehendes Wissen aufbauen
  • Sich auf eine Sprache zu konzentrieren ist produktiver, als mit mehreren Sprachen zu arbeiten
  • Das hilft dabei, die Komplexität der Softwareentwicklung zu verringern

Fazit

  • Markus setzt Go ein, um verschiedene Projekte erfolgreich umzusetzen
  • Durch tiefes Wissen über Go steigert er seine Produktivität
  • Mit Go kann er verschiedenste Herausforderungen lösen

Zusammenfassung von GN⁺

  • Markus entscheidet sich als allein arbeitender Entwickler für Go, um Komplexität zu reduzieren und die Produktivität zu steigern
  • Go lässt sich für viele Zwecke einsetzen und ist dank seiner Einfachheit und Konsistenz leicht zu verwalten
  • Wer sich auf eine Sprache konzentriert, kann tieferes Wissen aufbauen und effizienter arbeiten, als wenn man mehrere Sprachen parallel nutzt
  • Mit Go lassen sich verschiedenste Projekte erfolgreich umsetzen, was auch für andere Entwickler nützlich sein kann

1 Kommentare

 
GN⁺ 2024-08-13
Hacker-News-Kommentare
  • Ich habe in einem Unternehmen gearbeitet, das mit Go Finanzdaten verarbeitet

    • Ich fand es unerquicklich, dass Kollegen Go für einmalige Aufgaben verwendeten, etwa zum Aggregieren von CSV-Dateien oder zum Aktualisieren von Datenbanken
    • Es war schwer, Vertrauen zu haben, wenn ich Kollegen dabei sah, wie sie grundlegende Algorithmen selbst implementierten, anstatt Pandas zu verwenden
    • Ich hielt das für eine Verschwendung von Unternehmenszeit, und es wirkte wie eine Frage des Stolzes, beweisen zu wollen, dass Go ausreicht
  • Viele Leute unterschätzen die Kosten, eine Sprache wirklich zu lernen

    • Es dauert 2–4 Jahre, bis man auf einem Niveau ist, auf dem man sagen kann, dass man eine Sprache „kennt“
    • Es dauert 8–10 Jahre, um Sprache, Compiler, Runtime, Standardbibliothek und idiomatische Vorgehensweisen zu verstehen
    • In dieser Zeit kann man die Art und Weise weiterentwickeln, wie die Sprache genutzt wird, und Einsteiger schnell schulen
  • Ich denke, Go eignet sich für fast jede Aufgabe

    • Wenn ich Go verwende, bin ich sehr produktiv
    • Sobald ein Projekt mehr als 100 Zeilen hat, ist es besser als Python
    • Vorteile von Go:
      • Die Sprache ist sehr einfach
      • Die Kernbibliothek ist gut entworfen
      • Mit Toolchain und Kernbibliothek allein lassen sich die meisten Aufgaben erledigen
  • Ich denke, Go eignet sich nicht für persönliche Projekte

    • Der Code ist wortreich, und selbst für einfache Aufgaben muss man viel Code schreiben
    • Es fehlen passende Enums, Sum Types, Null-Safety usw.
    • Aus diesen Gründen macht es mir in privaten Projekten keinen Spaß
  • Ich bevorzuge Typescript und Rust

    • Deno und Typescript sind vielseitigere Werkzeuge als Go
    • Typescript ist sicherer und ergonomischer, aber etwas langsamer
    • Rust ist sicherer und schneller, aber schwer zu lernen
    • Vorteile von Typescript:
      • Null-Safety
      • breit unterstützte Generics
      • diskriminierte Union Types
      • sichere Nebenläufigkeit
      • Methoden für Collections/Iteratoren
    • Vorteile von Go:
      • effizienter in Bezug auf Größe und Speicherverbrauch
      • Gos GC ist besser als V8
      • schneller bei CPU-bound Workloads
      • größere Standardbibliothek
  • Ich habe sowohl Go als auch Typescript verwendet, bevorzuge aber Kotlin/JVM

    • Es gibt zwar die Dichotomie aus Gradle/Maven und die Unsicherheit rund um das Build-System, aber ich bin mit den Sprachfeatures und der Runtime sehr zufrieden
  • Ich denke, Go ist ein Allzweckwerkzeug

    • Alles ist einfach und leicht zu benutzen
    • Man kann mit einfachen Befehlen kompilieren und deployen, ohne viele externe Tools zu verwenden
    • Andere Sprachen haben auch Vorteile, aber keine ist so einfach und unkompliziert wie Go
  • Ich mag Go, aber ich liebe es nicht

    • Ich halte das Tooling für chaotisch
    • Go-Module fühlen sich nicht fertig an
    • Generics sind noch primitiv
    • Das Ökosystem wirkt unfertig
  • Ich mag die meisten Aspekte von Go, aber als jemand, der viel numerischen Code schreibt, ist das Fehlen von Operator Overloading ein Nachteil

    • Ich nutze weiterhin Python und C++
    • Rust ist als Ersatz für C++ attraktiv, hat aber zu viele Regeln, um Python zu ersetzen
  • Das Leben ist zu kurz, um in mehr als einer Sache wirklich gut zu werden, deshalb muss man sorgfältig wählen

    • Gründe, warum ich Go gewählt habe:
      • erstaunliche Standardbibliothek
      • einfach zu lesen und zu schreiben
      • Build als einzelnes statisches Binary
      • keine Container nötig
      • überall einsetzbar (Webentwicklung, Desktop-Apps, Spieleentwicklung, Embedded usw.)