Noch einmal in Rails schreiben
(dirkjonker.bearblog.dev)-
Beginn des Blogs
- 2022 wurde mit der Entwicklung einer Anwendung zum Ausfüllen von Zollerklärungen begonnen.
- Nach der Bewertung mehrerer Sprachen und Frameworks fiel die Entscheidung, mit Ruby on Rails zu entwickeln.
- Mit Rails war man vertraut und konnte daher im Vergleich zu anderen Optionen zehnmal schneller entwickeln.
-
Entwicklung von Version 2
- Es wurde begonnen, die zweite Version der Anwendung mit Rust und SvelteKit zu entwickeln.
- Anfangs wirkte es schnell und gut, aber nur 10 % der benötigten Funktionen wurden umgesetzt.
- Da es in Rust kein mit Rails vergleichbares Framework gab, kostete vieles viel Zeit.
-
Vorteile von Rust
- Die Vorteile von Rust in Bezug auf Performance und fehlerfreies Kompilieren wurden deutlich.
- In Ruby traten häufig Laufzeitfehler auf, wodurch der Bedarf an Rust spürbar wurde.
-
Veränderungen im Frontend
- Es gab Unzufriedenheit mit dem Frontend von Rails, daher fiel die Entscheidung für einen Wechsel zu SvelteKit.
- Einige Seiten wurden mit dem neuen Stack schnell umgestellt, doch das Deployment wurde komplexer.
-
Die Realität der Entwicklung
- Der Rails-Teil entwickelte sich weiter und fügte kontinuierlich nützliche Funktionen hinzu.
- Es wurde klar, dass der Wechsel zu Rust und Svelte den Nutzern keinen direkten Mehrwert brachte.
-
Die Schwierigkeit der Entscheidung
- Es wurde beschlossen, den neuen Stack aufzugeben und zu Rails zurückzukehren.
- Teammitglieder wurden dazu ermutigt, Rails zu lernen.
-
Vorteile von Rails
- Rails bildet die Grundlage vieler erfolgreicher Unternehmen und bietet zahlreiche Bibliotheken und ein starkes Ökosystem.
- Es ermöglicht, sich auf die Produktentwicklung zu konzentrieren.
-
Erkenntnisse
- Das Erlernen neuer Sprachen und Frameworks liefert viele Einsichten.
- Die Entwicklung von Webanwendungen erfordert viele Entscheidungen und Kompromisse.
- Die Rückkehr zu Rails war eine gute Entscheidung und steigerte die Produktivität.
-
Nachteile von Ruby und Rails
- Laufzeitprobleme lassen sich durch Tests lösen.
- Wenn Code komplex wird, liegt das an den Entwicklern; er muss gut organisiert werden.
- Rails ist schnell genug, und mit Turbo und Caching lässt sich die Performance verbessern.
-
Fazit
- Es gibt keine perfekte Sprache und kein perfektes Framework; man muss die jeweiligen Vor- und Nachteile verstehen und nutzen.
- Rails ist eine gute Wahl, und auch viele andere Frameworks sind hervorragend.
2 Kommentare
Schreib es in Ruby neu
Schreib es in Rails neu
Hacker-News-Kommentare
Rails, Django und Laravel sind bei der Entwicklung von Web-Apps anderen Stacks weit voraus. Sie übernehmen wiederkehrende Aufgaben, kennen die Anforderungen gut und stehen beim Bau von Anwendungen nicht im Weg. Webentwicklung ist meiner Meinung nach ein bereits gelöstes Problem, und JavaScript-bezogene Technologien werden oft durch die Finanzierung großer Unternehmen vorangetrieben
Ich nutze Rails seit 17 Jahren und liebe und bevorzuge es immer noch. Es macht es leicht, Code zu trennen, sodass Dateiköpfe nicht unnötig lang werden. Wenn man Logik und Markup trennt, kann man sie unabhängig testen, was die Fehlersuche erleichtert
Rust ist eine Sprache, die von sehr klugen Menschen entwickelt wurde, konzentriert sich aber so stark auf Typentheorie und Speicherallokation, dass sie für gewöhnliche Entwickler schwer zu verstehen ist. Selbst wenn ich Blogposts über Rust lese, verstehe ich nur etwa die Hälfte
Meine Unzufriedenheit mit Ruby und Rails ist geringer geworden. Es gibt keine perfekte Sprache oder kein perfektes Framework; man muss ihre Stärken und Schwächen kennen und entsprechend damit umgehen
Mit Rust ist es schwer, große Webanwendungen schnell zu schreiben. Große Anwendungen, die mit Rails geschrieben wurden, laufen nicht schnell, haben viele Bugs und können schwer zu warten und zu skalieren sein. Sprachen wie Java, C# und Go ermöglichen es, die Arbeit fast so schnell wie mit Rails zu erledigen und gleichzeitig fast so schnell wie Rust zu laufen
Technologien wie NextJS und SvelteKit sind unter JS-Entwicklern beliebt, weil sie die Probleme der Backend-Entwicklungserfahrung mit Node.JS lösen. Rails hat schon 2006 auf revolutionäre Weise eine umfassende Lösung für den Bau von Anwendungen geliefert
Ich teste gerade AdonisJS als TS-Alternative zu Rails. Es ähnelt Rails oder Laravel und nimmt einem die Last ab, jeden Teil des Stacks selbst festlegen zu müssen
Ich bin verwirrt über die Meinung, dass Rust nicht für Web-Backends geeignet sei. Bei kleinen Services habe ich gute Erfahrungen gemacht; beim Bau großer Anwendungen kann die Komplexität zwar steigen, aber Rust gibt mir das nötige Vertrauen für große Codebasen
Ich habe eine ähnliche Erfahrung mit Django: Leistungsprobleme entstehen meist eher durch Datenbankabfragen als durch Django selbst
Ich frage mich, warum man Rails verwendet, obwohl wir nicht mehr 2010 haben. Es gibt viele Alternativen wie Java (Spring), Go und Node. Rust zu verwenden ist eine ebenso merkwürdige Wahl wie C++