Ziel der Softwareentwicklung ist die Erstellung einer robusten Anwendung unter Berücksichtigung von Anforderung und Wünschen des Kunden. Eine effektive Implementierung und einfach zu pflegender Quellcode bilden die Grundlage für die Wartbarkeit der Software.
Web-Applikationen sind - technologisch gesehen - klassische Client-Server-Anwendungen. Der Browser fungiert dabei als Client, die Gegenseite ist der Web-Server. Die Kommunikation läuft über HTTP oder HTTPS.
HTTP (Hyper Text Transfer Protocol) beschreibt, wie Anfragen und Antworten zwischen dem Client und dem Server „abgewickelt“ werden.
Den Gerüst einer Web-Applikation bildet i.d.R. Hyper Text Markup Language (HTML), wobei der Inhalt dynamisch generiert wird. Das erfolgt direkt über HTML oder indirekt über die Manipulation des Document Object Model (DOM).
Moderne Web-Anwendungen müssen ein breites Spektrum von Clients abdecken. Dazu gehören sowohl Desktop-Computer, als auch Tablets und Smartphones. Die Usability wird durch Technologien wie responsives Design (z.B. Bootstrap von Twitter) in Verbindung mit CSS und JavaScript-Bibliotheken (jQuery, AngularJS) erreicht.
PHP ist eine beliebte, objektorientierte Programmiersprache. Sie wird meistens verwendet, um Serverseitige Web-Applikationen zu programmieren, kann aber auch auf der Kommandozeile benutzt werden (CLI), oder sogar im Grafikmodus (z. B. mit der Bibliothek GTK+ / PHP-GTK). Die Ausgabe ist in der Regel HTML. PHP kann aber auch XML, Plain Text, JSON, PDF, XLS, DOC, CSV, JPEG und viele andere Formate generieren.
Die Installation von PHP mit dem Web-Server Apache und dem Datenbankserver MySQL auf einem Linux-Server wird als LAMP bezeichnet (Linux, Apache, MySQL, PHP). Dieselbe Installation, aber auf einem Windows-Server heißt WAMP (Windows, Apache, MySQL, PHP). Darüber hinaus kann PHP auf IIS (Windows), Nginx und anderen Webservern betrieben werden.
Die Benutzung von PHP-Frameworks kann die Entwicklung erheblich vereinfachen. Insbesondere die Verwendung des MVC-Musters (Model View Controller) dient der sauberen Strukturierung des Programms. Zu den beliebten PHP-Bibliotheken gehören z.B. Zend, Symfony oder Smarty.
Perl hat sich als Script-Sprache für Systemverwaltung, im Netzwerk-Bereich und besonders im WWW etabliert. Sie steht für viele Betriebssysteme und Webserver zur Verfügung.
Es handelt sich dabei um eine Interpretersprache. In der Administration ist Perl inzwischen ein oft benutztes Werkzeug. Im Bereich der WWW-Programmierung ist Perl durch sein Funktionsumfang (DBI, CGI, HTML::Template) ebenfalls sehr beliebt.
Die Sprache bietet Unterstützung für Betriebssystemaufrufe; in Verbindung mit Tk können sogar GUIs entwickelt werden. Es gibt mittlerweile eine große Anzahl von Bibliotheken, die als sogenannte Module bei Bedarf geladen werden können. Für alle wichtigen Datenbanken gibt es entsprechende Module.
CPAN ist eine Online-Bibliothek für Perl-Module. Sie beinhaltet mehrere Tausend Bibliotheken aus allen möglichen Bereichen und ermöglicht die einfache Einbindung in eigene Projekte.
Solr ist ein Suchserver, der die Lucene-Bibliothek als Backend benutzt und eine HTTP-Schnittstelle zur Verfügung stellt. Über die HTTP-Schnittstelle können Anfragen gestellt werden; Solr liefert die Ergebnisse je nach Bedarf als XML, JSON, PHPS (serialisiertes PHP-Objekt), CSV o.a.
Solr ist in Java implementiert, läuft meistens in einem JSP-Container (z.B. Tomcat) und fungiert dabei als eine Standalone-Suchmaschine.
Solr erweitert Lucene um eine Fülle von Datentypen. Über schema.xml werden die benötigten Typen definiert, sowie die benötigten Felder konfiguriert. Das genaue Verhalten wird über Analyzer, Tokenizer und Filter gesteuert.
Besonders interessant ist Solr wegen der vielen Funktionen, die „out of the box“ verfügbar sind: Rankinganpassung (Boosting ), Caching, Facetten, Suchvorschläge, Rechtschreibkorrektur, Replikation (Master/Slave), Hadoop-Unterstützung u.v.m.
Java ist eine objektorientierte, plattformunabhängige Programmiersprache mit einer C-ähnlichen Syntax. Sie ist eine typisierte Sprache und ermöglicht eine Typprüfung bereits bei der Entwicklung.
Die Einsatzgebiete von Java sind sehr vielfältig. Typische Einsatzszenarien sind z.B. Webanwendungen/ Web-Services, mobile Apps (Android), sowie J2EE im Geschäftsbereich.
Eine interessante Entwicklung ist das Google Web Toolkit (GWT). Mit GWT lassen sich Ajax-Anwendungen in Java programmieren. Das erfolgt indem Java nach JavaScript mit dem GWT-Compiler übersetzt wird. Für die GWT-Entwicklung existiert ein Eclipse-Plugin mit Unterstützung für Programmierung, Debugging, Logging usw.