Software-Entwicklung unter Linux und die BASIC-Verschwörung
Wer sich noch an DOS-Zeiten erinnert, der hat vielleicht selbst gelegentlich in BASIC oder Pascal das eine oder andere Programm geschrieben. Microsoft fügte seinem Betriebssystem sogar ein eigenes BASIC, QBASIC, bei. BASIC unterscheidet sich von Sprachen wie C und Java im Wesentlichen durch zwei Dinge: durch eine einfache Syntax und dadurch, dass prinzipielle Funktionen bereits in der Sprache selbst enthalten sind. Man muss sich nicht um das Erlernen von Bibliotheken oder APIs kümmern, sondern lediglich einen grundlegenden Befehlssatz kennen. Damit sind dann relativ leicht lesbare Programme wie 'IF NAME="OTTO" THEN PRINT "HALLO OTTOLI"' möglich. In C wäre das: 'if(strcmp(name,"OTTO")==0) printf("HALLO OTTOLI\n");', wobei vorher noch mit '#include
BASIC ist unter professionellen Entwicklern verpönt, wobei sicherlich viel Elitismus eine Rolle spielt, aber auch die Tatsache, dass BASIC einige Sprachelemente einsetzt bzw. anbietet, die Programme ab einer gewissen Größe nicht mehr wartbar machen. Die Syntax ist weiterhin so weit von der von C & Co. entfernt, dass ein Umlernen gewisse Schwierigkeiten mit sich bringt. Und natürlich ist die Performance von BASIC der einer systemnahen Sprache wie C deutlich unterlegen. Tatsache ist jedoch, dass durch BASIC und ähnliche Einsteigersprachen (die teils, wie die Datenbank-Sprache Clipper, spezialisierter waren und teils, wie Pascal, schneller und komplizierter waren) es Nichtinformatikern ermöglicht wurde, akute Probleme mit relativ geringem Aufwand zu lösen. So konnten z.B. Astronomie-Fans ihre eigene Sternenhimmel-Simulation schreiben, oder Physiklehrer kleine Lernprogramme für den Unterricht. Während diese Hobby-Entwickler oft nicht über C-Kenntnisse verfügten, hatten sie Wissen, was auf der anderen Seite die meisten Profi-Programmierer nicht hatten, und konnten dieses Wissen so in sinnvolle Anwendungen umsetzen.
Eine mächtige Einsteiger-Programmiersprache sollte deshalb Bestandteil jedes Betriebssystems sein. Microsoft bietet für Windows kostenlos jedoch nicht viel mehr an als eine komplizierte, aber weitgehend nutzlose Skriptsrache namens VBScript, mit der sich Dateien verschieben und E-Mail-Viren programmieren lassen. Das kommerzielle Visual Basic gilt als kompliziert und langsam zugleich und ist ein wirres Gemisch aus Microsoft-Eigenentwicklungen und BASIC-Überbleibseln, das sich noch dazu mit jeder neuen Version verändert.
Visual Basic ist dafür ideal zum Zusammenbauen von Komponenten, die andere liefern. Das betrifft z.B. die Erstellung grafischer Oberflächen. So können Firmen mit geringem Aufwand eine Demo-Oberfläche für ihre Programme gestalten, mit der sich dann bei Präsentationen nichtexistente Funktionalität vortäuschen lässt. Es betrifft aber auch verschiedene Teilprogramme, die oft nur kommerziell angeboten werden -- da gibt es die Texteditor-Komponente, die Sound-Komponente oder die Bild-Darstellungskomponente usw. Man ziehe die entsprechenden "Controls" im Oberflächen-Designer an die richtige Stelle, und schon hat das Programm die entsprechende Funktionalität. Das ist sehr praktisch, hat mit Programmieren aber nichts zu tun. Und es hat die Konsequenz, dass die resultierenden Programme, wenn überhaupt, meist nicht im Quellcode weitergegeben werden können. Visual Basic ist auch gut geeignet für die Erstellung bestimmter Geschäftsanwendungen, vor allem solcher, die mit Datenbanken und Formularen zu tun haben.
Ein guter Maßstab für die Universalität einer Einsteiger-Programmierpsrache ist die Zahl und Qualität der in ihr programmierten Spiele. Denn Spiele erfordern hohe Performance und bestimmte Elementarfunktionen, lassen sich aber kaum aus Fertigkomponenten zusammenbasteln. Schaut man sich aber im Web nach Visual-Basic-Spielen um, sieht es recht düster aus. In der Visual Basic Game Programming Guide von about.com kann man z.B. mit viel Aufwand lernen, Klassiker wie Tic Tac Toe oder Lunar Lander nachzuprogrammieren. Entnervt gibt der Hobbyist auf, der etwas Anspruchsvolleres schreiben möchte.
In den alten DOS-BASIC-Dialekten war das noch anders - die Syntax war simpel und die Performance ausreichend -, aber auch dort war die Funktionalität von BASIC oft stark eingeschränkt. So waren die meisten BASICs von Haus aus nicht in der Lage, SVGA-Grafik auszugeben, was sie für aufwendigere Spiele weitgehend unbrauchbar machte. Weiterhin gab es Speicherbeschränkungen und fehlerhafte Funktionsbibliotheken, auch und vor allem beim Marktführer Microsoft.
Wenn man sich an die Microsoft-Memos aus dem Antitrust-Verfahren erinnert, fällt auf, dass Microsoft gegen Netscape und Java vor allem aus Angst um die Windows-Plattform vorgegangen ist. Neben einem Interesse an dem Erhalt des OS-Monopols möchte MS aber natürlich auch die bestehende Marktaufteilung im allgemeinen Software-Markt erhalten. Zu gute Entwicklerwerkzeuge wären hier nur fehl am Platz, sie würden es Amateuren erlauben, mit Corel, Adobe & Co. zumindest in Nischen zu konkurrieren. Statt dessen muss Software-Entwicklung so kompliziert sein, dass sie nur mit kommerzieller Hilfe oder Motivation möglich ist.
Ob zu DOS-Zeiten die entsprechenden Werkzeuge bewusst sabotiert wurden, ist schwer zu sagen -- man darf nicht DR-DOS vergessen, das von Microsoft laut Aussagen von Hersteller Caldera in Verbindung mit Windows absichtlich unbrauchbar gemacht wurde. "Wir sollten dem Nutzer die Option geben, nach der Warnung [Windows auf DR-DOS auszuführen] fortzufahren, jedoch sicher nach einer gewissen Zeit einen Absturz verursachen", zitiert Caldera eine MS-interne Email von Windows-Entwicklungschef David Cole. Bei BASIC hätte man die wenigen Hersteller sicherlich leicht dazu bringen können, für semiprofessionelle Zwecke unbrauchbare Versionen zu verteilen. Allerdings war die DOS-Architektur so bizarr, dass das vielleicht gar nicht nötig war. Genügend Motivationen, die freie Entwickler-Szene zu sabotieren, hatte und hat Microsoft jedenfalls sicher. Und der Wegfall einer freien Entwicklungsumgebung im Lieferumfang von Windows spricht Bände.
Immerhin gibt es mit Borland Delphi seit einiger Zeit einen Pascal-Nachfolger auch für die Entwicklung von grafischen Applikationen unter Windows (ein eindrucksvolles Beispiel ist das Spiel Civ: Evolution). Und der Delphi-Nachfolger Kylix erzeugt sogar Windows- und Linux-Applikationen aus dem gleichen Quellcode. Unter Linux ist das Angebot an Programmiersprachen ohnehin gigantisch: BASIC, Pascal und andere Klassiker sind ebenso vorhanden wie die modernen Skriptsprachen Python, Perl, PHP, Pike, Rebol und Ruby. Python lässt sich dank der Pygame-Bibliothek in Verbindung mit SDL einsetzen, so dass auch Spieleprogrammierung relativ leicht möglich wird. Grafische Applikationen lassen sich dank wxPython und Anygui plattformunabhängig erstellen. Von ihrem Schöpfer Guido von Rossum wird Python als die ideale Programmiersprache für Anfänger gesehen, und vielleicht ist sie das auch: In den letzten Jahren hat die Skriptsprache einen Siegeszug auf Servern und Desktops angetreten.
Daneben gibt es natürlich die C/C++- und Java-Compiler und Entwicklungswerkzeuge. Dazu gehören integrierte Entwicklungsumgebungen, die das Editieren und Verwalten von Klassen, Eigenschaften und Methoden vereinfachen. Unter KDE mausert sich z.B. KDevelop zunehmend als Konkurrenz für Microsofts teures "Visual Studio". Von theKompany gibt es mit BlackAdder für Skript-Sprachen und KDE Studio für C/C++ gleich zwei kommerzielle Entwicklungsumgebungen. Trolltech liefert den freien Qt-Designer für die Gestaltung von Oberflächen, das entsprechende Gegenstück für GNOME ist Glade. Beide Programme machen die Erstellung professioneller Programmdialoge sehr einfach.
Die Skript-Sprache REBOL zeigt allerdings, dass es noch einfacher geht: Sie erinnert an den BASIC-Ansatz, einen möglichst großen Befehlssatz bereitzustellen. So kann man z.B. mit dem Befehl "send bla@bla.com read http://www.heise.de" den Inhalt einer Web-Site per Email verschicken, oder mit 'view layout [button 'Quit "q" [quit]]' ein Formular samt Ende-Button erzeugen. REBOL ist jedoch proprietär und findet deshalb in der Entwickler-Gemeinde wenig Anklang - hier besteht immer die Gefahr, dass die Sprache obsolet wird, wenn die Firma Konkurs anmeldet, oder dass für die Weitergabe kostenloser Programme zu bezahlen ist. Es ist jedoch abzusehen, dass Linux mittelfristig auch Hobbyisten die einfache Entwicklung von ansehnlichen Anwendungen erlauben wird, während man davon ausgehen muss, dass Microsoft solche Trends mit allen Mitteln zu verhindern sucht (gerade eine einheitliche Runtime für mehrere Sprachen, wie von .NET vorgesehen, würde dazu den notwendigen Hebel liefern).
Linux geht fremd: Emulatoren und Übersetzer
"Have a lot of fun"? - Spiele unter Linux
Software-Entwicklung unter Linux und die BASIC-Verschwörung
http://www.heise.de/tp/artikel/11/11208/1.html- ach was (9.6.2007 13:51)
- Zwischenablage (4.3.2002 13:21)
- SAP DB (4.2.2002 16:35)
Darstellungsbreite ändern
Da bei großen Monitoren im Fullscreen-Modus die Zeilen teils unleserlich lang werden, können Sie hier die Breite auf das Minimum zurücksetzen. Die einmal gewählte Einstellung wird durch ein Cookie fortgesetzt, sofern Sie dieses akzeptieren.
