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#, Ruby, 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.
Mit dem Web kamen neue Programmiersprachen auf. Während klassische Programmiersprachen entweder interpretiert werden (in Programm übersetzt, jede Zeile wenn sie ausgeführt wird) oder compiliert (es wird ein Programm in dem Maschinencode des Prozessors erzeugt, das dann nur auf diesem Prozessor lauffähig ist) können diese Sprachen mit Anwendern interagieren, die die Webseite abrufen, aber nicht am lokalen Computer sitzen. Dabei werden oft HTML-Seiten mit Code dieser Sprachen vermischt. Sprachen, die sich so durchgesetzt haben sind Javascript, das nur im Browser ausgeführt wird, sowie PHP und Ruby, die auf dem Server, also dem Rechner der die Seiten ausliefert, ausgeführt wird. Besonders PHP hat sich breit durchgesetzt und spezialisierte PHP Programmierer hervorgebracht. Es bildet inzwischen das Fundament zahlreicher Web-Anwendungen, wie Blogsoftware (Wordpress) oder Content Management Systeme (Typo3). Ruby ist eine Sonderform, da es eigentlich eine "normale" Programmiersprache ist, mit Ruby on the Rails aber auch eine Variante existiert, die für das Web ausgelegt ist.
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. Eine Übersicht meiner Pascal Programme finden sie auf der Download Seite.
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.
Mittlerweile hat sich Lazarus (Gegenstück zu Delphi) und FreePascal (Gegenstück zu Turbo Pascal, d.h. beschränkt auf Konsolenanwendungen) als eine gute Alternative zu Delphi eingebürgert. Die Software ist kostenlos und sie ist plattformunabhängig. Das nutzte der Autor z.B. aus um auf dem PC eine Anwendung für die abfrage von Wettersensoren zu schreiben. Die Anwendung wurde mit den Sensoren am USB Port auf dem PC getestet und dann auf dem Raspberry Pi, einem kleinen und preiswerten Computer erneut kompiliert, der dann über zwei Jahre lang Wetterdaten sammelte (dann versagten die Sensoren, der Raspberry, funktionierte immer noch ...). Hier die Aufzeichnungen die gemacht wurden. Alle HTML Seiten hat der Rasperry aus den Daten erstellt und selbstständig auf den Webserver hochgeladen. Delphi selbst ist leider über die Jahre immer teurer geworden.
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 constructor 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.
Ein paar Hintergrundinformationen zu Newslettern:
Sie haben sich vielleicht schon einmal gefragt, wie es möglich ist, dass ein großes
Versandhaus in seinen Newslettern Sie mit Ihrem Namen anschreiben kann, denn es
wird gewiss niemand vor einem Computer sitzen und jeden einzelnen Kunden individuell
anschreiben. Hier kommt eine Newslettersoftware
zum Einsatz. Die Informationen, die Sie bei einer Anmeldung zu einem Newsletter
oder bei der Erstellung eines Kundenkontos eingegeben haben, werden in einer Datenbank
gespeichert. In der Software wird eine einzelne Vorlage erstellt und mit Platzhaltern
versehen. Anstelle der Platzhalter werden dann die Informationen aus der Datenbank
wie beispielsweise Ihr Vor- und Nachname eingefügt. Je nach Leistungsfähigkeit der
Software und dem Datenbestand der Datenbank ist es so auch möglich nahezu individualisierte
EMails an Kunden zu verschicken, wenn die
Kaufaktivitäten aus dem Kundenkonto mit einfließen. Dann kann auch eine Email
verschickt werden mit passenden Artikeln, zu denen die Sie als Letztes gekauft haben.
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.
Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.
Mehr über das Buch auf dieser eigenen Seite.
Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.
"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 | Impressum / Datenschutz | Neues | Hier werben / advertisment here | Buchshop | Bücher vom Autor |