| Home | Computer | Programmiersprachen | Site Map |
Programmiersprachen gibt es wie Sand am Meer. Für jeden Zweck gibt es eine Programmiersprache, sei es numerische Simulationen auf Großrechnern (FORTRAN), Buchhaltung und Bankgeschäfte (COBOL), Künstliche Intelligenz (PROLOG, LISP) oder Mathematische Operationen (APL / J).
Dieser Artikel soll ein Ratgeber für Einsteiger sein, daher habe ich mich auf die vier Programmiersprachen beschränkt, die am verbreitetsten sind: BASIC, Pascal, C/C++, Java. Natürlich gibt es noch viele andere Sprachen, aber die Beschränkung hat ihren Grund: Zum einen benötigt man als Einsteiger doch ein paar Bücher um erst mal mit der Sprache vertraut zu werden. Programmieren ist nicht wie Quake Spielen, es gehört Wissen dazu, das man sich am besten auch schriftlich zu Gemüte führt um es am Computer dann umzusetzen. Für eine nicht so verbreitete Programmiersprache wie PL/1, FORTH, Algol oder Smalltalk wird es aber schwierig ein Buch zu finden.
Zum anderen gibt es für die obigen 4 Programmiersprachen gute Compiler und Tools von Herstellern, die einem auch das Erstellen der Programme und Debuggen vereinfachen. Teilweise gibt es solche Programme auch als Freeware mit geringerem Komfort. Zum Schluss gibt es nicht eine Programmiersprache sondern viele Dialekte. Das will heißen, das es einen festgelegten Standard gibt und um diesen Standard herum Erweiterungen von einem Hersteller. Das ist zwar für die Übertragung nicht so toll, aber dafür kann man oft Dinge einfacher machen, zahlreiche Bücher gehen auf diese Spezialitäten ein und bieten angepasste Bücher für die Sprache × vom Hersteller y.
Eine Zeitlang war es so, das man für jeden Zweck eine eigene Programmiersprache erfunden hat, gerade daher gibt es heute so viele. Ja es gibt richtige Abstammungsbäume. So stammt Modula von Pascal ab, welches wiederum von Algol abstammt. Später begann man eine Sprache zu standardisieren um in regelmäßigen Abstanden die Sprache an die Entwicklung anzupassen, so z.B. bei C oder FORTRAN. Heute ist es oft so, das ein Hersteller eine neue Erweiterung implementiert und andere schnell nachziehen.
Drei wichtige Entwicklungen aber gibt es bei allen modernen Programmiersprachen :
Diese Art zu Programmieren erlaubt es nur bedingt Code in verschiedene Programme zu übernehmen, denn die Daten können sich ja ändern. Ein Sortieralgorithmus ist z.B. zwar immer gleich, aber der Vergleich von Daten (Integerwerte , Fliesskomma oder Zeichenketten muss jedes Mal anders geschrieben werden.) Objektorientiertes Programmieren verschmilzt Daten und Code. Für die Daten gibt es Routinen um sie zu bearbeiten und diese sind mit den Daten verbunden. Neue Daten können hinzugenommen werden und Routinen angepasst werden. Die Übertragung von Programmen ist dadurch viel einfacher. Seit Mitte der achtziger Jahre gibt es diese Art zu Programmieren, im PC Sektor zuerst eingesetzt von Turbo Pascal, inzwischen aber auch übernommen von BASIC. Bei C ist es eine neue Programmiersprache namens C++ daraus geworden. Wenn heute Programmiersprachen neu erscheinen wie C#, PHP, Javascript... dann sind diese in der Regel objektorientiert.
Klassische Programme wie z.B. unter DOS haben immer die Kontrolle über das was gemacht wird. Der Benutzer bekommt ein Menü präsentiert, nach Auswahl muss er warten und das Programm rechnet... Anders Windows Programme (allgemein: Programme für grafische Oberflächen). Hier muss das Programm auf den Benutzer reagieren, muss Vorsorge treffen, das ein Programmteil den nächsten nicht blockiert. Das Programm reagiert auf ein Ereignis, das der Benutzer auslöst und das eine Botschaft an das Programm schickt. Das ganze lässt sich mit klassischen Programmiersprachen machen, besser aber objektorientiert, denn hier zahlt sich die Kapselung von Code und Daten aus. Das Hauptproblem ist eher das Umdenken im Kopf, wenn man 10 Jahre lang befehlsorientiert programmiert hat.
Wer unter DOS einmal versucht hat eine grafische Benutzerführung zu machen, erkennt das darin eine Menge Arbeit steckt. Bei Windows ist es noch mehr. Visuelles Programmieren nimmt einem die Arbeit für die Erstellung der Oberfläche weitgehend ab, man erstellt ein Fenster, platziert Standardelemente wie Eingabefelder, Listen oder Radiobuttons über Drag & Drop und muss nur noch die Eigenschaften dafür angeben. Was man nach wie vor machen muss ist den Code zu schreiben, der ausgeführt wird, wenn der Benutzer ein Feld anklickt. Visuelles Programmieren ist heute der Standard. Als erstes zeigte dies Visual BASIC, bald darauf Delphi und heute auch schon C/C++ und Java. Es gibt allerdings noch populäre Windows Compiler wie Visual Studio, die nur teilweise visuell sind: Man kann grafisch Elemente platzieren, muss aber alle Eigenschaften im Code festlegen.
Basic ist eine Sprache die gedacht war als Einsteigersprache um einem Anfänger möglichst schnell zu Ergebnissen kommen zu lassen und ihn dann an "ernsthafte" Sprachen heranzuführen. (Bei BASIC wohl FORTRAN, denn die Ähnlichkeiten in der Sprache sind unübersehbar). In BASIC kann man wild drauflos programmieren, muss nichts deklarieren und konnte früher das Programm anhalten, Variablen untersuchen, neue Werte festlegen und dann weiter laufen lassen. Das alles ist ideal für einen Anfänger. Allerdings war dieses BASIC, das fast jeder Heimcomputer der achtziger Jahre fest eingebaut hatte nicht dazu gedacht größere Programme zu erstellen. Diese wurden schnell unübersichtlich, da BASIC nur mit Zeilennummern arbeitete. Es gab keine Prozeduren und Übergabeparameter. Nach einigen Tagen wusste selbst der Programmierer nicht mehr was gerade in Zeile 110 gemacht wurde, wenn er auf ein GOTO 110 stieß. Änderungen am Programm führten zu wilden Sprüngen im Programm und das Ergebnis war der so genannte "Spaghetti Code".
Ab Mitte der achtziger Jahre kamen jedoch auch Versionen von BASIC auf den Markt die Anleihen an Pascal machten und Prozeduren und Funktionen mit Namen einführten, so Power BASIC für den PC und GFA BASIC für den Atari. Inzwischen ist BASIC auch Visuell geworden. Die Bedeutung die es in den achtziger Jahren hatte, ging aber verloren. BASIC ist heute eine Programmiersprache, von der nur eine Firma, nämlich Microsoft noch einen modernen Compiler anbietet. Schuld daran war, das mit BASIC der Sprung vom Hobby Programmierer zum Profi nicht möglich war. BASIC war eine Interpretersprache, d.h. Das Programm wurde erst beim Aufruf übersetzt und zwar in einen Zwischencode. Wenn ein Programm in einer Schleife 100 mal dasselbe tut, so wird das Programm 100 mal übersetzt. Das macht BASIC langsam. Früher musste man den Code weitergeben, später erstellte man ein EXE File mit dem Zwischencode, das eine Runtime Bibliothek noch brauchte. Heute gibt es von Microsoft auch Compiler für BASIC (Borland schaffte dies schon Mitte er achtziger Jahre). Aber im Vergleich zu anderen Programmiersprachen, sind auch diese langsam.
Nun man kann auch heute noch mit BASIC schnell einsteigen. Für größere Programme aber muss man strukturiert programmieren. Man hat nicht umsonst Anleihen bei Pascal gemacht. Pascal bietet aber erheblich mehr Möglichkeiten, die BASIC nicht hat, weshalb es sicher für die Dauer die bessere Wahl ist. BASIC ist aber auch aus einem anderen Grund wichtig: BASIC ist heute versteckt als Makrosprache in vielen Office Paketen und unter Windows zu finden. Aus diesem Grund sind BASIC Kenntnisse manchmal nicht von Nachteil. Viele Firmen setzen Microsoft Produkte für die Entwicklung ein. Hier findet man die paradoxe Situation, das Kernroutinen mit Microsoft C++ erstellt werden und die Oberfläche mit Visual BASIC. Dies beruht darauf, das Visual BASIC etwas "visueller" als C++ ist und man so schneller zu der Oberfläche kommt.
Auch Pascal begann als eine akademische Sprache, diesmal allerdings als Lehrsprache um Studenten das logische und strukturierte Programmieren beizubringen. Pascal Programme sind daher sehr gut lesbar und in der Regel auch sehr übersichtlich. Der Einstieg ist bei Pascal deutlich schwieriger, denn man muss jede verwendete Variable zuerst deklarieren, auch sonst gibt es etwas mehr am Anfang zu lernen als bei BASIC. Dafür wird man bei Pascal mit Möglichkeiten belohnt, die andere Programmiersprachen nicht haben, wie Aufzählungs- und Mengentypen. Was ist z.B. besser zu verstehen: "Karte[2,6]" oder "Karte[Kreuz,Dame]"?
Das Pascal jedoch auch heute eine wichtige Sprache ist und viele in dieser Sprache entwickeln (so auch der Autor) hat einen einzigen Grund: Borland. Diese Firma brachte 1982 einen Pascal Compiler für CP/M und DOS namens Turbo Pascal auf den Markt, der Maßstäbe setzte - schnell im Übersetzen, schnelle ausführbare Programme, bequemes Erstellen im integrierten Editor - Dieser Compiler setzte sich schnell durch. Was wohl aus Pascal geworden wäre, wenn von Anfang an ein solcher Compiler zur Verfügung gestanden hätte ?
Borland führt Pascal unter der Bezeichnung Delphi nun objektorientiert weiter. Obwohl
hinsichtlich Leistungsfähigkeit Visual BASIC weit überlegen und in Punkto Erlernen C++ überlegen,
spielt Delphi heute nicht die Rolle die ihr gebührt. Zwar setzen viele Entwickler zuhause es ein,
aber weniger die größeren Softwarefirmen. Ein Grund war sicher das man bei der Vorstellung von
Delphi einen so großen Wert auf die Datenbankfähigkeiten gelegt hatte, das man eher das Gefühl
hatte das es sich mehr um einen Datenbank Frontend, als um eine universelle Programmiersprache
handelt. Ein riesiger Vorteil von Delphi sind die inzwischen in Massen verfügbaren Komponenten,
das sind Bausteine die man in Programme einbinden kann und dadurch Funktionen hat die Delphi
nicht mitbringt. So sind die E-Mail Funktionen für Senden, Empfangen und Mailboxen in meinem
Programm SmartMail z.B. Freeware Komponenten aus dem Internet.
Dadurch kann man sich die Arbeit enorm erleichtern.
Da Borland seit Mitte der achtziger Jahre der einzige Hersteller von Pascal Entwicklungstools ist, ist heute Borland Pascal nicht mehr mit dem ursprünglichen Sprachstandard zu vergleichen. Borland konnte in sein Pascal die besten Eigenschaften anderer Programmiersprachen integrieren wie die Modularität von Modula, Elemente von C wie Prozedurzeiger und typenlose Zeiger, die objektorientierte Programmierung und zahlreiche kleine Dinge die das Leben leichter machen. Diese Chance hatte C als wesentlich verbreitete Sprache nicht, und so stellt ein Pascal Programmierer beim Wechsel auf C fest, das vieles fehlt was es in Pascal gibt. Die früheren Vorteile von C - große Freiheiten - hat man inzwischen auch in Pascal. Nur erkauft man sich diese in C mit einem sehr laxen Compiler, der viele Fehler durchgehen lässt. Delphi ist in vielen Dingen einfacher als Java oder C++. Manches ist einfach geschickter gelöst. Nicht umsonst hat Microsoft in seiner neuen Sprache C# einiges von Delphi übernommen.
Delphi ist inzwischen eine Sprache die es auf vielen Plattformen gibt. Delphi 7 erzeugt auch Code für Linux und ".NET". Daneben gibt es noch mindestens 2 freie Pascal Implementierungen die wie das frühere Turbo-Pascal für Konsolenanwendungen ausgelegt sind: VPascal und Free Pascal Das letztere schlägt zumindest beim Sprachkern sogar noch Delphi.
C ist mit dem Betriebssystem Unix verknüpft, das in dieser Programmiersprache geschrieben ist. Bei freien Unix Systemen wie Linux wird auch ein C Compiler und die Quellen mitgeliefert. So kann jeder Eingriffe ins System machen und dies ist auch der Grund warum C sich so durchsetzte: Mann musste C lernen um in UNIX zu programmieren und Unix wurde mit C verschenkt. C ist eine Programmiersprache die sehr hardwarenah arbeitet. Früher hieß es, dass C dadurch sehr schnell ist, dies gilt heute nicht mehr. Vieles was bei C dem Programmierer aufgebürdet wurde leistet heute ein Compiler hinter den Kulissen. In C kann man Dinge machen die in anderen Programmiersprachen einige Tricks erfordern, dadurch ist C aber auch nicht sehr fehlertolerant. Die vielen Operatoren und kurze Schreibweise machen C Programme zudem nicht sehr lesbar.
C ist eine vom ursprünglichen Sprachumfang sehr kleine und rudimentäre Sprache, der Kern ist sehr klein und wird ergänzt durch Funktionen die in eigenen Bibliotheken sitzen. Für den Einsteiger von Nachteil ist das C Compiler ziemlich viel Unsinn durchgehen lassen weil C nur wenige Einschränkungen kennt. Während man bei anderen Sprachen sicher sein kann, das ein compiliertes Programm syntaktisch korrekt ist, wenn auch logische Fehler noch da sind kann man sich bei C dessen nicht sicher sein. Vor allem dies ist für einen Anfänger von großem Nachteil.
Die rudimentären Wurzeln von C drücken sich auch in Dingen aus die man in anderen Sprachen nicht unbedingt beachten muss, z.B. das so C Typische "Casten", d.h. Umwandeln von Daten in andere kompatible Datentypen z.B. eine Integer Variable in eine Fliesskomma Variable. Woanders geht dies automatisch. Ebenfalls nicht selbstverständlich bei C ist, das der Compiler den richtigen Datentyp wählt. Dieser muss als Präfix bei Konstanten angegeben werden, sonst können Berechnungen falsch sein. Der größte Nachteil für den Anfänger ist aber das der Pointer der in anderen Sprachen nur für dynamische Speicherzuweisung benötigt wird in 3 Funktionen vorkommt : Als Adresse eines Arrays (Dieser Datentyp fehlt im Prinzip), Als Ersatz für die fehlende Schnittstelle zur Übergabe von Variablen und eben als echter Pointer.
Trotzdem ist C heute die Programmiersprache in der die meisten Anwendungsprogramme entstehen, Betriebssysteme entwickelt werden etc. Gute C Compiler gibt es nicht nur wie bei BASIC von einer Firma, sondern von vielen Anbietern. Das C so verbreitet ist hat einen Grund: Sowohl Windows wie auch Unix (Linux) sind in C geschrieben. Dies bedeutet alle Systemaufrufe sind auf C Datentypen abgestimmt. Jede andere Programmiersprache muss diese erst kapseln. So erscheint C als die natürliche Sprache für Programme. Ich frage mich nur warum ich mit Delphi nicht die schönen die Blue Screens hinbekomme die ich von in C/C++ programmierten Anwendungsprogrammen kenne....
Auch C ist inzwischen objektorientiert und visuell, die Weiterentwicklung läuft nun unter der Bezeichnung C++, was in C soviel heißt wie "C um eins erhöht". Oftmals wird ein kombinierter C/C++ Compiler angeboten. C++ kann als Subset C Code ausführen. In Wirklichkeit handelt es sich jedoch um eine mächtige neue Programmiersprache bei der man zum einen die Mängel von C hinsichtlich Sicherheit (Pointer, Casts) beseitigt hat und zum anderen einen objektorientierten Ansatz hat. C++ ist von den Sprachmöglichkeiten die umfangreichste hier vorgestellte Sprache. Dadurch ist sie aber auch nicht so schnell anzueignen.
C++ entstand ab 1982 aus C zuerst als Klassenerweiterung. C++ führte neben den Objekten auch weitere Spracherweiterungen ein, wie die Fehlerbehandlung oder die Möglichkeit sich selbst Operatoren zu definieren. Man kann in C++ sehr gut die Tücken von C umschiffen und kommt weitgehend ohne den fehlerträchtigen Präprozessor aus. Der größte Nachteil von C++ ist das es so komplex ist. Es gibt einfach zu viele Möglichkeiten, zu viele Variationen eines Themas. Während es in Delphi z.B. zum Thema Konstruktor (Initialisierung von Objekten) nur zu lernen gibt das dieser das Schlüsselwort construktor bekommt und man den Vorgänger mit inherited aufruft gibt es in C++ bei der FH wo ich studiere, eine ganze Reihe von Vorlesungsstunden nur zu diesem Thema, den verschiedenen Arten und den möglichen Parametern mit denen ich sie füttere.
C++ ist heute in der Anwendungsentwicklung von allen hier vorgestellten Sprachen die
wichtigste und hat C verdrängt auf die Gebiete der hardwarenahen Programmierung. Dies liegt auch
an der sehr guten und umfangreichen Bibliothek, die schon Lösungen für viele Probleme bietet.
Durch den recht großen Sprachumfang ist C++ sicher am schwierigsten zu lernen. Dafür ist die
Auswahl an Compilern sehr groß. Nicht nur für Windows, für nahezu jedes Betriebssystem gibt es
C++ Compiler.
Neben der Komplexizität gibt es eigentlich nur einen Nachteil bei C++: Die C Komptabilität. Dies
wird vor allem deutlich wenn ein Hersteller wie Microsoft bei der Programmierung auf Basis der
MFC ein Gemisch von C und C++ einsetzt. Wenn man sich von diesem Ballast wie in Java getrennt
hätte wäre sicher viel gewonnen worden, aber wahrscheinlich wäre C++ heute weit aus weniger
bedeutend, denn dadurch konnte man die vielen C-Programmierer mit ins Boot nehmen.
Ein Vorteil von C war anfangs, das es standardisiert war und maschinenspezifische Dinge weitgehend außen vor blieben. Dadurch sollte es eigentlich möglich sein ein C Programm auf jedem Rechner laufen zu lassen. Doch in der Praxis haben verschiedene Betriebssysteme unterschiedliche Eigenschaften. DOS verwendet z.B. nur 8 Zeichen für den Dateinamen und den Backslash als Trennzeichen und UNIX den Slash. Spätestens seit es grafische Oberflächen gibt ist es aus mit der Übertragbarkeit. Denn Windows hat andere Routinen als X-Windows oder Mac OS.
Mit Java ging Sun als Hardwarehersteller einen anderen Weg. Anstatt die Sprache jeweils der Maschine anzupassen, entwickelte man eine Sprache für eine virtuelle - nicht existente Maschine. Daraus erzeugt der Java Compiler einen maschinen unabhängigen Code, der dann von einem Interpreter jeweils maschinenspezifisch ausgeführt wird. Dieser Interpreter - Die Java Virtual Maschine - ist nun ihrem Betriebssystem angepasst und wird auf dem PC installiert. Wie der Name sagt ist es praktisch ein Emulator eines "Java PC's".
Der Vorteil ist nun, das ein Javaprogramm prinzipiell auf jedem Rechner läuft, ja man sogar den Zwischencode nur einmal erstellen muss. Auf dem Rechner muss nur ein Interpreter installiert sein, der Java ausführt. Das zeigen auch die Hersteller von Entwicklungsumgebungen: Diese sind selbst in Java programmiert und laufen so auf verschiedenen Betriebssystemen. Von allen hier vorgestellten Programmiersprachen ist Java die am meisten objektorientierte Während es in den anderen Sprachen noch möglich ist prozedural zu programmieren, so ist dies bei Java nicht mehr möglich. Wie Delphi gibt es auch Komponenten in Java, sie heißen hier Java Beans.
Damit war Java die Sprache für das Internet. Egal ob man mit einem Macintosh, einem Windows oder UNIX Rechner ein Java Programm abruft oder einer AS/400 oder einer Sun Workstation, es sollte immer laufen. Weiterhin gilt Java als sehr sicher. Java Programme kann man so konfigurieren, das sie keinen Zugriff auf das Dateisystem des Rechner haben, auf dem Sie laufen. Man kann also nicht diesen über das Internet manipulieren. Dies ist ein wesentlicher Unterschied zu "ActiveX", eigentlich nur eine besondere Form von Windows.dll Dateien. Diese können alles was man auch sonst so mit einer EXE Datei machen kann: Dateien löschen, Format Aufrufen, Viren hinterlegen...
Java ist als einzige Programmiersprache auch heute noch eine Interpretersprache. Das bedeutet in der Praxis, das Java zirka 10-20 mal langsamer als C oder Delphi ist. Alle Versuche bisher ein Officepaket in Java zu schreiben sind an dieser Schwelle gescheitert. Java ist wichtig wenn man über das Internet Benutzer an den eigenen Rechner anbinden möchte, z.B. um Online Bestellungen abzugeben oder Abfragen zu erlauben, für die private Erstellung eines "Stand Alone Programms" ist es derzeit viel zu langsam. Von der Syntax her lehnt sich Java stark an C++ an, ist jedoch nicht so fehleranfällig wie C, weil viele Dinge die in C gehen in Java verboten sind. Es gibt auch die Möglichkeit Java in echten Maschinencode zu übersetzen, jedoch ist dann die Plattformunabhängigkeit nicht mehr gegeben,
Trotzdem wird seit Jahren daran gearbeitet Java schneller zu machen. Dies wird derzeit an zwei Fronten versucht. Zum einen versucht man Java in Silizium zu gießen, d.h. einen Mikroprozessor zu bauen, der JAVA spricht wie heute Assembler, damit wären die Befehle erheblich schneller ausführbar. Ein solcher Prozessor wäre dann ideal für Computer die nur mit dem Internet funktionieren wie Set-Top Boxen, Net-Computer. Bedenkt man, wie viele Personen zwar einen Fernseher haben, aber keinen Computer, so kann man sich denken wie bedeutend ein solcher Prozessor wäre, denn man könnte so einen festplattenlosen Computer sehr preiswert realisieren und der potentielle Markt wäre enorm.
Der zweite Weg ist der eines "Just-in-Time" Compilers. Dies ist ein Compiler der auf dem Rechner den Zwischencode in echten Maschinencode umwandelt und diesen dann sehr schnell ausführt. Bei diesem ist man sehr weit, allerdings muss es einen solchen Compiler natürlich auch für jede Maschine geben auf der Java läuft, und das dürfte für seltenere Plattformen eher unwahrscheinlich sein. Derzeit läuft interpretierter Java Code zirka 10-20 mal langsamer als C-Code, d.h. ein Java Programm macht aus ihrem neuen 2.2 GHz Rechner einen 7 Jahre alten Pentium-120!
Jeder der auf eine Programmiersprache schwört wird seine für die beste halten. Wenn man sich nun aber mal davon löst und überlegt, was für einen Einsteiger wichtig ist so sind dies sicher folgende Punkte:
Fasst man alles drei zusammen, so ist meiner Meinung nach Delphi (Pascal) die beste Wahl. Allerdings muss man zugeben, das der Hauptnachteil von Microsoft BASIC bis jetzt nur die miserable Geschwindigkeit des Compilers ist, auf die man als Anfänger mit kleineren Programmen vielleicht hinwegsehen kann. BASIC Kenntnisse sind von Nutzen auch bei der Programmierung im Office Bereich und bei Windows Scripting Host. Allerdings würde ich das nicht überbewerten, da jedes Office Paket ein eigenes BASIC hat und die Dialekte selten eine Version ohne entscheidende Änderungen überstehen. Schlussendlich ist BASIC durch die Pascal Anleihen dieser Sprache so ähnlich geworden, das jeder der in Pascal programmiert ohne größere Probleme ein BASIC Programm verstehen kann.
Wenn Sie sich mit den Gedanken tragen später als Programmierer zu arbeiten so sind für Sie zuerst C/C++ am wichtigsten, dann folgt Java und Delphi.
Ich selbst kann mich mit C und C++ überhaupt nicht anfreunden. Das liegt daran, das diese Sprache in Benutzerfreundlichkeit hinter allem zurückstecken muss was ich seit 1986 von Pascal gewohnt bin. Es gibt dort wirklich keinen echten Syntaxcheck. Es ist erlaubt den größten Unsinn hinzuschreiben und das geht glatt durch. Wenn Sie z.B. schreiben if (a=b) return a; else return b; dann haben sie keinen Vergleich sondern eine Zuweisung gemacht, kein Compiler meckert hier. In Delphi kann ich erheblich schneller programmieren, und es macht Spaß, dagegen habe ich bei C/C++ immer das Gefühl das ich durch ein Minenfeld laufe. Nicht umsonst hat man in Java einen Großteil der C/C++ Schwächen ersatzlos abgeschafft. Ich kann C/C++ daher nur jemanden empfehlen der weiß das er später mit Programmieren sein Geld verdienen will und über eine gehörige Portion Masochismus verfügt. (Oder wie mein Professor sagt "C und UNIX ist nichts für Warmduscher").
Nicht jeder programmiert gerne, schlussendlich gehört dazu viel Zeit, Geduld und Hartnäckigkeit. Daher mein Geheimtipp um mal schnell anzutesten ob man ein Programmierertyp ist: Python
Python ist eine interpretierte Sprache, die aber viel Ballast abgeworfen hat. Der Anfänger muss sich nicht mit Syntax abquälen, so verzichtet z.B. Python auf Block Markierer und kennzeichnet diese einfach durch Einrücken - genial einfach. Es gibt keine umständlichen Casts und man kann den Typ von Variablen wechseln, dabei ist Python geeignet zum Programmieren von grafischen Oberflächen, Web Anwendungen und objektorientiert.
Wer Linux als Betriebssystem nutzt, hat meistens auch Python mitinstalliert, diese ist eng mit dem Toolkit TCl/Tk verbunden, mit dem man grafische Oberflächen erstellt und dies wird bei vielen Distributionen standardmäßig installiert. Dann einfach mal auf der Kommandozeile
eintippen um den Interpreter zu starten. Windows Nutzer können Python frei herunterladen von www.python.org. Die Sprache ist Freeware und alle Programme die Sie erstellen sind an keine Lizenz (auch nicht die GNU ) gebunden. Der Name kommt übrigens von der Vorliebe des Erfinders für "Monty Pythons Flying Circus". But now to something completely different.
Klar ist, das jeder gerne mal antesten möchte. Beliebt sind daher Compiler die nichts kosten. Allerdings kommen auch hier Kosten auf einen zu, denn die Sprache muss man ja erlernen. Die Zeiten sind leider vorbei, wo es zum Compiler auch eine ausführliche Sprachbeschreibung gab. Ein Buch aus dem Buchhandel oder Handbücher vom Hersteller werden trotzdem noch nötig sein. Abgesehen von den unten stehenden Angeboten gibt es immer wieder Schnäppchen, wo man leicht veraltete Software relativ preiswert bekommt. Ein Anruf oder ein Besuch auf der Internetseite lohnt sich also vor einem Kauf. Für jemanden der einen Einstieg vor hat ist diese durchaus genauso gut wie der neueste Compiler. Bis sie nur mal die Grundlagen richtig gelernt haben, kommt sowieso die nächste Version raus.
Da Linux auf C basiert findet man dort bei einer Distribution einen C/C++ Compiler, es finden sich auch Tools wie Debugger oder ein Editor mit Syntax Highlighting. Das ist zwar nicht ganz so komfortabel wie alles in einem Paket, aber wesentlich besser als nur den Compiler zu haben. Für das Turbo C++ 3.1-4.5 von Borland gilt dasselbe wie für Turbo Pascal 1.5 für Windows - Es ist eine noch nicht visuelle Version, was einiges an Arbeit für Windows Anwendungen erforderlich macht. Lassen Sie davon die Finger, auch wenn es günstig angeboten wird.
Auch von C gibt es von Borland unter der Adresse http://community.borland.com eine Alte Version von Turbo C: 1.0 bzw. 2.01 zum Download. Der C++ reine Compiler (ohne IDE) in der relativ neuen Version 5.5 ist nun ebenso Freeware und unter derselben Adresse zum Download verfügbar. Daher auch hier ein Image von Turbo C 2.01 auf meinem Server. Eine anderer guter C++ Compiler ist die Adaption des GCC für Windows von Delorie. Anders als die Adaptation von Cygnus ist es mit einer IDE.
Java gibt es kostenlos von Sun - allerdings auch hier nur den nackten Compiler. Das JDK liegt zahlreichen Heft CD's bei oder auch bei Linux. Zusätzlich gibt es im Netz inzwischen komplette Entwicklungspakete, die allerdings lang sind - Das von Borland umfasst z.B. 72 MB. Von Sun Forte Community Edition von IBM die Entry Version des Visual Age und von Borland den JBuilder Standard 5.0. Gemeinsam ist allerdings allen der Umfang von einigen zig MB, und das man sich registrieren muss. Zudem ist Java was die Hardwareanforderungen anbetrifft nicht gerade anspruchslos. Für Forte sollte es z.B. ein 550 MHz Rechner mit 256 MB RAM sein. Der Download des JBuilder dauerte beim Autor 4,5 Stunden.
Gerade beim Einstieg ist es nicht unbedingt notwendig die neueste Version zu haben. Sie fangen ja gerade erst an zu programmieren. Achten Sie nur darauf das ein gewisser Komfort gegeben ist. So macht Programmieren unter Windows keinen Spaß, wenn man nicht visuell arbeiten kann. Unter DOS ist das Wurst, denn dort sind die Befehle für die Ausgabe auf den Bildschirm einfach gegenüber Windows. Oft verbessern sich Programme lange auch nur evolutionär und machen dann wieder einen Sprung. So war der Fortschritt von Delphi 1.0 auf 2.0 groß (Von 16 auf 32 Bit mit vielen neuen Möglichkeiten von Windows 95), danach aber eine eher geringe Veränderung im Sprachumfang. Wenn Sie also einen Bekannten haben der gerade eine neue Version kauft, so ist es nicht schlecht die alte zu einem kleinen Preis zu übernehmen.
Borland - davon bezieht der Autor z.B. seine Programmiersprachen, macht 1-2 mal im Jahr (meistens im Juni / vor Weihnachten) eine Schnäppchen Aktion. Dann gibt es alte Software aber auch Handbücher fast geschenkt. Im Juni 2001 z.B. den CBuilder 4 und Delphi 4 für 39/49 DM. Vor allem aber auch viele Handbücher. Borland Produkte waren bis zirka 1995 noch üppig mit Handbüchern ausgestattet. Danach musste man extra löhnen. Wozu alte Handbücher kaufen ? Nun weil sie auch gute Einführungen in die Programmiersprache und Nachschlagewerke für die Bibliotheksfunktionen sind. Für 157 DM hat sich so der Autor 2001 einen guten Regalmeter beschafft, darunter Bücher über Java, C, C++, Assembler, die Windows API, SQL. Ca. Die Hälfte davon ist unabhängig von dem Compiler nutzbar und Entwicklungssysteme für Pascal und C++ waren auch noch drin... Bei Borlands CBuilder und Delphi ist man übrigens mit einer Version vor 5 besser beraten: Der Hersteller hat in den nachfolgenden Versionen sukzessive die Komponentenbibliothek der Standard Version verkleinert. Die gesamten Datenbank Komponenten gibt es ab Version 5 nur noch in der Professional Version. Diese ist aber mittlerweile sehr teuer geworden.
Wenn Sie einen anderen Hersteller bevorzugen so wäre es nicht dumm auf seiner Website nachzusehen ob dieser auch dies bietet oder sich in einen Newsletter einzutragen.
Wer schon einmal angefangen hat ein einer Programmiersprache zu programmieren, der wechselt nur ungern. Bei mir war es zuerst BASIC, dann Assembler (für alles wozu BASIC zu langsam oder nicht geeignet war) und dann bin ich zu Turbo Pascal gekommen. Die Art der strukturierten Programmierung, die lesbaren Programme und die Vorteile die gerade in dem integrierten Konzept von Turbo Pascal lagen, haben mich bei dieser Sprache gehalten. Für einen Anfänger gilt dies noch nicht, sie sind offen für jede Sprache und sollten wenn es geht auch mehrere ausprobieren bis sie die gefunden haben die ihrem persönlichen Stil entspricht.
Auch wenn es nicht schick ist und ihre ersten Programme recht
altbacken aussehen: Steigen Sie unter DOS ein. Warum?
Nun im Prinzip müssen sie bei einer Programmiersprache sich zwei Dinge aneignen: Erstens die
Syntax der Sprache, ihre Eigenheiten, Möglichkeiten. Zweitens müssen sie von den Bibliotheken die
jede Sprache mitführt zumindest die kennen, mit denen Sie häufig arbeiten. Dazu gehört zumindest
die Eingabe und Ausgabe. Unter DOS sind das 5-10 Befehle, vielleicht 20-25 wenn man noch Grafik
dazu nimmt. Bei Windows haben Sie eine API mit mehreren Hundert Funktionen und Strukturen. Wenn
sie visuell programmieren sieht es zuerst einfacher aus (und ist es auch), nur müssen sie sich
nun die Eigenschaften und Methoden von 80-200 Komponenten aneignen oder bei C++ sich die 2000
Funktionen des Windows API einverleiben....
Sie sollten aber zuerst die Sprache selbst lernen und nicht noch zusätzlich gefrustet werden, dafür, das Sie 10 Zeilen Code eintippen nur damit ein Button erscheint. Dafür ist DOS besser geeignet. Zumal man alte DOS Compiler meist mit dicken Handbüchern heute für einen Appel und ein Ei bekommt.
|
Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen. Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht. Mehr über das Buch auf dieser eigenen Seite. |
"1969 hatte AT&T gerade die Arbeit am GE/Honeywell/AT&T-Multics-Projekt
beendet. Brian und ich
experimentierten zu dem Zeitpunkt mit einer frühen Pascal-Version von Professor Niklaus Wirth
vom
ETH-Laboratorium in der Schweiz und waren beeindruckt von seiner Einfachheit und Mächtigkeit.
Dennis hatte
gerade 'Der Herr der Klinge' gelesen, eine spöttische Parodie auf Tolkiens große Triologie 'Der
Herr der Ringe'.
Im Übermut beschlossen wir, Parodien zur Multics-Umgebung und zu Pascal zu
verfassen. Dennis und ich waren
für die Betriebssystemumgebung verantwortlich. Wir sahen uns Multics an und entwarfen ein neues
System,
das so komplex und kryptisch wie möglich sein sollte, um die Frustration der gelegentlichen
Nutzer zu maximieren.
Wir nannten es Unix in Anspielung auf Multics und fanden es auch nicht gewagter als andere
Verballhornungen.
Danach entwickelten Dennis und Brian eine wirklich perverse Pascal-Version namens 'A'. Als wir
bemerkten, dass
einige Leute tatsächlich versuchen, in A zu programmieren, fügten wir schnell einige zusätzliche
Fallstricke hinzu
und nannten es B, BCPL und schließlich C. Wir hörten damit auf, als wir eine saubere Übersetzung
der folgenden
Konstruktion erhielten:
for(;P("\n"),R--;P("!"))for((e=C;e--;P("_"+(*u++/8)%2))P(" | "+(*u/4)%2);
Der Gedanke, dass moderne Programmierer eine Sprache benutzen würden, die solch
eine Anweisung zuließ, lag
jenseits unseres Vorstellungsvermögens. Wir dachten allerdings daran, alles den Sowjets zu
verkaufen, um ihren
Computerfortschritt 20 Jahre und mehr zu behindern. Unsere Überraschung war groß, als dann
AT&T und andere
US-Unternehmen tatsächlich begannen, Unix und C zu verwenden! Sie haben 20 weitere Jahre
gebraucht,
genügend Erfahrungen zu sammeln um einige bedeutungslose Programme in C zu entwickeln, und das
mit einer
Parodie auf die Technik der 60er Jahre! Dennoch sind wir beeindruckt von der Hartnäckigkeit
(falls nicht doch
Gemeinsinn) des gewöhnlichen Unix- und C-Anwenders. Jedenfalls haben Brian, Dennis und ich in den
letzten
Jahren nur in Pascal auf einem Apple Macintosh programmiert, und wir fühlen uns echt schuldig an
dem Chaos,
der Verwirrung und dem wirklich schlechten Programmierstil, der von unserem verrückten Einfall
vor so langer
Zeit ausging."
Namhafte Unix- und C-Anbieter und Benutzer, einschließlich AT&T, Microsoft,
Hewlett-Packard, GTE, NCR und DEC
haben vorläufig jede Stellungnahme abgelehnt. Borland International [...] meinte, sie hätten
diesen Verdacht schon seit
Jahren gehegt und würden nun dazu übergehen, ihre Pascal-Produkte zu verbessern, und weitere
Bemühungen um die
C-Entwicklung stoppen. Ein IBM-Sprecher brach in unkontrolliertes Gelächter aus.
(Quelle: Bernhard L. Hayes, NetNews-Gruppe)
| Sitemap | Kontakt | Neues | Bücher vom Autor | Buchempfehlungen |
|