Hi,

da viele Leute hier immer wieder nach der richtigen Programmiersprache suchen, habe ich beschlossen, hier ein kleines "Tutorial" zu schreiben.

1. Was habe ich zu erwarten?
Erwarte nie, dass du in einer Woche oder einem Monat eine Programmiersprache lernen kannst. Programmieren ist learning-by-doing, und das braucht eben Zeit. Je mehr Projekte du realisiert, desto erfahrener wirst du.
Erwarte außerdem nicht, dass eine Programmiersprache wie HTML ist. Manche Leute meinen, sie können heute sagen "Ach, ich schreib mir jetzt mal so ein Schreibprogramm wie Word. Dazu lern ich mal geschwind Programmieren." Programmiersprachen sind (eigentlich) nicht dazu da, um grafische Oberflächen zu erstellen. Oftmals brauchst du Zusatzkits, -pakete o. ä., um überhaupt ein grafisches Ergebnis auf dem Bildschirm sehen zu können.

2. Welche Voraussetzungen brauche ich?
Du brauchst eigentlich nichts besonderes bis auf ein Betriebssystem. Erfahrungsgemäß tut man sich mit dem Programmieren unter Linux leichter als unter Windows, da auf Linux schon häufig wichtige Packages usw. installiert sind, die man sonst oft unter Windows noch installieren muss.
Vorkenntnisse sind hilfreich. Ich empfehle immer, zuerst ins Webdesign einzusteigen. Wenn du PHP richtig kannst, ist der Sprung zu anderen Sprachen wie Perl oder Python wesentlich leichter als wenn du zum ersten Mal was von Variablen hörst. Andere haben gute Erfahrungen damit gemacht, gleich mit den schweren Sprachen wie C++ oder Assembler anzufangen.

3. Welche Programmiersprachen gibt es?
Schwer zu sagen. Eine ganze Menge. Ich möchte hier nur die wichtigsten vorstellen:

Assembler
Der Rechner, der das geschriebene Programm am Ende ausführen soll, versteht eigentlich nur Maschinencode, der bekanntermaßen aus den berühmten Einsen und Nullen besteht.
Da solcher Code aber von Menschen nur schwer gelesen werden kann, hat man Assembler erfunden. Assembler ersetzt die Einsen und Nullen durch kurze Befehle in englischer Sprache. Assembler ist auch heute noch wichtig für systemnahe Operationen.
Um jedoch effektiver und leichter programmieren zu können, wurden Hochsprachen entwickelt, die durch Methoden und Funktionen dem Programmierer helfen. Da jedoch der Rechner auch weiterhin nur Nullen und Einsen versteht, muss der Quellcode in Maschinensprache übersetzt werden, bevor er ausgeführt werden kann. Dies kann auf zwei unterschiedlichen Wegen passieren. Entweder durch einen Compiler oder durch eine Interpretersoftware.
Der Compiler übersetzt den fertigen Quellcode in Maschinensprache, der anschließend (theoretisch) überall benutzt werden kann.
Ein Interpreter ist eine Software, die den Sourcecode während der Laufzeit des Programms übersetzt. Es wird also keine ausführbare Datei erzeugt. Stattdessen muss immer ein Interpreter installiert sein, wenn man ein Script ausführen möchte.
Beide Methoden haben ihre Vor- und Nachteile. Compilersprachen sind meist schneller, während Interpretersprachen plattformübergreifend funktionieren.

Compilersprachen
  • C++
    C++ ist vermutlich die am weitesten verbreitete Programmiersprache.
    Vorteile:
    - einsetzbar für alle Projekte (auch Spiele)
    - Aufbau auf C (für unsere Nostalgie-Fans also einfacher zu lernen)
    - hohe Performance

    Nachteile:
    - kaum im Web einsetzbar
    - großer Aufwand für größere Projekte
  • Delphi Language
    Delphi ist eine Programmiersprache die auf (Turbo) Pascal beruht.
    Vorteile:
    - einfache Bedienbarkeit
    - schnelles Erstellen grafischer Oberflächen

    Nachteile:
    - in der Regel nur sinnvoll in Kombination mit der Entwicklungsumgebung "Delphi"
    - uneffizienter Compiler
    - keine 64-Bit-Unterstützung
    - keine Unterstützung von Linux/OSX (außer bei Verwendung einer Kylix)

Bytecode-Sprachen
  • Java
    Java ist - neben C++ - die Programmiersprache für größere Projekte (wobei Spiele eher nicht in Java programmiert werden).
    Vorteile:
    - sehr sichere Sprache
    - Applets
    - plattformunabhängig
    - weniger Programmieraufwand für größere Projekte als bei C++
    - wird gerne für größere Webapplikationen eingesetzt

    Nachteile:
    - geringere Performance als C++
    - Systemprogrammierung ist (stark) eingeschränkt

Interpretersprachen
  • Perl
    Perl ist eine der bekanntesten Programmiersprachen, die auch von vielen Programmierern gern genutzt wird.
    Vorteile:
    - frei
    - plattformunabhängig
    - PHP-ähnlich, daher leicht zu erlernen, wenn man bereits PHP beherrscht
    - mehrere Wege, um ein und dasselbe Ziel zu erreichen

    Nachteile:
    - wenn man nicht aufpasst, wird der Quellcode sehr unleserlich
    - eignet sich nicht für größere Projekte wie Spiele o. ä.
  • Python
    Python ist nicht so bekannt wie Perl. Dennoch ist Python äußerst leistungsstark.
    Vorteile:
    - frei
    - plattformunabhängig
    - eignet sich auch für größere Projekte oder Teile davon (Spiele ausgenommen)
    - Einrückungen werden als Mittel der Programmstruktur - im Gegensatz zu vielen anderen Sprachen - akzeptiert

    Nachteile:
    - keine Strichpunkte - wenn man das von anderen Sprachen so gewöhnt ist, tut man sich am Anfang hart (allerdings kann man sie auch setzen, sie sind also optional)


4. Infos zu C++
C++ ist eine mächtige Sprache. Wer mit ihr einsteigt, wird sich auch mit anderen Sprachen nicht mehr so schwer tun.
Tutorials:
Wenn ihr mit C++ Spiele programmieren wollt, empfehle ich das Buch "C++ für Spieleprogrammierer", ISBN 978-3446403321, 34,90 €.
Ansonsten empfehle ich "C++ von A bis Z. Das umfassende Handbuch", ISBN 978-3898428163, 39,90 €
Online gibt es hier ein gutes Tutorial.

Wie installiere ich C++?
Das erklärt euch euer Tutorial näher.

Wie kann ich mit C++ grafische Oberflächen erzeugen?
Das kann euch ebenfalls euer Tutorial erklären.

5. Infos zu Delphi Language
Delphi ist sehr gut zum Einstieg geeignet und wird aus diesem Grunde auch häufig an Schulen gelehrt.
Tutorials:
Auch für Anfänger geeignetes Tutorial
Weiterer Delphi-Kurs
Crashkurs Delphi

Wie installiere ich Delphi?
In der Regel benötigst du dazu die kommerzielle Entwicklungsumgebung "Delphi" von Borland. Als Alternativ bietet sich hier FreePascal mit der Entwicklungsumgebung Lazarus an, beides ist kostenlos.
Normalerweise musst du, wenn du Borland verwendest, nur die Entwicklungsumgebung installieren und starten.

Wie erzeuge ich mit Delphi grafische Oberflächen?
Das erklärt euch euer Tutorial näher, da dies ein Hauptaspekt Delphis und vieler Tutorials ist.

6. Infos zu Java
Java ist - wie C++ - eine mächtige und verbreitete Sprache.
Tutorials:
Ich empfehle hier lieber ein Buch, da Java sehr umfangreich ist: "Java ist auch eine Insel", ISBN 978-3-89842-838-5, 49,90 €. Dieses gibt es hier online zu lesen.
Ansonsten empfehle ich das interaktive Java Tutorial.

Wie installiere ich Java?
Ladet euch von dieser Seite Java SE herunter und installiert es (ich gehe hier nicht mehr so ausführlich auf Details ein, da ich annehme, dass ihr, wenn ihr Java lernt, bereits etwas erfahrener seid).

Wie kann ich mit Java grafische Oberflächen erzeugen?
Das wird in den entsprechenden Tutorials näher erklärt.

7. Infos zu Perl
Da viele mit Perl einsteigen, möchte ich hier ein paar Tutorials, Tipps und Tricks für Perl vorstellen.
Tutorials:
Sehr gutes Tutorial von Eike Grote
Offizielles Handbuch
Perl Tutorial der Uni Potsdam
Perl-Tutorial von SelfHTML (allerdings eher für den Webeinsatz von Perl gedacht)

Ich habe bewusst nicht mehr Tutorials zusammengesucht, da es sehr viele davon gibt, und diese eigentlich reichen sollte, da andere Tutorials auch ähnlich aufgebaut sind.

Wie installiere ich Perl?
Unter Windows:
ActivePerl von dieser Seite herunterladen und installieren. Standardmäßig wird ActivePerl in den Ordner C:\Perl installiert. Das könnt ihr ruhig so lassen.
Unter Linux:
Normalerweise ist Perl bei Linux schon installiert. Wenn nicht, kann man entweder auch wieder ActivePerl nehmen (aufpassen! wenn dann für Linux) oder man liest sich mal das hier durch.

Wie kann ich mit Perl grafische Oberflächen erzeugen?
Nun, dazu braucht man z. B. Perl/Tk. Perl/Tk ist die einfachste und die am häufigsten genutzte GUI für Perl (allerdings ist Perl/Tk auch ziemlich hässlich). Wenn ihr ActivePerl habt, könnt ihr ganz leicht sehen, ob Tk mit drauf ist:
Ruft den Perl Package Manager (sollte im Startmenü sein) auf. Dort werden euch alle Bestandteile eures ActivePerl-Paketes aufgelistet. Sucht dort nach einem Eintrag "Tk". Dahinter sollte eine Versionsnummer stehen. Sie sollte mit 0.8 beginnen.
Neben Perl/Tk existieren weitere GUIs für Perl, die ich noch kurz vorstellen werde:
  • Perl/Gtk (offizieller Name ist afaik Gtk2-Perl) ist eine grafische Erweiterung für Perl. Offizielle Homepage: http://gtk2-perl.sourceforge.net/
  • Perl/Qt ist eine grafische Erweiterung für Perl, die v. a. unter Linux verwendet wird (übrigens ist die Windows-Version von Qt afaik nicht kostenlos). Offizielle Website: mir ist keine bekannt
  • wxPerl ist eine grafische Erweiterung für Perl, die unter Windows imo am nativsten aussieht. Offizielle Website: http://wxperl.sourceforge.net/


8. Infos zu Python
Ebenfalls ein guter Einstieg ist Python.
Tutorials:
A Byte of Python - Deutsche Übersetzung
Python-Kurs von W. Spiegel
Die Python-Dokumentation

Wie installiere ich Python?
Unter Windows:
Die neueste Python-Version für Windows hier herunterladen und installieren.
Unter Linux
Normalerweise ist Python unter Linux schon installiert. Um das zu überprüfen, öffnet ihre eine Kommandozeilenumgebung und gebt ein:
Code:
python -V
Wenn ihr als Ausgabe
Code:
$ python -V
Python 2.3.4
oder etwas ähnliches erhaltet, ist Python schon installiert. Erhaltet ihr dagegen
Code:
$ python -V
bash: python: command not found
oder eine ähnliche Ausgabe, ist Python noch nicht installiert. Eine genauere Anleitung zum Installieren von Python unter Linux findet ihr hier.

Wie kann ich mit Python grafische Oberflächen erzeugen?
Wie bei Perl auch, braucht ihr in der Regel zusätzliche Kits oder Packages. Python/Tkinter entspricht - nicht nur von der Hässlichkeit her - Perl/Tk. Normalerweise wird Tkinter automatisch mit Python installiert.
Weitere GUIs für Python:
  • PyGTK ist eine grafische Erweiterung für Python und die Entsprechung zu Perl/Gtk. Offizielle Website: http://www.pygtk.org/
  • PyQt ist eine grafische Erweiterung für Python und die Entsprechung zu Perl/Qt. Offizielle Website: mir ist keine bekannt
  • wxPython ist eine grafische Erweiterung für Python, die - ähnlich wie wxPerl - unter Windows relativ nativ aussieht. Offizielle Website: http://wxpython.org/

Mehr Infos über diese GUIs gibt es hier.


Zu erwähnen bleibt noch: Für den Einstieg in die Spieleprogrammierung eignet sich Blitz Basic 3D. Als Alternative zu Delphi gibt es Free Pascal.

So. Nun solltet ihr einen groben Überblick über die Welt der Programmierung haben. Ich wünsche euch viel Spaß mit eurer neuen Programmiersprache.
Eventuell werde ich diese Einstiegsanleitung noch um einige Sprachen erweitern. Mal sehen.
Kritik ist erwünscht, aber bitte in diesen Thread.

Gruß

DHK