Webentwicklung
11.09.2024, 10:53 Uhr
Welches Web-Framework ist das passende? Ein Experiment
Entwickler Eugene Yan untersucht in einem Praxisbeispiel, wie unterschiedliche Web-Frameworks die Entwicklung einer Anwendungen beeinflussen. Am Start sind FastHTML, Next.js und SvelteKit.
(Quelle: EMGenie)
FastHTML hat in den letzten Wochen viel Aufmerksamkeit erhalten, seit Jeremy Howard es gestartet hat. Es zielt darauf ab, moderne Webanwendungen in reinem Python zu ermöglichen. Next.js ist ebenfalls sehr beliebt und wird häufig für die Erstellung produktionsreifer Webanwendungen genutzt, wie beispielsweise cal.com und roomGPT. SvelteKit hingegen ist leichter und erfreut sich in der Entwicklergemeinde wachsender Beliebtheit.
Um mehr über diese Frameworks zu erfahren, hat Eugene Yan die gleiche Webanwendung mit allen drei Frameworks entwickelt. Er hat sie "Look at Your Data" genannt. Diese Anwendung ermöglicht es Benutzern, eine CSV-Datei hochzuladen, einen SQLite-Datenbanktabelle anzuzeigen, einzelne Felder zu aktualisieren, Zeilen zu löschen und die aktualisierten Daten als neue CSV-Datei herunterzuladen.
Durch die Implementierung dieser CRUD-Operationen (Create, Read, Update, Delete) in jedem Framework sollten die einzigartigen Eigenschaften und die damit verbundene Entwicklererfahrung jedes Frameworks ermittelt werden.
Zuerst baute er die Anwendung mithilfe des ihm gut bekannten Stack, der aus FastAPI, Jinja, HTML, CSS und JavaScript besteht. Der Aufbau der Anwendung war ziemlich unkompliziert und umfasste Hauptkomponenten wie main.py, das die Routen zum Hochladen und Herunterladen von Daten sowie zum Aktualisieren und Löschen von Zeilen definiert.
Nach dem ersten Entwurf begann er, sich mit FastHTML vertraut zu machen. Er konsultierte die Dokumentation und baute eine einfache ToDo-App. Jeremy Howard selbst half ihm dabei, Tricks zu erlernen und zeigte, wie man die gesamte App mit nur 50 Codezeilen erstellen kann. Darüber hinaus testete er Next.js, wobei er die Grundlagen durch Tutorials erlernte. Diese erforderten doch erheblich mehr Code als die Python-Versionen.
SvelteKit hat er ebenfalls ausprobiert, nachdem er die interaktive Online-Übung durchlaufen hatte. Wie bei Next.js sah er sich auch hier mit einer Vielzahl von Verzeichnissen und Komponenten konfrontiert, die er in der Anwendung nutzen musste.
Ein weiteres Highlight war, als er schließlich versuchte, eine Anwendung mit FastAPI als Backend und Svelte als Frontend zu entwickeln, was ihn während der Entwicklung vor Herausforderungen stellte.
Ein Aspekt, der ihn zum Nachdenken brachte, war der Einfluss von LLM-Codierungsassistenten auf die Entscheidungen als Entwickler. Die Tatsache, dass sie möglicherweise bei etablierten Frameworks wie React effektiver sind, könnte neuere Frameworks wie Svelte und FastHTML benachteiligen. Die Bemühungen, optimierte Dokumentation für solche Frameworks bereitzustellen, sind ein Schritt in die richtige Richtung, aber die Zeit wird zeigen, wie effektiv dies in der Praxis ist.
Insgesamt war dies für Eugene eine interessante Übung in der Erkundung neuer Technologien und er freut sich darauf, mehr mit TypeScript zu arbeiten.