Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Webtechnologien werden immer wichtiger. Unternehmen und Endnutzer können, ohne Software auf ihrem Rechner zu installieren, auf Applikationen, über das Internet, zugreifen.
Hierdurch ergeben sich einige Vorteile. Ein grosser Vorteil ist sicherlich auch, dass alle Daten zentral online gespeichert werden, und dadurch “Daten-Silos” vermieden werden, welche man nur schwer zusammenführen kann.
In diesem Beitrag beschreiben wir die wichtigsten Technologien für die Entwicklung von solchen Online-Applikationen.
Grundsätzlich kann man zwischen Server-seitiger und Client-seitiger Programmierung sprechen. Für beides gibt es unterschiedliche Technologien.
Server-seitige Programmierung
Die Folgenden werden für die Server-seitige Programmierung genutzt. Diese sind Programmierungen, welche für den Endnutzer nicht sichtbar sind. Zum Beispiel wird eine Information aus der Datenbank gesucht und bereitgestellt, dies wird mit dem Server-seitigen Coding erreicht.
Die derzeit beliebtesten Webtechnologien sind PHP, ASP.NET, Python, Java und Ruby. Mehr dazu im Folgenden:
PHP: PHP ist Open Source. Dies bedeutet, dass der meiste Code, welcher Online verfügbar ist, kostenfrei und ohne Lizenz zu erwerben sind. Lange Zeit war PHP nicht für komplexe Programmierungen genutzt worden. Dies hat sich jedoch in den letzten Jahren geändert.
Besonders durch Frameworks wie Laravel, weiter unten in diesem Beitrag beschrieben, machen die Programmiersprache wieder interessant. Bekanntermassen nutzen Facebook und Wikipedia PHP für deren Seiten.
3 Vorteile
- Weit verbreitet: Ein Grossteil der Webseiten weltweit läuft auf PHP
- Viele Entwickler: Man findet PHP Entwickler weltweit
- Gereift: Die Technologie besteht schon seit mehreren Jahrzehnten und ist daher bereits durchgängig getestet und ausgebessert worden
3 Nachteile
- Nicht so strukturiert: Da es bei PHP sehr viele Programmierer gibt, welche ihren Input hinzugeben und die Programmiersprache sich über die Jahre hinweg entwickelt hat, ist nicht alles so strukturiert. Ein Gesamtkonzept, wie zum Beispiel für Microsofts ASP.NET, fehlt
- Performance: Viele vermeiden PHP wenn es um die Programmierung von Anwendungen geht, welche sehr rechenlastig sind. In den letzten Jahren hat sich das natürlich, durch die neuen Frameworks, geändert
- Sicherheit: Da der Code von allen eingesehen werden kann, sind Applikationen auf dieser Softwaresprache etwas anfälliger für Online-Angriffe
ASP.NET: ASP.NET ist mehr im Bereich Geschäfts-Webapplikationen zu finden. Dies liegt auch daran, dass Microsoft, der Bereitsteller dieser Technologie, einen Fokus darauf hatte, diese als solche zu etablieren. ASP.NET wird in vielen Online Anwendungen genutzt. Zum Beispiel nutzt Microsoft diese selbst, um zum Beispiel outlook.com (die Online Version des beliebten Desktop Email-Clients Outlook) bereitzustellen. Viele Softwarefirmen nutzen es zudem, um Geschäftsapplikationen zu schreiben.
3 Vorteile
- Gesamtkonzept: Alle Komponenten von ASP.NET sind gut durchdacht und greifen ineinander ein. Das liegt auch daran, dass Microsoft hier ein Gesamtkonzept, für diese Technologie, bereits vor der Entwicklung dieser, hatte
- Microsoft: Microsoft ist der Bereitsteller dieser spannenden Web Lösung. Manche Komponenten sind zwar kostenpflichtig, dafür geht man jedoch sicher, dass die Lösung gut funktioniert
- Grosse Applikationen: Mit ASP.NET lassen sich grosse Software-Webapplikationen mit sehr wenig Code schreiben
3 Nachteile
- Microsoft: Das der Bereitsteller Microsoft ist, ist ein Vorteil und ein Nachteil zugleich. Viele Programmierer wollen lieber nicht mit der Software eines Grossunternehmens arbeiten, da diese Unternehmen meistens eigene Interessen verfolgen
- Kosten: Viele der Werkzeuge, welche Microsoft, auch im Zusammenhang mit ASP.NET, bereitstellt, sind kostenpflichtig. Für kleine Unternehmen, Agenturen und Freelancer lohnt sich die Software also eher weniger
- Sehr grosse Applikationen: Für Applikationen, welche von mehreren Millionen Anwendern gleichzeitig genutzt werden, macht ein Programmierung mit Java mehr Sinn.
Python: Python wird, meiner Meinung nach, nicht so oft für die Webprogrammierung genutzt. Dennoch findet es seinen Weg oftmals, neben ASP.NET und Java, in Unternehmen, welche es für Geschäftsanwendungen nutzen. Auch Endnutzer Systeme werden mit Python programmiert. YouTube, Google und DropBox laufen zu einem Teil auf Python, was zeigt, dass es stark, robust und schnell ist.
3 Vorteile
- Einfacher zu erlernen: Python ist einfacher zu erlernen als zum Beispiel Java oder C++.
- Strukturierter: Gegenüber anderen Sprachen, wie zum Beispiel PHP, ist Python viel strukturierter. Dies ermöglicht zudem einen fehlerfreieren Code sowie eine schnellere Programmierung
- Schnell entwickelt: Mit Python lassen sich Anwendungen schneller programmieren, als mit anderen Sprachen
3 Nachteile
- Entwickler schwer zu finden: Im Gegensatz zu Python, lassen sich Entwickler für PHP, ASP.NET oder Java sehr einfach finden. Auch wenn Python sehr robust und flexibel ist. Dies bringt wenig wenn man keine Entwickler dafür findet
- Experten benötigt: Ein Anfänger wird es meistens nicht schaffen eine gute Python Applikation zu schreiben. Es benötigt Experten. Wie im ersten Nachteil bereits geschrieben, ist es schwer Programmierer in diesem Bereich zu finden. Experten zu finden wird daher noch etwas schwieriger
- Dokumentation: Auch wenn die Sprache einfach zu erlernen ist. Es lässt sich nur schwer gute Dokumentationen für diese finden
Java: Java ist eines der Werkzeuge für Unternehmen, um grosse Geschäftsanwendungen zu schreiben. Es ist um ein vielfaches schwerer zu erlernen als PHP oder ASP.NET. Daher findet man zwar Experten dazu. Jedoch muss man stärker suchen und definitiv auch mit höheren Kosten, durch die höheren Gehälter in diesem Bereich, rechnen. Wer jedoch gute Entwickler findet, kann damit sehr grosse, komplexe und performante Webanwendungen programmieren.
3 Vorteile
- Zukunftsfähig: Java gibt es schon seit sehr langem und die Chancen sind mehr als gering, dass es in den nächsten Jahren an Popularität verliert
- Weit verbreitet: Java wird in den meisten Grossunternehmen genutzt. Laut IDC (International Data Corporation, Marktforschungsunternehmen) nutzen 90 Prozent der Fortune 500 Unternehmen (die 500 grössten Firmen der Welt) Java, um ihre Geschäftsanwendungen zu betreiben
- Android: Die Entscheidung von Google, Java zu nutzen, um seine mobile Plattform Android zu schreiben, hat Java noch weiter gestärkt. Ein Grossteil der mobilen Endgeräte läuft heutzutage auf Android und damit auf Java
3 Nachteile
- Entwickler teuer: Da Java-Entwickler zum grössten Teil in Grossunternehmen beschäftigt sind, erhalten sie meistens ein sehr hohes Gehalt und sind für kleinere Unternehmen eher schwer zu finden und einzustellen
- Expertise notwendig: Genau wie bei Python, lassen sich auch mit Java, Applikationen nur mit Experten entwickeln. Wobei die Programmierung mit Java, meiner Meinung nach noch etwas komplexer ist, als mit Python
- Sicherheit: Da Java Plattform-unhabhängig ist, wird Java auch als weniger sicher gehandelt, als andere Sprachen
Ruby: Ruby ist eine sehr beliebte Softwaresprache für die Programmierung von Webapplikationen. Besonders das Ruby Framework Rails, lässt diese Technologie im positiven Licht dastehen. Ich würde behaupten, dass sich damit mittelgrosse bis grosse Applikationen erstellen lassen. Besonders Startups haben einen Fokus darauf, da sich damit relativ schnell programmieren lässt.
3 Vorteile
- Fokus auf das Internet: Ruby ist eine auf das Web fokussierte Programmiersprache, anders als zum Beispiel .NET oder Java. Daher berücksichtigt es viele der Besonderheiten des Internets
- Wartbarkeit: Ruby lässt sich einfach warten. Dies bedeutet auch, dass sich einmal geschriebener Code auch durch einen neuen Programmierer einfach warten und weiterentwickeln lässt
- Schnelligkeit: Es lässt sich mit Ruby sehr schnell Applikationen erzeugen, für welche man mit anderen Sprachen länger bräuchte
3 Nachteile
- Programmierer schwer zu finden: Ruby Programmierer lassen sich, zum Teil, noch schwerer finden als Java Experten
- Skalierbarkeit: Einige Programmierer beschweren sich, dass Ruby schwer nach oben skalierbar ist. Twitter ist zum Beispiel mit Ruby gestartet und ist dann auf Java umgestiegen. Dies soll jedoch nicht bedeuten, dass Ruby die falsche Entscheidung für Twitter war, sondern nur, dass ab einer bestimmten Grösse, ein Werkzeug wie Java die bessere Wahl ist
- Dokumentation: Es lässt sich relativ schwer eine gute Dokumentation zu Ruby finden. Das bedeutet auch, dass man sich länger mit dem Code beschäftigen muss
Web-Frameworks
Für alle diese Softwaresprachen gibt es sogenannte Frameworks, welche die Arbeit mit diesen Sprachen, um einiges vereinfacht. Meistens handelt es sich um Code-Bibliotheken, in welchen sich viele oder die meisten Funktionalitäten bereits finden lassen. So kann man darauf verzichten alles von Grund auf neu zu programmieren, sondern kann auf diese Framworks zurückgreifen.
Diese Frameworks sind besonders für mittelgrosse bis grosse Applikationen geeignet, welche schnell entwickelt werden müssen, skalierbar bleiben sollen und von vielen Anwendern genutzt werden.
Die wichtigsten Frameworks im Überblick:
PHP Laravel
Laravel ist ein eher neueres PHP Framework. Es wird genutzt um schnelle und leichte Online-Applikationen zu schreiben.
3 Vorteile
- Leichtgewicht: Es eignet sich für kleine Unternehmen mit einem Programmierer oder einigen wenigen, um leichte Applikationen zu schreiben, welche man zum Beispiel auch als Geschäftsanwendungen nutzt
- Sehr gut dokumentiert: Es gibt sehr gute Dokumente und Tutorials welche Laravel im Detail erklären
- Popularität: In den letzten Monaten und Jahren ist die Popularität von Laravel extremst gestiegen. Neben Zend ist Laravel heutzutage wohl das beliebteste PHP Framework
3 Nachteile
- Taylor Otwell: Taylor Otwell ist der Haupt-Autor von Laravel. Dies ist zum Teil auch eine Gefahr. Was ist wenn er das Framework nicht weiterführt? Die Weiterführung wäre in diesem Fall nicht geklärt
- Sehr neu: Da es ein sehr neues Framework ist, gibt es noch nicht viele Programmierer die damit arbeiten
- Sicherheit: Da es ein sehr neues Framework ist, ist auch der Sicherheitsaspekt noch nicht hundert Prozent auf dem höchstem Niveau. Dies wird sich sicherlich in den nächsten Monaten und Jahren enorm verbessern. Zum derzeitigen Zeitpunkt gibt es jedoch Sicherheitslücken
ASP.NET MVC
Mit ASP.NET MVC lassen sich spannende Geschäftsanwendungen schreiben. Auch dieses Framework hat in den letzten Jahren an Popularität gewonnen. Sicherlich war das von dem Hersteller, in diesem Fall, Microsoft, auch so gewollt.
Microsofts MVC ist gut strukturiert und es lassen sich skalierbare Anwendungen programmieren.
3 Vorteile
- Unterstützt Test-Driven Development: Es ist relativ einfach automatisierte Tests zu schreiben, um den Code zu überprüfen
- Viele Entwickler gleichzeitig: Mit dem ASP.NET MVC Framework lässt es sich einfach in grossen Teams arbeiten
- Komplexität einfacher handhabbar: Durch die Einteilung der Anwendung in Model, View und Controller, können MVC Applikationen einfacher und übersichtlicher programmiert werden
3 Nachteile
- Komplex für einfache Aufgaben: Es lohnt sich für Entwickler nicht auf Frameworks wie das ASP.NET Webforms zu setzen, wenn es sich eher um kleinere Applikationen handelt. MVC kann zu komplex sein, für kleine Teams, welche kleine Programme schreiben
- Kenntnisse in HTML & CSS benötigt: Wer mit dem ASP.NET MVC Framework arbeiten möchte, benötigt gute Kenntnisse in den Client-seitigen Technologien HTML und CSS
- Lernkurve: Es braucht einiges an Zeit sich dieses Framework anzueignen
Python Django
Django ist das wichtigste Python Framework. Es eignet sich besonders für Startups, welche sehr schnell programmieren möchten und dieses Framework auch später behalten wollen. Dass heisst, es ist skalierbar.
3 Vorteile
- Grossartige Community: Es gibt eine grosse Community (Englisch für “Gemeinschaft”, in diesem Fall Programmierer-Gemeinschaft), welche das Framework nutzt und weitere Beiträge (Django ist Open Source) dazu leistet
- D.R.Y: D.R.Y steht für Don’t Repeat Yourself. Es ist die Philosophie welche hinter Django steckt. Dies bedeutet, dass das Framework einen Fokus darauf hat, soviel aus geschriebenen Code zu bekommen wie nur möglich. Das macht es möglich, dass man in weniger Zeit, arbeitenden Code erzeugen kann
- Alternative zu Ruby on Rails: Am nahesten kommt Django dem Rails Framework für Ruby. Django ist eine Alternative zu Rails. Manche Entwickler empfinden Django einfacher zu nutzen als Ruby
3 Nachteile
- Entwickler: Wie bei Ruby auch, kann es schwer werden passende Entwickler zu finden
- Wenig geeignet für Mobile: Nur sehr wenige Smartphone Applikationen werden mit Python geschrieben
- Deployment: Das Deployment von Django auf dem Produktivserver, wird besonders von Einsteigern, als eher schwierig bezeichnet
Ruby Rails
Rails ist das prominenteste der Ruby Frameworks. Es wurde initial entwickelt, um das prominente Projektmanagement Werzeug BaseCamp zu bauen. Rails ist im Jahr 2004, ein Jahr vor dem offiziellen Start von Django, veröffentlicht worden und hat auch eine grössere Community als Django.
3 Vorteile
- Sauberer Code: Wie Laravel für PHP, hilft auch Rails, sauberen Code mit Ruby zu erstellen
- Grössere Community: Wie bereits erwähnt, hat Rails mehr Nutzer, als sein direkter Wettbewerber Django
- Kostengünstige Entwicklung möglich: Individual Software ist in den meisten Fällen sehr teuer zu bauen. Rails ermöglicht die Kosten für solche Software zu verringern
3 Nachteile
- Geschwindigkeit: Wenn man sehr schnelle Applikationen benötigt, sollte man auf Java setzen
- Hosting: Es ist schwer ein passendes Hosting für Rails zu finden. Für PHP ist es hingegen keine Herausforderung ein passendes und günstiges Hosting zu bekommen
- Fehlende Unterstützung von grossen Unternehmen: Hinter Java steht die Firma Oracle, hinter PHP steht Zend, hinter Angular.JS steht Google. Für Ruby und Rails fehlt eine solche Unterstützung von Grossunternehmen
Client-seitige Programmierung
In der Webentwicklung müssen nicht nur Funktionen ausgeführt werden, sondern diese müssen dem Nutzer auch als Resultat Online im Browser angezeigt werden. Hierfür nutzt man Client-seitige Webtechnologien. Im Weiteren die Wichtigsten davon:
HTML: HTML steht für Hypertext Markup Language und wird genutzt um Web-Seiten anzuzeigen. Farben, Schrift, Hyperlinks, etc. können darüber angezeigt und geändert werden.
CSS: CSS steht für Casdading Style Sheet und hilft dabei, wie HTML Elemente auf dem Bildschirm angezeigt werden. Das Layout kann hiermit verändert werden.
JavaScript: JavaScript wird üblicherweise für die Client-seitige Programmierung genutzt. Dieser Code wird in die HTML Seite geschrieben. Falls der Nutzer die HTML Seite aufruft, dann wird die JavaScript Programmierung zum Browser gesendet. Der Browser wiederum entscheidet, was es mit dem JavaScript Code machen soll. Ein simples Pop Up, wäre ein Anwendungsbeispiel, welches man mit JavaScript umsetzen kann.
jQuery: jQuery macht es einfacher JavaScript zu nutzen. Komplizierte JavaScript Programmierungen, welche mehrere Zeilen Code benötigen, können mit jQuery in einer einzigen Zeile Code aufgerufen werden.
Ajax: Ajax steht für Asynchronous JavaScript und XML. Es wird genutzt, so dass die Client-Seite mit der Server-Applikationen kommunizieren kann. Beispiel: Ein Nutzer klickt mit dem Cursor auf ein Element der Website. Daraufhin sendet Ajax eine Anfrage, mithilfe von XML zur Server-seitigen Applikation. Die Serverseitige Programmierung verarbeitet die Anfrage und sendet die Informationen via XML zurück zur Client-Seite (zur Webseite) welches die Anfrage stellte. Eine zweite JavaScript Funktion holt die Daten/ Informationen ab und zeigt diese Daten auf der Webseite an.
Angular.JS: Angular.JS (auch Angular genannt) ist ein JavaScript Framework, welches in den letzten Jahren einiges an Popularität gewonnen hat. Damit lassen sich einfach Client-seitige Webanwendungen schreiben. Einmal durch den Anwender über den Browser aufgerufen, muss es kein weiteres mal mit dem Server kommunizieren. Hierdurch läuft die Applikation schneller. Komplexer Code und Programmierungen können mit Angular auf einfache Weise erstellt werden.
Datenbanken
Datenbank: Hierbei handelt es sich eine Ansammlung von organisierten Daten. Es ist eine Sammlung von Tabellen, Suchanfragen, Reporten, Ansichten und anderen Objekten.
Datenbank Management System (DBMS): DBMS ist eine Softwareapplikation welches mit dem Nutzer, anderen Applikationen und der Datenbank selbst interagiert, um Daten aufzunehmen oder Daten zu analysieren. Ein übliches DBMS ist dazu gemacht, um Datenbanken zu definieren, zu erstellen, abzufragen, upzudaten und diese zu administrieren. Bekannte DBMS sind MySQL, SQL Server von Microsoft, Oracle oder DB2.
Fazit
Die in diesem Beitrag genannten server-seitigen Softwaresprachen PHP, ASP.NET, Python, Java, Ruby, die dazugehörigen Webframeworks Laravel, MVC, Django, Rails, die client-seitigen Werkzeuge HTML, CSS, JavaScript, jQuery, Ajax, Angular.JS und die Datenbanksoftware MySQL, SQL Server, Oracle, DB2 sind die bedeutendsten Technologien wenn es darum geht, Webanwendungen zu schreiben.
Viele dieser Werkzeuge werden uns auch in Zukunft (in den nächsten Jahren) erhalten bleiben, daher macht es Sinn sich diese anzueignen.
Welche Erfahrungen habt Ihr gemacht? Was könnt Ihr empfehlen?
Bilder: Flickr.com/ Hassman/ Kinney/ Das/ Hoerner_brett/ Rotondo/ Morrison/ Condo/ Murphy/ Laine/ Wu/ Lucas/ Winstead
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Schreibe einen Kommentar