8 Punkte von GN⁺ 2023-12-19 | 1 Kommentare | Auf WhatsApp teilen

Das Streben nach dem Glück von Programmierern

  • Ruby ist eine Sprache, die das Glück von Programmierern anstrebt, was von anderen Communities oft auch zum Gegenstand von Spott gemacht wird.
  • Ruby zu verwenden macht Freude; das ist ein Wert, der in der Sprache, im Gems-Ökosystem und in der gesamten Community verankert ist.
  • Beim Schreiben von Ruby-Code empfindet man Freude, sogar an den schlechten Stellen.

Fördert Ausdrucksstärke

  • Ruby ist vielleicht die ausdrucksstärkste Programmiersprache auf der Welt.
  • Durch Metaprogrammierungsfunktionen und kulturelle Idiome ermöglicht sie es Programmierern, Code zu schreiben, der ihre Absicht klar ausdrückt.
  • Zum Beispiel sorgt das DSL von RSpec dafür, dass sich das, was getestet werden soll, so liest, als würde ein Mensch es aussprechen.

Eine Sprache, als wäre sie nur für mich gemacht

  • Viele Ruby-Entwickler haben das Gefühl, dass Ruby und Rails perfekt zu ihrem Denken passen.
  • Methodennamen und Signaturen lassen sich intuitiv erraten, und wenn man falschliegt, kann man einfach versuchen, die Reihenfolge der Argumente zu ändern.
  • Man lernt schnell, etwas auf Basis der eigenen Intuition auszuprobieren, bevor man die Dokumentation liest.

Community und Werte

  • Die Ruby-Community spielt eine wichtige Rolle dabei, was die Sprache ist und wie es sich anfühlt, sie zu verwenden.
  • Kent Beck sagte: „Softwaredesign ist eine Übung in menschlichen Beziehungen“, und das gilt auch für Community und Werte.
  • Die Ruby-Community ist eine erstaunliche Gruppe: offen, freundlich und gegenseitig unterstützend.
  • Ruby hat mit Freude und Community zwei zentrale Eigenschaften, und das ist eine herausragende Stärke.

Meinung von GN⁺

  • Die wichtigsten Eigenschaften der Sprache Ruby sind das Glück der Programmierer und die Möglichkeit, ausdrucksstarken Code zu schreiben.
  • Der starke Zusammenhalt der Ruby-Community und ihre Kultur gegenseitiger Unterstützung geben den Entwicklern, die diese Sprache nutzen, großen Stolz und Zufriedenheit.
  • Dieser Text vermittelt den Reiz von Ruby aus der Perspektive eines Entwicklers, der Ruby liebt, und ist interessant und ansprechend, weil er zeigt, dass eine Programmiersprache über ein bloßes Werkzeug hinaus Community und Kultur formen kann.

1 Kommentare

 
GN⁺ 2023-12-19
Hacker-News-Kommentare
  • Es gibt unterschiedliche Meinungen zur Ausdrucksstärke der Sprache Ruby

    Ruby ist großartig, wenn man innerhalb des Ökosystems arbeitet oder das tut, was das Ökosystem erwartet. Wenn man aber etwas Ungewöhnliches machen will, wird es schnell sehr mühsam. Hilfsmethoden können irgendwo in fünf Ebenen Abstraktionstiefe definiert sein und manchmal Teil des Metaprogramming irgendeiner Bibliothek sein, sodass selbst ein LSP nicht darauf zeigen kann. Ruby hat ein Ökosystem, das Implizites feiert, und das fühlt sich manchmal geradezu wahnsinnig an. Auch wenn der fertige Code elegant aussieht und sich gut lesen lässt, löst das nicht alle Probleme.

  • Eine Meinung, die die Bedeutung der Developer Experience anerkennt, Ruby aber nicht für das Beste hält

    Ich stimme zu, dass Developer Experience in vielen Programmiersprachen oder Frameworks unterschätzt wird, aber ich halte Ruby in diesem Bereich nicht für das Beste. Die Syntax mag anfangs gut wirken, doch fehlende Typinformationen und Metaprogramming machen Ruby schwer benutzbar. Außerdem gibt es bei der Wahl einer Programmiersprache noch andere Faktoren, etwa die Runtime-Performance. Wegen des Fehlens statischer Typisierung und aus diesen Gründen scheint Ruby aus der Mode gekommen zu sein. Persönlich halte ich Kotlin für den idealen Punkt bei Programmiersprachen. Kotlin ist prägnant und leicht zu lesen und bietet erstklassige Tool-Unterstützung, statische Typisierung, die hervorragende Performance der JVM und alles aus dem Java-Ökosystem.

  • Eine Meinung, die Zuneigung zu Ruby ausdrückt und zugleich erklärt, warum Python bevorzugt wird

    Ich mag Ruby und bevorzuge es sogar gegenüber Python. Besonders die Verkettung funktionaler Operationen ist sehr sauber und ausdrucksstark. Mir gefällt die Ähnlichkeit zu Java Streams. Auch das Bibliotheks-Ökosystem ist großartig, und ähnlich wie bei Python sind die Bibliotheken sehr praktisch. Aber für Arbeiten, die gewartet werden müssen, wähle ich Python, und sobald ich auch nur ein wenig auf Performance achten muss, wähle ich Java. Zwischen Ruby und Python entscheide ich mich weiterhin für Python, weil beide unterschiedlich an schrittweise Typisierung herangehen. Python 3 erlaubt es, Typen als Teil des Programms einzubinden, während Ruby Typen eher in separaten Dateien hält. Das scheint vor allem für Bibliotheken gedacht zu sein und ähnelt JavaScript-Bibliotheken, die TypeScript-Typdateien mitliefern. Ich persönlich möchte Typen aber direkt verwenden. Natürlich gibt es Sorbet, aber mir gefällt nicht, dass es ein Gem ist und nicht Teil der Syntax, sondern innerhalb der Sprache arbeitet. Ich habe gesehen, dass es bei Stripe gut funktioniert, aber persönlich mag ich es nicht, und Python 3 mit eingebauten Type Hints lässt sich meiner Meinung nach leichter mit Typen versehen als Ruby. Ich mag Ruby sehr, hoffe aber, dass sich der Bereich der Type Hints verbessert.

  • Eine Meinung, die Erfahrungen mit verschiedenen Sprachen teilt und eine geringe Vorliebe für Ruby zeigt

    Ich habe verschiedene Sprachen ausprobiert und mich einmal tief in Ruby eingearbeitet, als ich hauptsächlich Rails genutzt habe. Trotzdem ist Ruby wahrscheinlich meine am wenigsten geliebte Sprache. Die meisten Eigenschaften, die Ruby besonders machen, führen bei mir eher dazu, dass ich für funktionalen Spaß F# nutze, bei Abenteuerlust C++ und wenn ich eine dynamische Sprache will, Scheme/Racket. Ich frage mich, ob es eine allgemein anerkannte quantitative Definition von Ausdrucksstärke bei Programmiersprachen gibt. Der Autor scheint Ausdrucksstärke hier mit Nähe zur natürlichen Sprache gleichzusetzen. Meiner Erfahrung nach ist Ruby-Code leicht zu schreiben, aber schwer nachzuvollziehen, wenn man mit der Codebasis und ihren Idiomen nicht vertraut ist. Viele Informationen, die man zum Verständnis braucht, werden über impliziten Kontext vermittelt.

  • Eine Meinung, die starke Abneigung gegen Ruby ausdrückt und zugleich offenlegt, dass es derzeit die hauptsächlich genutzte Sprache ist

    Ich hasse Ruby mit Leidenschaft, aber es ist derzeit meine Hauptsprache. Nicht Ruby selbst ist unbedingt unvernünftig, sondern eher die im Ökosystem üblichen Muster. Problematisch sind die Verwendung von Vererbung zum Teilen von Code, die allgegenwärtige globale veränderliche Zustandsverwaltung und der Missbrauch von Metaprogramming. Diese Probleme werden nicht von der Sprache erzwungen, sondern sind Praktiken, die in der Community ungewöhnlich selten vermieden werden.

  • Eine Meinung, die die Schwierigkeiten bei der Wartung von Ruby beklagt und einen Wechsel zu einer anderen Sprache versucht

    Ich empfinde die Wartung von Ruby als Albtraum und versuche, dieser Hölle zu entkommen. Für persönliche Projekte mag ich Ruby, aber wenn man mit anderen zusammenarbeitet, wird es viel schneller chaotisch, und dadurch verschwindet der Vorteil von Ruby, einem nicht „im Weg zu stehen“. Kritisiert wird, dass es die Fähigkeit zur lokalen Schlussfolgerung im Code zerstört.

  • Eine Meinung, die den Wechsel von Ruby zu Rust schildert und zugleich Zuneigung zu Ruby ausdrückt

    Nach zehn Jahren mit Ruby bin ich vor vier Jahren zu Rust gewechselt und habe nicht vor, zurückzublicken. Trotzdem habe ich noch Zuneigung zu Ruby. Ich habe das Gefühl, dass ich ohne ein gutes Typsystem nicht mehr arbeiten kann, und wahrscheinlich habe ich mich einfach zu sehr an Rust gewöhnt. Dennoch vermisse ich Rubys starke Reflection-Funktionen.

  • Eine Meinung, die auf die Ironie hinweist, dass unterhaltsame Programmiersprachen oft einen kleinen Arbeitsmarkt haben

    Es ist eine der Ironien des Programmierens, dass die angenehmsten Programmiersprachen oft den kleinsten Arbeitsmarkt haben. Wenn ich den ganzen Tag in Elixir programmieren könnte, wäre mein Beruf als Programmierer viel besser, aber im Vergleich zu TypeScript, Python oder Java gibt es kaum Elixir-Jobs. Ruby war hier eine Ausnahme, doch heute bauen nur noch wenige auf Rails, während viele stattdessen auf React und NextJS setzen. Das betrifft den Markt für Full-Stack-Anwendungen; für Rust im Systembereich oder Python in Data/AI kann es anders aussehen.

  • Eine Meinung, die den Einfluss des Ruby-Ökosystems und seiner Kultur auf das Programmieren betont

    Es wird viel über die Sprache selbst gesprochen, aber das Ruby-Ökosystem und die Kultur, die es schafft, sind der Grund, warum ich Ruby treu bleibe. Auch der Artikel weist auf diesen Punkt hin. Ich habe noch keine Programmierszene erlebt, die so ermutigend und freundlich ist wie die Community rund um Ruby.

  • Eine Meinung, die positiv auf den Ruby genießenden Autor reagiert und persönliche Erfahrungen teilt

    Ich freue mich, dass der Autor Ruby genießt, und als jemand mit begrenzter Ruby-Erfahrung sind mir diese Zitate besonders aufgefallen. Wichtig sind die Idee, dass eine Sprache Freude machen sollte, dass gut geschriebener Ruby-Code sich wie natürliche Sprache lesen kann, und wie kraftvoll es ist, sich in der Sprache, in der man programmiert, anerkannt zu fühlen. Ich stimme auch Kent Becks Aussage zu, dass Softwaredesign eine Übung in menschlichen Beziehungen ist. Besonders wichtig sind alle Bestandteile, die eine Sprache unterstützen: Compiler, Dokumentation, Standardbibliothek, Bibliotheken von Drittanbietern, Paketmanager, Framework, Formatter, Profiler und so weiter.