5 Punkte von GN⁺ 2025-02-24 | 7 Kommentare | Auf WhatsApp teilen
  • Kürzlich entdeckte der Autor die alten Vinylplatten seines Großvaters und war überrascht, dass sich dieses Medium aus einer früheren Ära noch immer problemlos abspielen ließ
    • Vinyl brachte einen großen Wandel in der Verbreitung von Musik, machte Pressung und Weitergabe möglich und blieb bis heute ein Standard
    • Die Art und Weise, wie Audio geteilt wird, hat sich weiterentwickelt, aber die frühen Methoden funktionieren noch immer
    • In einer zunehmend komplexen Welt kehren viele Menschen zu Vinyl zurück, weil es Einfachheit, Stabilität und Beständigkeit bietet
  • Im ständigen Wandel der Webtechnologien vergisst man leicht, dass auch alte Websites noch immer gut funktionieren
    • Selbst einfache textbasierte Websites aus den 1990er-Jahren werden in modernen Browsern noch genauso geladen wie damals
    • Websites haben im Laufe der Zeit zusätzliche Funktionen erhalten, etwa Styling über CSS, Interaktivität über JavaScript und Echtzeit-Updates über WebSockets
    • Ihre Grundlage basiert jedoch weiterhin auf Seiten, Formularen und Sessions
  • Ruby on Rails erschien vor 20 Jahren als integrierter Ansatz zum Aufbau interaktiver, datenbankgestützter Webanwendungen
    • Es wurde zur Grundlage zahlreicher erfolgreicher Unternehmen wie Airbnb, Shopify, Github, Instacart, Gusto und Square, und heute laufen Geschäfte im Wert von Billionen Dollar auf Ruby on Rails
  • Effektive Werkzeuge vereinfachen komplexe Aufgaben durch Abstraktion
    • Am Beispiel des Autos: Früher erforderte das Fahren Verständnis für Kraftstoffsysteme, Zündung und Kupplungsmechanik, heute wissen die meisten Fahrer nicht einmal, wie viele Gänge ihr Fahrzeug hat
    • Ruby on Rails bündelte Best Practices der Webentwicklung wie Login-Sessions, CSRF-Schutz und Datenbank-ORM in einem leicht zugänglichen Werkzeugkasten
    • Diese Abstraktionen ermöglichen es Entwicklern, sich stärker auf den Bau des Produkts als auf technische Details zu konzentrieren
    • Die meisten Entwickler von heute wissen nicht, was in einem Login-Cookie steckt, und trotzdem treibt es ihre Anwendungen an
  • Rails war erfolgreich, weil es den Grundbausteinen des Webs treu blieb
    • Es verwendet grundlegende HTML-Elemente wie Seiten, Eingabefelder und Formulare
    • Als backend-zentriertes Framework konzentriert es sich auf Datenvalidierung, Verarbeitung und Speicherung, wodurch sich Formulare einfach erstellen lassen
  • JavaScript gewann nach dem frühen Erfolg von Rails an Bedeutung
    • Die Weiterentwicklung der Webentwicklung in den vergangenen zehn Jahren hat Websites im Grunde die Fähigkeiten von iPhone-Apps gegeben, während sie weiterhin Websites geblieben sind
  • Next.js ist heute das verbreitetste Werkzeug zum Aufbau von Startups
    • Als frontend-zentriertes Framework ermöglicht es dynamische Ladezustände, Server-Side Rendering und den Aufbau komplexer Komponenten
    • Eine weitere Generation von Unternehmen im Billionen-Dollar-Maßstab wird auf Next.js aufgebaut, und diese Web-Apps sind schneller und ausgefeilter als solche, die mit Ruby on Rails gebaut wurden
  • Next.js und seine Basistechnologie React treiben einen großen Teil der modernen Webinnovation voran
    • Praktisch alle gängigen Consumer-Produkte wie Spotify, Netflix, Facebook und Stripe laufen auf diesem Stack
    • Dadurch können Entwickler schnelle und maßgeschneiderte interaktive Produkte schaffen, die über die Grenzen der Webstandards hinausgehen
  • Trotz der schnellen Verbreitung von Next.js bleibt Rails weiterhin relevant
    • Neue Projekte, von unabhängigen Vorhaben bis hin zu AI-Unternehmen, entscheiden sich noch immer für Rails
  • Tatsächlich hat die Welle neuer JavaScript-Web-Frameworks wie Next.js den Bau von Web-Apps schwieriger gemacht
  • Diese Werkzeuge geben Entwicklern zwar mehr Möglichkeiten wie dynamisches Daten-Rendering und Echtzeit-Interaktionen, senken dafür aber das Abstraktionsniveau
  • Next.js konkurriert tatsächlich mit nativen iPhone-Apps
    • Früher brauchten Startups für ausgefeilte User Experiences ein iPhone-App, und deren Entwicklung war oft ein komplexer Prozess, der mehrere spezialisierte Entwickler erforderte
    • Next.js hat es Websites ermöglicht, sich der Qualität von iPhone-Apps anzunähern
    • Einige der heute ausgefeiltesten Produkte, darunter Linear und ChatGPT, wurden als Next.js-Anwendungen eingeführt, während mobile Apps nur nachrangige Priorität hatten
  • Rails hat sich in den 20 Jahren seit seiner Veröffentlichung weiterentwickelt und JavaScript-Interaktionen, Verwaltung von Backend-Jobs, Ladezustände, Werkzeuge für Echtzeit-Anwendungen und mehr ergänzt
    • Es unterstützt auch die Entwicklung mobiler Apps. Während sich Anwendungsmuster weiterentwickelten, integrierte Rails diese Muster als Framework-Funktionen und behielt zugleich seine HTML-basierte Grundlage bei
  • Die meisten Webanwendungen bestehen noch immer aus Formularen auf Seiten
    • Dazu gehören Jobbörsen, Vendor-Systeme und E-Commerce-Stores
    • Next.js kann diese ebenfalls bauen, benötigt dafür aber im Vergleich zu Rails zusätzliche Entwicklungszeit
    • Der Einsatz eines hochmodernen Frameworks bringt Instabilität durch häufige Updates, neue Bibliotheken und unerwartete Probleme mit sich
    • Next.js-Anwendungen sind oft auf zahlreiche Drittanbieter-Dienste wie Vercel, Resend und Temporal angewiesen, was das Plattformrisiko erhöht
  • Entwickler entscheiden sich auch heute noch für Rails, weil es selbst 20 Jahre später noch die einfachste und am stärksten abstrahierte Methode zum Bau von Webanwendungen ist
    • Solo-Entwickler können eigenständig dynamische und Echtzeit-Webanwendungen erstellen, und Enterprise-Teams können Anwendungen mit mehreren Modellen und Zugriffskontrollen entwickeln, die umfassende Tests unterstützen
    • Rails hilft kleinen Teams, schneller zu arbeiten und gleichzeitig Entwicklungs- und Wartungskosten zu senken
  • Der Autor hat Erfahrung mit beiden Frameworks
    • Er baute das venture-finanzierte AI-Startup Find AI mit Rails
    • Als Suchmaschine profitierte es von der Fähigkeit von Rails, komplexe Backend-Aufgaben mit einfachen Frontend-Anforderungen zu verbinden
    • Derzeit arbeitet er an Chroma Cloud zur Erkundung und Verwaltung großer Datensätze, wobei Next.js die Anforderungen an fortgeschrittene Interaktionen und Datenladung erfüllt
  • Rails beginnt in der aktuellen Welle AI-getriebener Anwendungen, erste Alterserscheinungen zu zeigen
    • Es hat Schwierigkeiten in Bereichen wie Text-Streaming von LLMs (Large Language Models), paralleler Verarbeitung in Ruby und starker Typunterstützung für AI-Coding-Tools
    • Dennoch bleibt es ein wirksames Werkzeug
  • Vinyl machte Musik zugänglicher und veränderte die Branche
    • Mit der Zeit hat sich die Klangqualität verbessert, aber das frühe Format behält weiterhin seinen Wert
    • The Köln Concert bleibt unabhängig von der Bitrate populär
    • Genauso ist es auch in der Technologiewelt: Man kann ausgefeilte Produkte wie Linear genießen, während eine Website im Stil der 1990er wie Craigslist weiterhin höhere Umsätze erzielen kann
  • Am Ende interessiert Nutzer mehr, wie nützlich ein Produkt ist, als wie es implementiert wurde
    • Äußerliche Raffinesse kann verblassen, Nützlichkeit bleibt

7 Kommentare

 
jhj0517 2025-02-24

Erstaunlich, wie viele Unternehmen Ruby on Rails nutzen, etwa Airbnb, Shopify und GitHub!! 😊

 
thinkpad 2025-02-24

Es war mir völlig neu, dass GitHub mit Rails entwickelt wurde. Dass GitLab mit Rails entwickelt wurde, stimmt aber ... GitLab ist mir lange im Gedächtnis geblieben, weil es Rails so gut eingesetzt hat.

 
hahnlee 2025-02-24

GitHub hat in der Anfangszeit sein Netzwerk rund um die Rails-Community aufgebaut.
https://read.first1000.co/p/-github

Das ist zwar ein etwas anderer Fall, aber es gab einmal einen Vorfall, bei dem Egor Homakov auf ein Sicherheitsproblem in Ruby on Rails hinwies (Mass Assignment Vulnerability). Da es sich um ein Problem handelte, das sich vermeiden ließ, wenn Entwickler vorsichtig waren, wurde darüber diskutiert, ob man das überhaupt patchen sollte. (Man konnte ja so etwas wie RTFM sagen.)

Die Methode, die der meldende Egor Homakov wählte, war, GitHub anzugreifen, das damals ebenfalls mit Rails betrieben wurde und auf dem Rails sogar gehostet war. Und es war tatsächlich erfolgreich.

Damit zeigte er, dass selbst die größte Rails-App von diesem Fall nicht ausgenommen war.

Ich denke, es war eine Entscheidung zwischen der Frage, ob man Entwicklern vertraut (manuelle Speicherverwaltung) oder nicht vertraut (GC usw.). Aber ich muss oft daran denken, wenn ich Antworten wie RTFM sehe oder wenn man in Sicherheitsfragen davor warnt, dass jemand es "wissentlich schon richtig machen wird".

https://news.ycombinator.com/item?id=3666564

 
thinkpad 2025-02-25

Danke. :)

 
thinkpad 2025-02-24

Danke.

 
GN⁺ 2025-02-24
Hacker-News-Kommentare
  • Während Hunderte von Menschen diesen Artikel gerade lesen, greifen sie über den Mac Mini auf meinem Schreibtisch darauf zu

  • Ich mag Web-Apps, die nur aus CRUD-Formularen bestehen. Das passt nicht auf jedes Problem, funktioniert aber in vielen Problemfeldern, die mit der realen Welt interagieren, gut. So nach dem Muster: „Wenn du prüfen willst, ob es einen Termin gibt, schau in die Terminliste.“

    • Andererseits ist auch das „App“-Muster nützlich, das in integrierte Kalender oder Dashboards gemischt ist. All das lässt sich auch in Rails bauen. Aber die Einfachheit von CRUD-Apps ist attraktiv
    • Man kann in jedem Stil mit der gewünschten Technologie bauen, aber Rails scheint „1 Modell = 1 Konzept = 1 REST-Entität“ zu bevorzugen
    • Bibliotheken wie Next.js scheinen eher „1 Aufgabe/View = gemischte Konzepte = 1 spezifischer Bildschirm“ zu bevorzugen
  • Das Merkwürdige an der Ruby/Rails-Community ist, dass die eine Hälfte still vor sich hin arbeitet und die andere Hälfte anscheinend regelmäßig bestätigen muss, dass Rails nicht tot ist

    • Nicht alles braucht AI
  • Rails zeigt im Zuge der Welle von AI-Anwendungen sein Alter. Es hat Schwierigkeiten mit LLM-Text-Streaming und Parallelverarbeitung

    • Meiner Erfahrung nach funktionierte das mit Hotwire sehr einfach. Ich betreibe in einer Rails-App mit Tausenden von Nutzern ohne Probleme ein Streaming-Agenten-Chat-Interface
  • Ich empfehle Django + gevent. Man nutzt das Python-Typsystem, und es eignet sich gut für Streaming sowie IO-gebundene Parallelverarbeitung. Für CPU-gebundene Parallelverarbeitung ist es nicht geeignet, aber das ist bei Web-Anwendungen weniger wichtig

  • Man kann metaartige Web-Frameworks wie RoR in Ruby, Django und der Sprache D bauen und pflegen

    • Go und Rust sind erstaunliche Sprachen, aber ich frage mich, warum sie kein Framework wie Rails hervorbringen können. Ich frage mich, ob das mit der Zeit möglich sein wird oder ob es ein grundlegendes Problem gibt
  • RoR ist mächtig. Aber alles verändert sich so schnell, dass man das Gefühl hat, zurückzufallen, wenn man nicht mit den neuesten Technologien Schritt hält

  • Ich habe Kritik gehört, dass AI-Coding-Tools starke Typisierung fehle, aber meiner Erfahrung nach funktionieren LLMs in Rails-Codebasen gut

    • Rails hat starke Konventionen, sodass LLMs auch ohne Typinformationen gut lernen können. Der Kern von Rails hat sich über die Zeit nicht wesentlich verändert
  • Ich nutze Django, und alles fühlt sich frisch an. Ich verwende htmx + alpine.js, um HTML auszuliefern, und seit ich von JSON-REST-APIs weggegangen bin, ist meine Produktivität stark gestiegen

  • RoR ist großartig. Ruby muss darüber hinaus wachsen

    • Ich habe bei einem Unternehmen gearbeitet, das sich entscheiden musste, ob eine Django-App auf Python 3 oder auf RoR neu geschrieben werden sollte, und man entschied sich für Letzteres. Viele Ideen, die in Django eingeflossen sind, begannen bei RoR
    • Auch in anderen Bereichen mit Python braucht es Innovation. Ruby müsste in wissenschaftlichem Rechnen, Machine Learning/AI, Datenanalyse usw. ähnlich angenommen werden wie Rails
  • In den 2010er-Jahren wurde der Ansatz „Konvention vor Konfiguration“ populär

    • Angular, EmberJS, Django und Rails waren sehr populär
    • Moderne Stacks bewegen sich zu React/NextJS mit maßgeschneiderten Backends
    • Ich frage mich, ob NextJS der am besten geeignete Ansatz „Konvention vor Konfiguration“ für React ist