Donnerstag, 15. Mai 2008BorlandDies ist ein kleiner Nachruf. Mein erster Computer war ein 286er, da gab es nicht viel mehr als Assembler und die DOS-Stapelverarbeitung. Assembler war mir noch deutlich zu schwer, also beschränkte ich mich darauf, kleine Startscripte zu entwerfen, mit denen man genau so viel "konventionellen Speicher" zusammen bekommt, dass ein bestimmtes Spiel startet. Klassisch hatten Computer genau 640kb RAM. Programme, die vom Betriebssystem geladen wurden, belegten Teile dieses Speichers. Auch Maus- und Soundkartentreiber brauchten konventionellen Speicher, so dass Spiele oft nicht genug davon vorfanden, um überhaupt zu starten. In Erinnerung bliebt mir in der Hinsicht das Spiel "Aces over Europe", das so viel konventionellen Speicher benötigte, dass selbst ein hochgefahrener Computer ohne irgendwelche geladene Treiber den Start verweigerte. Ich weiß bis heute nicht, wie man 620k lower RAM realisieren soll. Insbesondere benötigten die meisten, neueren Spiele auch noch "erweiterten" Speicher. Das ist Speicher, der außerhalb der 640k adressiert werden kann, und dieser konnte entweder "XMS" oder "EMS" Speicher sein. Der Treiber, der diesen erweiterten Speicher nutzen kann, benötigte natürlich nochmal locker 40k konventionellen Speicher, was die Sache nur erschwerte. Aber das wollte ich gar nicht erzählen, ich schweife ab. Mein Vater ist "Nachrichtentechniker", also so eine Art Vorläufer des Informatikers. Er hat mir als erstes BASIC gezeigt, das war dann meine erste echte Programmiersprache. Später kam dann QBASIC, was vor allem die revolutionäre Neuerung besaß, dass man keine Zeilennummern mehr angeben musste, um den Programmfluss zu steuern. Die Dokumentation war immer noch in der IDE versteckt und leider auf Englisch, was in dem Alter nur mithilfe eines Wörterbuchs zumindest halbwegs zu erschließen war. Zu dem Zeitpunkt hatte ich die architektonischen Feinheiten eines Computers alles andere als durchschaut. Als mir mein Vater irgendwann "Turbo Pascal 5" schenkte, war ich vor allem verwirrt. Ich las die Dokumentation und verwirrte mich nur noch mehr. Was sollte z.B. ein Compiler oder ein Coprozessor sein? QBASIC war ein Interpreter, die Programme wurden als Text gespeichert und als solches ausgeführt. Wieso würde irgend jemand den ganzen Quatsch in eine andere, viel kompliziertere Sprache umwandeln wollen? Es dauerte zugegebenermaßen eine ganze Weile, bis ich den konzeptionellen Unterschied zwischen BASIC und Pascal begriff. Aber danach war es um mich geschehen. Externe Libraries, Maschinencode, prozedurale Programmierung, Rückgabewerte und Typisierung. Fantastisch. Schöne neue Welt. Jahrelang programmierte ich in Pascal sinnloses Zeug vor mich hin. Der Höhepunkt war so eine Art Hütchenspiel mit Intrografik und Highscoresystem. Nichts spektakuläres, aber ich war trotzdem stolz, den DOS-Text-Modus überwunden zu haben. Ohne wirklich zu begreifen, was ein Compiler genau tut, wechselte ich irgendwann kurz zu C, bekam irgendwas von einem gewissen C++ mit, dann bekam ich irgendwoher ein Buch über die allererste Version von Java. Zu dem Zeitpunkt habe ich Java vor allem mit Java-Applets identifiziert. Entsprechend war mir damals nicht ganz klar, warum Java die "action" Methode automatisch aufruft, woher wüsste das Programm, welche Methode die Programmlogik beinhaltet? Verwirrend. Nachdem ich zumindest konzeptionell begriffen hatte, was Middleware ist und dass Applets nicht identisch mit dem Begriff "Java" sind, wurde ich skeptisch. Ein Programm, dass ein Programm in eine fremde Sprache übersetzt? Und diese Sprache wird dann von einem wiederum anderen Programm in so etwas wie Assembler übersetzt und ausgeführt? Ich wandte mich wieder C++ zu. C++ war verwirrender als alles andere. Header-Files? Klassen? Die hatte ich bei Java relativ erfolgreich umschifft und benutzte sie maximal als bessere Structs (was viele heute noch machen). Aber gut, ich war bereit mich weiter zu entwickeln und habe die Grenzen der prozeduralen Arbeitsweise durchaus kennen gelernt. Sofort suchte ich nach IDE-Alternativen und fand vor allem Visual C++ von Microsoft und das gute alte Borland, diesmal mit dem "C++ Builder 5". Beides bot eine Art Wrapper über die unsägliche W32-API (was ich damals natürlich nie so bezeichnet hätte). Visual C++ hatte da die MFC zu bieten, Boland konnte mit VCL aufwarten. "Gut zu wissen", dachte ich schulterzuckend und schaute mir die IDEs selber an. Wo so oft schaffte es Microsoft nicht, mich vom Hocker zu hauen. Die IDE war okay, aber dann erblickte ich die API, die ich eigentlich gerade möglichst vermeiden wollte: "int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)". Yuck. Also Borland. Version 5 besorgt, installiert, gestartet. Hmm, Schaltflächen, die man einfach auf ein Formular zieht? Ein grüner Pfeil, mit dem man das Programm starten kann? Ohne auch nur einmal eine Zeile Code gesehen zu haben? Sold! Dabei konnte es natürlich nicht bleiben, ich beschäftigte mich mit der VCL, lernte die Libraries fast auswendig, erweiterte Widgets dass es eine Freude war. Endlich hatte ich meine programmiertechnische Heimat gefunden, die mir die nervigen Low-Level-Sachen abnahm, aber den Programmierer dabei nicht einschränkt. Viele schöne Borland-Jahre sollten folgen. Irgendwann hatte ich genug von Windows und wechselte zu Linux. Das ist wieder ein anderes Thema, aber Borland war ab da natürlich raus. Heute sind Makefiles (möglichst ohne autotools) meine Freunde und mit Low-Level habe ich mich auch angefreundet. Aber was ist aus Borland geworden? Nun ja, Microsoft dominierte den Markt mal wieder mit seiner verschissenen Monopolstellung. Borland benannte sich um, und wieder zurück, ließ Innovationen aber vermissen. Technisch gesehen zog Microsoft nach und verdrängte den einstigen Konkurrenten endgültig. Letzte Woche hat Borland seine IDE-Sparte endgültig verkauft. Und auch wenn das vielleicht ein wenig affig klingt: Mich macht das schon ein bischen traurig.
Geschrieben von Turing
in Geek-Zeug
Kommentare (2) Trackbacks (0) Artikel mit ähnlichen Themen:
I should cut back on my python Wozu ein Kater alles gut sein kann Das Würfelspiel |
KategorienFeedsGetaggte Artikelööh.. informatik?
algorithmus china determinismus entscheidbarkeitstheorie fehlerwahrscheinlichkeit fernsehen filme formale sprachen games geek-zeug informatik komplexitã¤t komplexitã¤tsklasse laufzeit linux medien millenium-probleme monty hall nichtdeterminismus nicht eingã¤ngig nintendo ds np o-notation p poker p vs. np randomisierung rffc RP sco sonstiges sonstiges mathematisches spieltheorie statik technische mechanik tm turing turing-maschine universelle turingmaschinen utm videospiele wachstum wahrscheinlichkeit xkcd zpp SonstigesBlogrollSuche |
Powered by s9y - Design by Lordcoffee
#1 - Claudia 16.05.2008 14:59 - (Antwort)
Hast du schon im Kindergarten mit dem Programmieren angefangen? 8086 waren zu dem Beginn meiner Studienzeit aktuell und das ist schon eine ganze Weile her.
#1.1 - Turing 16.05.2008 15:40 - (Antwort)
Uups, da meinte ich natürlich einen 80286 (auch 286er genannt), werde ich gleich korrigieren. Und richtig programmiert habe ich darauf auch nicht, das war mehr auf dem Niveau von:
10 CLS
20 INPUT A
30 PRINT A
Auf dem nächsten Computer den wir bekommen haben, einen astreinen 386, wurde es dann aber schon etwas ernsthafter und anspruchsvoller ;)