[Diskussion] Der aktuelle Stand und die Zukunft der Webentwicklung

trialgod

Lt. Commander
Registriert
Feb. 2008
Beiträge
1.552
Da ich jetzt ganz gern in diesem Unterforum unterwegs bin, ist mir aufgefallen, dass viele Threads ins offtopic abdriften.

Deshalb dachte ich mir, wäre eine zentrale Stelle um dies zu diskutieren eine gute Idee. Gegebenenfalls kann man dann in den anderen Threads, in denen dieser offtopic droht hier her verweisen.

1. IST-Zustand

1.1. Teile der Webentwicklung

1.1.1. Allgemein
Das "Web" besteht aus vielen Teilen, die man beherrschen muss.

Der Grundbaustein von allem ist HTML (Hypertext Markup Language). HTML bildet die Struktur eines Dokumentes, damit dieses auf verschiedenen Medien korrekt dargstellt werden. Neben dem Browser werden HTML Dokumente z.B. auch für Drucker oder für Screenreader optimiert.

Um das Aussehen eines Dokumentes zu beeinflussen, gibt es CSS (Cascading Style Sheets). Dieses dient dazu das Aussehen einzelner HTML-Elemente zu beeinflussen. Seit der Version 3 kann man ebenso das Verhalten eines HTML-Elementes in beschränktem Maße verändern.

Um das Verhalten einer Webseite zu steuern gibt es JavaScript. Dies wird z.B. direkt von einem Browser ausgeführt, findet also auf dem Endgerät statt.

Um Daten darzustellen/zu manipulieren braucht man einen Server, der diese zentral speichert. Dies geschieht i.d.R. über eine Datenbank, kann aber -je nach Anwendungsfall- auch nur aus Dateien bestehen. Es gibt hier noch verschiedene Arten, wie diese Daten ausgeliefert werden. Zumeist geschieht das anhand einer kompletten Webseite (also HTML, ggf. CSS und JavaScript), kann aber auch nur aus einer API bestehen. Diese verarbeitet dann spezielle Anfragen und gibt die Daten in einem festgelegten Format aus.
1.1.2. HTML

... to be continued

In einem ersten Schritt würde ich den IST-Zustand im Eingangspost beschreiben und auch versuchen aktuell zu halten. Hier hoffe ich auf eure Mitarbeit.

Aspekte die es m.M.n. zu beleuchten gibt:

  1. die verschiedenen Teile (HTML, CSS, JS, HTTP Protokoll, Backendsprache, AJAX, etc.) (habe ich oben schon einmal begonnen)
  2. die verschiedenen Backendsprachen/-frameworks
  3. die verschiedenen Frontendframeworks
  4. relevante Open Source Projekte (v.a. CMS Systeme) gegliedert nach Sprache
  5. Einfluss und Relevanz der verschiedenen Endgeräte (insbesondere der Mobilesektor)
  6. aktuelle Entwicklungen allgemeiner Art

Es würde mich freuen Teilhaber in diesem Thread zu finden.

Letztenendes sollte es auch viele Einsteigerfragen, die eher allgemein oder betreffend der Berufswahl sind beantworten bzw. beleuchten.
 
Zuletzt bearbeitet:
Zu 1:
Hinsichtlich HTTP(v1.1) sollte man sich eben des strikten Vorgehens gemäß Request/Response bewusst sein. Der ganze Kram ist dazu auch noch zustandslos. Egal welche Ressource du willst, du musst erst einmal nach ihr fragen, und jeder Request wird vollkommen unabhängig von allen anderen, vorherigen, Requests bearbeitet.
In der Richtung gibts ein paar Weiterentwicklungen. Die wichtigste dabei ist natürlich HTTP 2.0 bzw. das bereits in Verwendung befindliche SPDY-Protokoll (z.B. bei Facebook). Der Kram kann HTTP PUSH für die Ressourcen einer Seite, das heißt der Client (Browser) erhält Daten, obwohl er nicht danach gefragt hat. Das senkt den Overhead gewaltig, kann aber andererseits die Bandbreiten-Last erhöhen. Der Client erhält eben auch Kram, den er eigentlich nicht will. Zusätzlich, als Parallelentwicklung, gibts inzwischen WebSockets, über die durchaus auch zustandsbehaftete Verbindungen möglich sind, oder ein erweitertes PUSH. 10000 User sollen den neuesten Tweet sehen? Wäre doch Mist, wenn dafür 10000 User Polling betreiben müssten. Schieb ihnen die Daten über einen Socket brühwarm auf den Teller, sobald sie bereit stehen.

Alles was die verschiedenen möglichen Backendsprachen, Frameworks und Open Source Basissysteme angeht, dürfte deinen Post hingegen 1000x sprengen und außerdem nur zu einem Grabenkampf führen. Wirklich Fakt ist nur, dass es längerfristig bei HTML, CSS und JS im Frontend bleiben wird. Im Backend hast du so eine enorme Auswahl, dass einem einfach nur schlecht werden kann. ASP.NET, natives C/C++, PHP, Perl, Python, Node.JS, Ruby,.... Ich bin mir sicher, irgendwo wird auch ein Bekloppter versuchen, einen HTTP-Dienst in Ook! oder Brainfuck zu schreiben...

Gott verdammt, existiert für Programmiersprachen etwa auch so etwas wie die "Rule 34" für Pornos?
http://modbf.sourceforge.net/
 
Zuletzt bearbeitet:
Schöne Sache. Wenn das halbwegs steht hier, werde ich mit einem Link hierher den armseligen Webentwicklungsteil in meinem FAQ-Thread ersetzen.

Responsive web design sollte noch dabei sein und ich würde auch erwähnen, dass man Websites nicht in Photoshop erstellt und dann die slices mit Tabellen layoutet...

Für CSS würde ich Sass und Less erwähnen und mal auf Bootstrap und Co verweisen. Nicht, weil es der Königsweg ist, aber es ist bedeutend besser, als was Anfänger (und auch Fortgeschrittene) selbst so produzieren können.

Bei JS hab ich nur mit Angular Erfahrung, aber es gibt ja so extrem viel Zeug (grunt, bower usw.), dass ich das gar nicht alles bewerten kann. Auch, weil ich eher Backendler bin. Aber da wird sich schon jemand hier finden.

Für das Backend muss man auch ganz schön viel zusammentragen. PHP, ASP.Net, Java, Ruby, Python, die jeweiligen Kings unter den Frameworks. Der Artikel wird wohl ganz schön riesig werden...
 
Finde die Idee nett (und wird vermutlich auch etwas Arbeit :)), nur stimme ich Daaron beim Backendkram zu. Das wäre eine sehr lange Listen, wenn man halbwegs vollständig sein will. Selbst die bekanntesten Frameworks in bekannten Sprachen sind nicht wenige.

Zum Frontend (Browser) fällt mir Spontan ein:

Grundlegend hat sich da seit dem beginn das Webs nicht zu viel Verändert:
HTML, CSS, JS und der DOM, welcher alles Verbindet (mit seiner Standard API für z.B. Ajax Kram).
Es sind mit HTML5 eben viele API's dazugekommen. Canvas, WebGL, IndexedDB, LocalStorage. An den Grundlegenden Dingen wie HTML und CSS ändern die nichts, sondern fügen nur neue Funktionalität hinzu.
Dann noch neue HTML Tags, SVG, mehr CSS Eigenschaften und neue JavaScript Versionen. Dazu ist alles schneller geworden und die Webstandards sind auch deutlich besser geworden. Der HTML 4.1 Standard ist Qualitativ deutlich mieser als der aktuelle HTML5 Standard. Die WHATWG hat dem W3C da ganz gewaltig in den Hintern getreten bzw. tut es immer noch und so wurde auch die Qualität der Implementierungen in den Browser immer besser und kompatibler.

Es gibt aktuell einige Ideen und Entwicklungen, welche das Web nochmal deutlich Umkrempeln könnten:
Diese ganze "Web Components" Idee hat ein paar interessante Punkte z.B. soll man damit eigene HTML Tags (per JavaScript) definieren und auch eine eigene DOM API usw. an die Tags anbauen können. So sollen diese Grundlegenden Konzepte in Browsern für die Webentwickler nutzbar und erweiterbar werden. Chrome ist da aktuell der Hauptakteur, Firefox macht auch mit, über aber auch etwas Kritik an an ein paar Ideen: https://hacks.mozilla.org/2014/12/mozilla-and-web-components/

Die Browser implementieren aktuell ES6 und damit wird JavaScript ein ganzes Stück aktueller.
Der Fortschritt sieht da schon ganz gut aus:
http://kangax.github.io/compat-table/es6/
Die Dev Version vom IE ist aktuell mit 72% auf Platz 1! :freak: Die Typen bei MS müssen nur auch mal eine neu IE Version Releasen.
Safari 8 ist dagegen nur etwas über dem IE 11 :D

Ein paar Köpfe beim Chrome und Firefox basteln aktuell auch an einem Standard namens "Service Worker". Damit bekommt man als Webentwickler Zugriff auf den ganzen Netzwerk- und Cache-Layer der Browser. Aktuell kann man da ja nur begrenzt mit ein paar HTTP-Headern Einfluss nehmen. Das soll wie eine kleiner Proxy im Browser funktionieren, über den alle Anfragen einer Webseite laufen. Damit könnte man dann "richtige" offline Anwendungen Programmieren, denn der Proxy kann alle HTTP Anfragen aus dem Cache beantworten, im Hintergrund neue Daten Synchronisieren etc. Könnte interessant werden.

HTTP 2.0 wurde ja schon genannt. Da wird es noch interessant, ob die Browser zwangsläufig Verschlüsselung vorschreiben. Damit könnte der Job der NSA etwas schwerer werden :evillol:

Man muss aber immer bedenken: Es dauert Jahre von einer Idee zur Praxisreife, denn es müssen erst viel Browser eine Technologie implementieren bis es für Webentwickler wirklich nutzbar wird.
Und aktuelle Techniken komplett zu ersetzten kann man praktisch Vergessen. Es gibt z.B. keinerlei Hinweise, dass JavaScript tatsächlich von Google's Dart ersetzt wird. Weiterentwickeln aktueller Dinge ist immer sicherer.

Wenn man die aktuelle Einwicklung von Browsern im Detail kennen will:
https://www.chromestatus.com/
https://status.modern.ie/
https://developer.mozilla.org/en-US/Firefox/Releases bzw. der genannte Blog
Für Safari gibt es so eine Übersicht wohl nicht...
 
Zuletzt bearbeitet:
T0a5tbr0t schrieb:
HTML, CSS, JS und der DOM, welcher alles Verbindet (mit seiner Standard API für z.B. Ajax Kram).
Du vergisst den Shadow DOM, den wir tagtäglich verfluchen, weil durch ihn die Steuerelemente von <audio> in FF anders als in Chrome aussehen und sich daran nix ändern lässt.

Ergänzend zu Web Components klingt auch das neue <template> - Element verdammt lecker.

Damit könnte man dann "richtige" offline Anwendungen Programmieren, denn der Proxy kann alle HTTP Anfragen aus dem Cache beantworten, im Hintergrund neue Daten Synchronisieren etc. Könnte interessant werden.
Bis zu einem gewissen Grad gibts dafür schon das Manifest-System.

Man muss aber immer bedenken: Es dauert Jahre von einer Idee zur Praxisreife, denn es müssen erst viel Browser eine Technologie implementieren bis es für Webentwickler wirklich nutzbar wird.
Sag es doch wie's ist: Irgend ein Hersteller schlampt immer. Spätestens die lange Lebenszeit von Microsoft-Produkten verdirbt dir jeden Spaß. Schau dir doch mal den IE8 an: der wird uns noch über Jahre verfolgen, einfach weil er der kleinste gemeinsame Nenner für Win7 ist. Gleichzeitig ist es mehr als fraglich, ob Win7 im Gegenzug den IE12 erhalten wird, immerhin ist Win7 in ein wenigen Tagen am Ende seines Feature-Supports.
Aber tatsächlich ist nicht immer der IE schuld. Ich hab auch schon allerhand coole Technologien gesehen, die im IE seit 10 drin sind, aber dann wahlweise in Gecko oder Webkit/Blink fehlen oder unvollständig sind.

Und wenn man wirklich wissen will, was gerade geht und was nicht: http://caniuse.com/
 
Zurück
Oben