🖥
schlabonski.de – Code, Kram und Kaffee
_
schlabonski.de Logo
Code, Kram und Kaffee aus Bonn ⚠ Kein Support. Kein Newsletter. Kein Bullshit.
javascript.exe – Beiträge mit gemischten Gefühlen
_

JavaScript – eine komplizierte Beziehung

Ich muss JavaScript benutzen. Das ist keine Wahl, das ist eine Tatsache des Lebens als Webentwickler, so wie Regen in Bonn oder das unvermeidliche "könntest du kurz mal drüberschauen" vom Kunden freitags um 16:45 Uhr. Man arrangiert sich damit.

Ich hab angefangen mit JavaScript als es noch bedeutete: ein paar document.getElementById Aufrufe, ein bisschen Form-Validierung, fertig. Dann kam jQuery und alle fanden's toll. Dann kam Angular und alle fanden's toll. Dann kam React und alle fanden's toll. Dann kam Vue, dann Svelte, dann Solid, dann... irgendwann hab ich aufgehört zu zählen. Das Muster ist inzwischen bekannt.

Was auf dieser Seite steht: meine ehrliche Einschätzung zu dem was ich benutze, was ich ausprobiert hab und was ich bewusst ignoriere. Kein Tutorial-Kanal, kein Framework-Fanboy. Einfach ein Backend-Entwickler der JS da einsetzt wo's Sinn macht – und Vanilla nimmt wo's reicht.

Wer professionelle WordPress Websites mit ordentlichem JS-Fundament braucht – das ist nicht mein Angebot hier, aber es gibt Leute die sowas machen. Ich schreib lieber drüber.

📋 Der JavaScript-Hype-Zyklus – schlabonski's Beobachtungsprotokoll
2006jQuery – endlich kein Browser-Compatibility-Albtraum mehr
2010Node.js – JavaScript auf dem Server! Revolutionär!
2013Angular – Enterprise-JS, MVC, Dependency Injection, sehr viel Boilerplate
2015React – Components! JSX! Virtual DOM! Alle migrieren sofort.
2016Angular (das neue) – alle verwirrt, viele weg zu React
2018Vue 2 – "React aber netter". Stimmt irgendwie.
2019Svelte – kein Virtual DOM! Compile-Time! Sehr gehypt.
2023Bun, Astro, Solid, Qwik – und drei andere die ich vergessen hab
2026??? – läuft gerade. Irgendwas mit "keine Hydration".

Was ich tatsächlich benutze

Für die meisten meiner Projekte reicht Vanilla JS. Wirklich. Fetch API, querySelector, ein paar Event-Listener, vielleicht ein kleines eigenes Modul – und fertig ist ein interaktives Frontend das keine 800-KB-Bundle-Größe hat und das ich in fünf Jahren noch lesen kann ohne ein Versionierungs-Chaos zu entwirren.

React benutze ich wenn's der Kunde fordert oder wenn die Interaktivität wirklich komplex genug ist um den Overhead zu rechtfertigen. Das ist seltener als die React-Community einem glauben machen will. Für einen Blog, eine Firmenwebsite oder einen normalen Shop: Vanilla reicht. Für eine komplexe Single-Page-App mit viel State: okay, dann React. Aber dann bitte mit Bedacht und nicht weil alle anderen's auch haben.

// Das hier braucht kein Framework. Wirklich nicht. async function ladeInhalte(url) { try { const res = await fetch(url); if (!res.ok) throw new Error(`HTTP ${res.status}`); const data = await res.json(); document.getElementById('ausgabe').textContent = data.titel; } catch (err) { console.error('Fehler:', err.message); } } // 12 Zeilen. Keine Dependencies. Funktioniert in jedem Browser seit 2018.

Aktuelle JavaScript-Beiträge

Warum ich React immer noch nicht mag – aber es trotzdem benutze

React ist der De-facto-Standard für komplexe Frontend-Arbeit. Das akzeptier ich. Was ich nicht akzeptiere: dass man React für jedes Projekt nimmt, egal ob's passt oder nicht. Die Punkte die mich stören – JSX-Syntax die immer noch seltsam aussieht, der useEffect-Hook der gefühlt immer falsch läuft, die schiere Menge an Boilerplate für simple Dinge – die sind real. Trotzdem: wenn State-Management komplex wird und das Team React kennt, ist's die richtige Wahl. Ich hab Frieden damit geschlossen. Ungefähr.

Vanilla JS in 2024 – was geht, was nicht geht, was überrascht

Die moderne Web-API ist erheblich besser als ihr Ruf. Fetch, IntersectionObserver, ResizeObserver, CSS Custom Properties via JS, das neue Dialog-Element – vieles wofür man früher jQuery oder ein Framework gebraucht hätte, geht heute nativ. Ich hab ein paar Projekte komplett ohne Build-Step und ohne Framework umgesetzt und die Erfahrung war... angenehm entspannt. Kein Webpack-Config-Drama. Kein "breaking change in Version 18.2.1". Einfach Dateien, Browser, fertig.

node_modules – ein Horrorfilm in mehreren Akten

Ich hab mal nachgeschaut wieviele Packages ein frisches Create-React-App-Projekt mitbringt. Die Antwort ist "zu viele" und ich werde sie hier nicht nennen weil ich keine schlechte Laune verbreiten will. Was ich sagen kann: das node_modules-Verzeichnis meines letzten React-Projekts war größer als meine gesamte Musiksammlung. Das sollte irgendwie ein Warnsignal sein. Der Beitrag schaut sich an woher das kommt, was dependency hell eigentlich bedeutet und warum "npm audit fix" manchmal mehr kaputt macht als es repariert.

jQuery 2023 – ist das noch zeitgemäß?

Kurze Antwort: für neue Projekte nein, für Legacy-Projekte oft ja. Lange Antwort: jQuery ist auf mehr Websites aktiv als alle modernen Frameworks zusammen – weil das Web voll ist mit Projekten die 2012 gebaut wurden und noch laufen. Wer sowas wartet, der kennt jQuery gut oder lernt es. Wer neu anfängt hat mit nativem JS heute kaum noch Nachteile gegenüber jQuery – außer vielleicht ein paar Zeilen mehr Tipparbeit für DOM-Manipulation.


→ alle 31 JavaScript-Beiträge im Archiv