Moin!
Hier können wir gemeinsam Informationen und Links zu den jeweiligen Programmiersprachen sammeln und ihre Vor- und Nachteile diskutieren. Ich erweitere die Liste anhand der Informationen in den entstehenden Beiträgen. Ich habe erstmal zum Testen zwei unfertige Einträge gemacht. Eventuell brauche ich ein paar Vorschläge, was alles rein soll und wie es strukturiert werden soll (wie schalte ich den wysiwyg-Editor aus?).
Verbreitete Programmiersprachen in der Webentwicklung:
C#
C++
C++ ist eine Erweiterung der Programmiersprache C und findet hauptsächlich Anwendung in der Systemprogrammierung, Embedded Systems, Anwendungsentwicklung und Spieleentwicklung.
imperativ, strukturiert, objektorientiert, generisch; Typisierung: statisch, explizit, schwach
Java
Perl
PHP
PHP (www.php.net) ist eine Skriptsprache mit einer an C angelehnten Syntax. PHP wird serverseitig z.B. als Apache-Modul oder als CGI-Modul eingebunden. PHP unterstützt objektorientiertes Programmieren, eine breite Auswahl an Datenbankanbindungen und Bibliotheken für z.B. das Erstellen von Bilddateien. PHP zeichnet sich durch leichte Erlernbarkeit und einer breiten Unterstützung durch Webhostern aus.
Typisierung: dynamisch, implizit, schwach
Python
Python ist eine Allzweckskriptsprache, die von Guido van Rossum als Nachfolger der Lehrsprache ABC, an der er selbst mitgearbeitet hatte, gedacht ist, jedoch für den produktiveinsatz entworfen wurde (Ursprünglich als "Standardsprache" eines Betriebssystems). Als Besonderheit von Python haben "Whitespaces" wie Leerzeichen, Zeilenumbrüche und Tabulatoren eine weit größere syntaktische Bedeutung als in den meisten anderen Sprachen (und ersetzen z.B. das Semikolon, geschweifte Klammern oder Schlüsselworte wie "Begin" und "End"), was den Programmierer zwingt seinen Code lesbarer und einheitlicher zu gestalten. Von kleinen Skripts über Webanwendungen bis hin zu riesigen verteilten Programmen wird Python in sehr vielen Bereichen verwendet. Die Typisierung und der fehlende Zwang zur Verwendung von OOP-Elementen, wie er in einigen anderen Sprachen vorliegt, erlaubt einfache Skripts auch sehr kurz auszudrücken, die Unterstützung von Aspektorientierter und Objektorientierter Programmierung, sowie die gute Modularisierung und saubere Syntax sind eine große Hilfe beim Entwickeln großer Projekte.
Typisierung: dynamisch, implizit, stark
Webframeworks:
Zope/Plone: http://www.zope.de/ueber-zope
Django: http://www.djangoproject.com/
Hello World:
print ("Hello world")
Ruby
Ist eine Programmiersprache mit Fokus auf Produktivität und Lesbarkeit.
Mit einer an Perl und Modula angelehnten Syntax, reiner Objektorientierung wie bei Smalltalk und vielseitigen Möglichkeiten zur Metaprogrammierung ist Ruby eine Sprache mit steigender Bedeutung in der Webentwicklung.
Imperativ, funktional, strukturiert, objektorientiert, nebenläufig, interpretiert, generisch; Typisierung: dynamisch, implizit, stark
Webframeworks:
Ramaze: http://ramaze.net/home#other-frameworks (NB: rails saugt ;)
VB.Net
Exoten in der Webentwicklung:
Ada
Ada ist eine "Wirthsche" Programmiersprache. Sie war der Sieger eines Projekts des US-Verteidigungsministerium um eine einheitliche Programmiersprache für militärische Anwendungen zu finden. Anwendung findet sie hauptsächlich in sicherheitskritischen, verteilten Systemen, wie in der Luft-/Raumfahrt, Rüstungsindustrie, Kernkraft und Medizin.
imperativ, strukturiert, objektorientiert, generisch, nebenläufig; Typisierung: statisch, explizit, stark
Tutorials:
Lovelace Tutorial von David A. Wheeler (englisch): http://www.adahome.com/Tutorials/Lovelace/master.htm
Wikibooks (englisch): http://en.wikibooks.org/wiki/Ada_Programming
Ada Reference Manual (englisch): http://www.adahome.com/rm95/
Webframeworks:
AdaCGI: Einfache Bibliothek die beim Erstellen dynamischer Webseiten hilft: http://www.dwheeler.com/adacgi/
Ada Web Server: Umfangreiches Web Development Framework mit eingebettetem Webserver: https://libre.adacore.com/aws/main.html
Hello World:
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello_World is
begin
Put ("Hello World!");
end Hello_World;