Was sind die gängisten Programmiersprachen?

...komplette Frage anzeigen

3 Antworten

Die Frage wie schwer/einfach eine Sprache zu lernen ist, lässt sich nicht so einfach beantworten, weil es nicht nur von der Sprache, sondern auch von den IDE's, Community's, Vorkenntnissen und Interessen abhängt.

Java ist zum beispiel relativ unlogisch aufgebaut, aber dank der perfekten IDE's und Dokumentation schreiben sich da die Programme wie von selbst (zumindest bis man RICHTIG viele Generics übereinander stapeln muss), außerdem gibt es für Java sehr dicke Bücher auf Deutsch, und zwar online und kostenlos, dazu sehr gut besuchte Foren.

Im vergleich dazu ist Scala wesentlich einfacher und logischer aufgebaut, aber es gibt nur Fachliteratur auf Englisch, und die IDE's machen das Leben eher schwerer als leichter. Außerdem haben manche Leute aus irgendwelchen Gründen Stress mit anderen Programmierparadigmen, und können nicht mal ihre gedanken funktional formulieren, geschweige denn implementieren. Daher würde ich solches "Gourmetzeugs" erstmal nicht empfehlen.

Bei C++ wirst du dir wahscheinlich öfters in den Fuß schießen, und es wird weh tun, aber die Mühe wäre es wert, obwohl du die Sprache wahrscheinlich nicht beruflich verwenden können wirst, weil's langsam aber sicher ausstirbt.

Was ich als Kleinkind sehr lustig fand, war es, kleine Spielchen mit Action-Script zu implementieren: einfach weil man mit Flash sehr einfach lustiges buntes Zeugs auf den Bildschirm zaubern kann. Das Ergebnis ist zwar zum Wegschmeißen, aber man lernt was dabei.

Wenn du dich eher für Web-Kram interessierst, na dann hol einen simplen text-editor raus, und fange an html+javascript+php+sql zu lernen. Es sind zwar alles keine besonders ästhetischen Sprachen, aber das ist in der Anfangsphase wohl nicht so wesentlich.

Wenn du mit IPod einschläfst und aufwachst, hättest du vielleicht einen Grund Objective-C anzusehen?

Also, als basis würde ich sowas wie C#/Java/C++ empfehlen, oder eben JS+PHP, aber ohne in Details abzutauchen. Wenn du dich ein wenig an den prozeduralen murks gewöhnt hast, schreibe paar tausend zeilen in Haskell und Prolog: einfach damit das Gehirn nicht von anfang an verrostet, sonst bleibt dir der Zugang zu den richtig mächtigen Multiparadigmensprachen verschlossen, und du mutierst zu einem dieser array-for-if-else-Programmierer.

Naja, googlen bringts, erster treffer: http://www.langpop.com/


Java: wird (zusammen mit einem unüberschaubaren haufen von frameworks) vor allem für große serverseitige Anwendungen verwendet, ab und zu auch für gewöhnliche Anwendungssoftware, sowie für die anfangs sehr populäre und meistens sehr nervige Applets; Man kann damit theoretisch auch Handys und Marsrover programmieren, aber so richtig durchgesetzt hat sich das nicht; Die sprache ist vergleichsweise mächtig, hat eine sehr umfangreiche bibliothek, aber wird inzwischen immer aufgeblähter und unübersichtlicher; Mutiert langsam zu einer Cobol-artigen Zombie-Sprache. Wenn man etwas von der tollen API abhaben will, sollte man Scala lernen.


C: ultimative prozedurale kalaschnikov-47 aus der vor-OOP-Ära. Ist aber nach wie vor stets sehr weit verbreitet und populär, vor allem in den Bereichen, wo es richtig schnell sein muss. Es gibt ein paar Dialekte davon, etwa um Grafikkarten zu steuern. So eine Art modernes Assembler, um möglichst direkt am Eisen zu programmieren. Die Grundzüge der Sprache sollte man kennen.


C++: Kalashnikov-74. Nicht-so-ganz-Obermenge von C, ziemlich mächtig, sehr schnell, populär, gibt einem alle Freiheiten (auch für beliebig bescheuerte Selbstverstümmelungen). Wird oft für Anwendungssoftware, Spiele, wissenschaftliche Programme oder Betriebssysteme verwendet. Was die OOP-Konzepte, garbage collection, funktionale/logische paradigmen angeht, wirkt es im vergleich zu manchen modernen Sprachen etwas antiquiert. Wenn man etwas ähnliches, aber moderneres haben will, sollte man C# lernen.


PHP: unlogisch aufgebauter, furchtbar hässlicher frankenstein monster, aber in den neunzigern so extrem populär geworden, dass es überall verwendet wird, und nicht mehr wegzudenken ist. Wird ausschließlich für serverseitige Anwendungen verwendet. Wenn man in diesem Bereich arbeiten will, kommt man selten drumherum. Wenn man etwas weniger hässliches mit ähnlichen Einsatzgebiet lernen will, sollte man sich evtl. Ruby anschauen.


JavaScript: Extrem populärer vertreter von ECMAScript. Läuft in jedem Browser. Läuft auch interpretiert auf servern und sonstwo. Läuft überall. Die Sprache besticht vor allem durch extreme Einfachheit und ein leicht durchschaubares Konzept. Etwas primitive OOP-Konzepte, fehlende statische Typisierung und relative Lahmheit stören anscheinend niemanden. Hat sehr mächtige Konzerne im Rücken, von den es dauernd gepusht wird. Wird von manchen als "the next big Language" gehandelt. Es sind halt nicht immer die elegantesten Dinge, die am Ende gewinnen, manchmal sind es auch die einfachsten.


Python: modern, multiparadigmisch, sieht schick aus, keine statische typisierung, vergleichsweise lahm, aber dennoch populär unter Wissenschaftlern geworden: anscheinend haben manche die Fresse voll von Fortran und anderen lebenden Fossilien, und flüchten kreischend irgendwohin. Und Python hat halt Glück gehabt, und diese flüchtende Bevölkerung aufgefangen. Ich hab's mir ehrlich gesagt nicht angeguggt, obwohl ich Mathematiker bin.


C#: M4A1. Microsofts Wunderwaffe gegen alles. Stammt von C/C++ ab, befreit aber den Programmierer von der lästigen garbage collection, und ist in manchen anderen Punkten wesentlich moderner. Von den javajanern öfters als C++-basierte Java-Parodie belächelt, aber diese Sprache macht auch einiges richtiger: zum Beispiel die Generics ohne die verdammte Type-Erasure (Anfängern sagt es wahrscheinlich nichts, aber das ist imho einer der faktoren, der Java & Co auf Dauer das Genick brechen wird)


Perl: hab's mir nie wirklich angeschaut, irgendwas serverseitiges, noch wesentlich altertümlicher und furchtbarer als PHP. Da wird zwar immer noch weiterentwickelt, aber ich will gar nicht wissen, wie das aussieht. Lebendes Fossil halt.


SQL: das ist keine Programmiersprache, das ist eine sehr populäre Query Language, um mit Datenbanken zu arbeiten. Das gibt es in unzähligen inkompatiblen dialekten, das ganze ist nicht besonders schön, funktioniert aber ganz gut und tut meistens was es soll. Muss man können.


Ruby: eine vergleichsweise junge, leichte, simple multiparadigmische Sprache für Serveranwendungen. Hat anscheinend einige Programmierer aus der deprimierenden verstaubten Perl-PHP-Welt befreit, und einen gewissen Marktanteil erobert, aber so eine richtige Revolution ist es nicht geworden.


Visual Basic: ein künstlich am leben gehaltenes und immer wieder aufgehübschtes altertümliches Monstrum aus der Floppy-Disk-Ära. Finger weg von den Altlasten.


ActionScript: auch irgendeine ECMA-Script-ähnliche Sprache, wird bei diesem Adobe-Flash-Multimedia rumgedöns verwendet. Irgendwie kloppen sich viele seit Jahren darum, die tollsten RIA's zu ermöglichen, aber bisher kriege ich von den eigentlichen RIA's ehrlich gesagt nicht viel mit: bis auf ein paar dämliche Flash-Spielchen und Player fällt mir nichts ein.


Assembler: ultra-ultra-ultra-low, noch viel niedriger als das niedrigste C und Fortran zusammen. Noch tiefer geht nur noch mit Lötkolben. Als Grundlage von Allem absolut unabdingbar, aber im Alltag unbrauchbar. Vielleicht aus rein akademischer Sicht interessant, und nicht schlecht für den Fall, dass wir von einem Asteroiden in die Steinzeit zurückgebombt werden.


Objective C: C um OOP erweitert... Wird aus irgendeinem Grund von Apple gepusht: ich habe aber weder mit C noch mit Apple etwas am Hut, daher kann ich dazu nicht viel sagen.


Delphi: irgendwas, was lange vor unsrer Zeit gewesen ist. Wahrscheinlich genauso grässlich wie alle Versuche, OOP an irgendwas ursprünglich rein prozedurales dranzukleben...


Lisp: Urvater der funktionalen Programmiersprachen. Gibt es in zig milliarden inkompatiblen Dialekten. Aus akademischer Sicht recht interessant, in der ((Praxis ((ist) das) ein (unleserlicher)) Klammerhaufen). Man verwendet es nie, aber es soll einen zum besseren Programmierer machen.

Lua: irgendwas halbwegs modernes experimentelles, unpopuläres... Kenn ich nicht, sorry.


Haskell: auch schon etwas älter, aber echt lustig! Schöne funktionale Programmiersprache. Nicht so wirklich praktisch (keine rein funktionale Sprachen sind es imho), aber gut als Gehirnjogging.


Scheme: Dialekt von LISP. Esoterischer Klammerdschungel.


Fortran: während der kambrischen Explosion entstanden, rein prozedural, hässlich, hässlich und dazu sehr hässlich. Der ganze Code sieht wie ein gigantischer haufen aus arrays, for-schleifen und if-abfragen. Aber über jahre hat sich sehr viel Code für numerische Berechnungen angesammelt, und deshalb wird es bis heute für numerische Berechnungen verwendet.


ColdFusion: das ist ein ganzes system von Adobe für schnelle Herstellung von Webanwendungen. Passt imho nicht so ganz in die Liste.


Tcl: extrem simple skriptsprache, hat in dieser Liste imho ähnlich wenig verloren wie SQL, weil es gar nicht das Ziel hat, mit den anderen hier angegebenen Sprachen zu konkurrieren.


Ada: weiß nichts davon, bis auf einige Erwähnungen in Programmierbüchern über andere Sprachen bin ich dem Ding nie begegnet o_O?


Erlang: kenn ich nur als ein Vorbild für das "Erlang style message passing", welches von anderen Sprachen übernommen wurde. Zumindest dieses Konzept erscheint mir sehr sympathisch. Diese Sprache wird sogar relativ häufig eingesetzt, und alle diese anwendungen haben etwas mit Telekommunikation zu tun. Nebenbei erwähnt: die Syntax erinnert an Prolog, und Prolog ist eine Welt für sich, ein ebenso geniales, wie völlig unbrauchbares Kunstwerk, zur erweiterung des Horizontes unbedingt empfehlenswert.


D: hab's nicht persönlich angeguggt. Gelesen habe ich hauptsächlich Positives: es soll mächtig & elegant sein, ist aber nicht weit verbreitet. Der anwendungsbereich soll ähnlich wie bei C++ sein.


Scala: sehr modern, elegant, mächtig, multiparadigmisch, aber auch relativ unpopulär. Diese Sprache habe ich mir sehr genau angesehen: es ist in vielen Punkten den meisten existierenden Sprachen haushoch überlegen. Aber das ganze "Drumherum" kommt nicht so richtig in Schwung. Der Anwendungsbereich soll ähnlich wie bei Java sein (obwohl es sich imho auch exzellent für Mathematik eignet, wofür Java überhaupt nicht gut ist). Wenn die Entwickler ein paar ordentliche unterstützende Konzerne fänden, hätte die Sprache imho wirklich gute Chancen von Java, C++, Fortran, Python, PHP & Ruby erhebliche Marktanteile abzubeißen, andernfalls wird es wohl weiterhin trostloses Dasein auf der dreißigsten Stelle fristen, bis es wieder in Vergessenheit gerät.


COBOL: Urgestein. Wurde für die entwicklung von "betriebswirtschaftlicher software" entwickelt. Malbolge ist nach dem achten Kreis der Hölle benannt. COBOL ist ein Stockwerk weiter oben.


Smalltalk: wird in jedem Buch über Programmiersprachen erwähnt, jeder hat sich irgendwie davon inspirieren lassen, obwohl es sich nie so richtig durchgesetzt hat. Von der "Renaissance" von Smalltalk ist laut dieser Statistik auch nicht viel zu spüren, daher bleibt es vorerst, wie Prolog, Haskell, Scala, D, etwas für Gourmets.


Zu den restlichen drei will ich gar nichts sagen: hab mich damit nicht mehr befasst, auf dauer sieht's alles gleich aus.

Smalltalk: für allgemeine Anwendungen und Clients

Forth: für kleinere Hardware, z.B. Embedded Controller.

Assembler/Maschinensprache: für alles, was schnell laufen soll. Ist etwas aufwändiger.

Cobol: Webanwendungen und kommerzielle Software. Einfach zu lernen, und gutes Geld damit verdienen.

Was möchtest Du wissen?