1

Interview mit Sebastian Steiner

© Thomas Antoni, März 2006




Vorwort von Thomas Antoni

Sebastian ist ein guter alter Bekannter von mir. Er leitet den sehr erfolgreichen Deutschen QBasic- Programmierwettbewerb, der in meine Seite QBasic.de eingebunden ist und für den ich die Buchpreise sponsere. Außerdem ist Sebastian einer der freundlichsten, eifrigsten und kompetentesten Ratgeber im Deutschen QBasic-Forum. Es gibt niemanden, der dort so viele Beiträge geschrieben hat wie Sebastian. Vom 10.09.2004 bis zum 28.2.2006 kam er auf die unglaubliche Anzahl von 2243 Beiträgen. Das sind 4...5 Beiträge pro Tag!! Besonders bei kniffligen Fragen packt Sebastian der Ehrgeiz, dem Ratsuchenden möglichst schnell eine Lösung zu präsentieren. Auf seiner Webseite www.sebastian-steiner.de bietet Sebastian viele nützliche Downloads und Tools für QB-Entwickler an.



Interview

Thomas: Sebastian, hast Du eigentlich einen Nickname?
Sebastian: Eigentlich nicht. Ich habe einfach meinen Vornamen als Benutzernamen für alle möglichen Internetgeschichten genommen. :)

Thomas: Wie alt bist Du und wo wohnst Du?
Sebastian: Ich wurde am 04.02.1990 geboren und bin zum Zeitpunkt des Interviews folglich 16. Ich wohne in Bad Arolsen im Waldecker Land im Norden Hessens in Deutschland. Alles in allem ist es hier eine sehr schöne Gegend, nur die Tatsache, dass es in meinem Dorf kein DSL gibt, ist ein Minuspunkt. ;)

Thomas: Ich bin gerade zur Webseite von Bad Arolsen gesurft und bin ganz angetan von dem netten Städchen (18000 Einwohner, 45 km von Kassel) mit seiner barocken Innenstadt und dem fürstlichen Residenzschloss. Sebastian: Was machst Du ausbildungs- bzw. berufsmäßig?
Sebastian: Ich besuche derzeitig die 10. Klasse des örtlichen Gymnasiums.

Thomas: Was erwartet den Besucher auf Deiner Webseite?
Sebastian: Auf meiner Homepage finden sich verschiedene Programme, die im Laufe der Zeit mal in Quick-/ Free- /VisualBASIC entstanden sind. Das Problem ist, dass ich öfters Projekte beginne und dann nicht zuende bringe, weil mir während der Programmierarbeit schon wieder das nächste Projekt in den Kopf schießt. Darum gibt's momentan noch nicht so eine große Menge Selfmade-Software.

Thomas: Wie sieht Dein Webdesign-Konzept aus? Deine Webseite www.sebastian-steiner.de ist ja sehr schlank und nicht allzusehr mit Grafiken überladen. Besonders das neue Design ist grafisch sehr ansprechend, leicht, luftig und lädt angenehm schnell.
Sebastian: Ja, das hat zwei Gründe: Zum Einen geht es mir hauptsächlich um eine übersichtliche Gestaltung, damit man schnell das findet, was man sucht. Zum Anderen muss ich stets mit meinem ISDN-Modem Vorlieb nehmen, weshalb ich grafisch aufwendige Seiten auch nicht so sonderlich gerne besuche. Des Weiteren bin ich in Sachen Grafikbearbeitung auch nicht sonderlich begabt. ;-)

Thomas: Wie war Dein Werdegang als Programmierer?
Sebastian: Ich habe relativ früh angefangen zu programmieren und mich allgemein mit dem Computer zu beschäftigen. Angefangen hat alles mit dem Herumexperimentieren an VBA-Makros in MS Excel und dem Zusammenbasteln von Batchdateien. Mein erster Computer war ein IBM Microchannel 486er mit Windows 95, anfangs natürlich ohne Internet. Meine Programmierkenntnisse habe ich mir selbst beigebracht. Ich habe also nie irgendeinen Kurs oder Ähnliches besucht. Computerspiele haben mich übrigens nie so brennend interessiert. Meine Faszination galt stets dem Erstellen von eigenen Programmen. :-)

Thomas: Sag doch mal ein paar Worte zu Deinen bisherigen QBasic Programmen. Du scheinst ja hauptsächlich diverse Tools zu programmieren und weniger mit der Spieleprogrammierung am Hut zu haben.
Sebastian: Das stimmt. Das Programmieren von Anwendungssoftware hat mich schon immer mehr gereizt, weil ich persönlich auch nicht so ein engagierter Spieler bin. [Höchstens mal eine Runde Siedler III mit Freunden im Netzwerk. ;)] Viele Programme habe ich nicht veröffentlicht, weil sie z.T. nicht besonders nützlich für andere sind. Dazu gehört beispielsweise eine kleine Werkstattinventarverwaltung für meine PC-Werkstatt unter'm Dach.

Thomas: Ich will dem Leser aber nicht vorenthalten, dass Du aber auch ein durchaus passables Autowettspiel namens "QRace" geschrieben hast, das sogar einen Preis in einem bekannten Programmierwettbewerb gewonnen hat. Hier ist ein Screenshot von QRace:

Screenshot von Qrace
Screenshot von Sebastians QB-Spiel QRace


Du programmierst offensichtlich in den Sprachen QuickBASIC, VisualBASIC und FreeBASIC. Wie würdest Du diese Sprachen gegeneinander abgrenzen? Beherrscht Du noch weitere Sprachen?

Sebastian: QuickBASIC ist für die meisten einfacheren Programmierprojekte super geeignet. Spiele wie 4Gewinnt, Maumau etc. oder auch Verwaltungsprogramme lassen sich damit gut erstellen. Schwieriger wird es da schon, wenn man Netzwerk- /Internetunterstützung, bestimmte Soundfunktionen, Windowsfunktionen wie Registryzugriff usw. benötigt. In diesem Fall empfehle ich FreeBASIC. FreeBASIC unterstützt den Befehlsumfang von QuickBASIC weitgehend, hat aber viele tolle zusätzliche Funktionen. Mit FreeBASIC lassen sich Bibliotheken wie die WinAPI, SDL und viele andere verwenden und man bekommt echte Windows EXE-Dateien als Ergebnis. FreeBASIC ist außerdem gerade für Hobbyentwickler, die für eine Programmierumgebung keine 100e von EUR ausgeben können oder wollen, sehr zu empfehlen, da es im Gegensatz zu Sprachen wie BlitzBasic völlig kostenlos ist und auch der Quellcode frei zur Verfügung steht.

Zu VisualBASIC würde ich eigentlich nur greifen, wenn rasch eine komfortable oder besonders aufwändige Benutzeroberfläche erstellt werden soll, beispielsweise wenn ein Programm hauptsächlich für den "Otto-Normalbenutzer" gedacht ist, der von Konsolenanwendungen oder langweiligen Oberflächen nicht viel hält. Ich beherrsche QuickBASIC, VisualBASIC, FreeBASIC, HTML (einschließlich CSS), mittlerweile auch PHP und habe Grundkenntnisse in TurboPascal / Delphi und ein wenig in C++.

Thomas: Kannst Du etwas über Deine aktuellen Projekte berichten?
Sebastian: Klar. Zuletzt habe ich meine Homepage in PHP neu programmiert. Die alte, statische Seite war schlecht zu warten und die Seiten sahen zum Teil sehr unterschiedlich aus. Außerdem fanden viele Besucher die Farbgebung nicht wirklich hübsch.

Weiterhin habe ich ein recht umfangreiches Client-basiertes Content Management System hauptsächlich für Schulen programmiert. Das System zeichnet sich durch eine komfortable Benutzerverwaltung, eine einfach zu bedienende Oberfläche und viele verschiedene Zusatzfunktionen aus.

Des Weiteren bin ich momentan dabei, eine Kommunikations-Lib für QuickBASIC zu schreiben, die es ermöglichen soll, aus QB heraus E-Mails zu verschicken, Dateien via HTTP herunterzuladen und später auch mit FTP zu arbeiten. Diese Lib verzichtet völlig auf das Verwenden externer Programme und basiert auf Marzec's TCP/IP Bibliothek (siehe unten). Ich hoffe, dass meine Lib innerhalb der nächsten paar Wochen zumindest in einer ersten Version erscheinen kann. :-)

Übrigens habe ich vor kurzem auch eine Möglichkeit gefunden, wie man die CPU- Auslastung von DOS-Programmen unter Windows 2000/XP deutlich reduzieren kann. Normalerweise liegt diese leider bei 100%, mit dem neuen Patch meistens weit darunter. Infos und eine Downloadmöglichkeit gibt's hier.

Thomas: Wie entwickelt sich eigentlich die Teilnahme und das Niveau in dem von Dir geleiteteten Deutschen QBasic- Programmierwettbewerb?
Sebastian: Die Teilnehmerzahlen lassen meistens nichts zu wünschen übrig. Auch vor schwierigeren Aufgaben schrecken die Programmierer beim Wettbewerb nicht zurück. :-)

Thomas: Bleibt die meiste Arbeit im Programmierwettbewerb an Dir hängen oder unterstützen Dich die anderen 4 Jury-Mitglieder tatkräftig?
Sebastian: Naja, die meiste Arbeit bleibt schon bei mir hängen Aber das ist nicht weiter schlimm, weil mir die Arbeit beim Wettbewerb Spaß macht. Unser größtes Problem ist eigentlich, dass wir ab und zu hinter den Bewertungen hinterherlaufen müssen und die Bewertungsphase etwas lange dauern kann. ;-)

Thomas: Was rätst Du einem QB-Programmierer, der sein Game netzwerkfähig machen will, z.B. über TCP/IP oder IPX?
Sebastian: Hier würde ich auf jeden Fall zur Verwendung von TCP/IP raten, da IPX heute längst nicht mehr so gängig ist wie früher. Der Programmierer Mario Zechner ("marzec") hat vor einiger Zeit mal eine TCP/IP Bibliothek auf Basis von DSOCK geschrieben. DSOCK ist eine Art Winsock- Steuerprogramm für DOS-Anwendungen, die unter Windows benutzt werden. Die angesprochene Bibliothek von marzec lässt sich so einfach wie beispielsweise die AK-Lib. in QB einbinden und ermöglicht das Herstellen von TCP/IP Verbindungen zu beliebigen anderen Hosts im Netzwerk oder Internet. Man kann entweder ein eigenes Protokoll für den Datentransfer entwerfen oder herkömmliche Protokolle wie FTP, SMTP usw. implementieren. Das habe ich schon erfolgreich mit dieser Lib gemacht, es geht also! :-)

Thomas: Marzecs TCP/IP-Lib "QBTCP" steht übrigens auf meiner Webseite www.qbasic.de zum Herunterladen bereit in der Rubrik "QBasic -> Download -> Libraries".

Was rätst Du einem QB-Programmierer, der aus seinem Programm heraus aufs Internet zugreifen und z.B. E-Mails versenden will?

Sebastian: Dazu habe ich schon oben bei meinen aktuellen Projekten einiges ausgeführt. Für kleinere Aktionen mit FTP empfehle ich das Windows-eigene Programm FTP.EXE gemäß der QBasic-MonsterFAQ über Eingabeumleitung anzusteuern.

Thomas: Warum hört man so wenig von PowerBasic und VB-DOS - im Vergleich zu QuickBasic?
Sebastian: Ich denke, dass man von diesen Sprachen im Vergleich zu QB so wenig hört, weil der QBasic Interpreter kostenlos und legal jedem Benutzer von Windows zur Verfügung steht. Heute bekommt man VBDOS zwar im Internet, wenn man danach sucht, aber wirklich legal ist das nicht. VBDOS hat einige Vorzüge im Vergleich mit QB, aber es hat sich einfach nicht durchgesetzt. Praktisch sind bei VB-DOS z.B. die vorgefertigte GUI-Elemente mit Textboxen, Menüleisten etc. PowerBasic bietet auch einige interessante Funktionen, ist aber recht teuer gewesen und QB wurde durch Libs um viele Funktionen erweitert.

Thomas: Wie siehst Du die Zukunft von QBasic, QuickBasic und MS-DOS?
Sebastian: Da sehe ich mehr oder minder schwarz. Je nachdem, ob es bei Windows Vista noch eine DOS-Emulation gibt, wird es auch mit QB nochmals ein paar Jahre weitergehen. Wenn Microsoft die DOS-Emulation jedoch weglässt, wird es zwar für uns QB-Programmierer bestimmt noch verschiedene Möglichkeiten über Third-Party Emulatoren wie DosBox oder ein virtuelles DOS in Bochs oder VMWare geben, doch die breite Masse wird dann mit DOS- Anwendungen nichts mehr anfangen können. Das einzig Gute ist, dass es mittlerweile FreeBASIC gibt. Man kann damit quasi unter Windows wie gewohnt QB programmieren und wenn man möchte trotzdem auf moderne Windowsfunktionen wie DirectX etc. zurückgreifen. QBasic/QuickBasic wird zwar in den nächsten paar Jahren leider, leider an Bedeutung verlieren, wenn du mich fragst, aber dank der vielen QB-Hobbyprogrammierer, die es nach wie vor gibt, und nicht zuletzt wegen deiner großartigen Homepage www.qbasic.de noch lange weiter benutzt werden.

Thomas: Vielen Dank für das Lob zu meiner Homepage. Sebastian: Was rätst Du einem QBasic-Programmierer, der Animationen, Sound und Mausbedienung in seine Spiele und sonstigen Programme hineinbringen will?
Sebastian: Um die Maus in QuickBASIC Programme einzubinden, empfehle ich einen direkten Aufruf des Interrupts &H33. Die vielen vorgefertigten (ASM-)Routinen funktionieren oft nicht mehr auf modernen Computern und können vor allen Dingen nur schlecht nachvollzogen werden. Viel einfacher ist es, sich eine eigene Mausroutine zu bauen. Wie das funktioniert, beschreibt A.K. auf seiner Webseite www.iconsoft.de aim Tutorial "Interrupts in QB".

Wer Animationen verwenden möchte, sollte sich entweder mit Andreas "dreael" Meiles sehr informativen Artikel zu diesem Thema befassen, der hier zur Verfügung steht. Oder man verwendet eine Grafik-Bibliothek wie die AK-Lib. Das Einbinden von Sounds ist in QB schon beträchtlich schwieriger. Für WAV- Dateien kleiner als 32KB kann man einen Primitivst-DMA-Player benutzen. Möchte man längere Sounds verwenden, kommt man eigentlich um eine Lib wie DirectQB nicht herum, da viele Soundroutinen für QB auf modernen PCs nicht mehr funktionieren.

Thomas: Wie schafft man sich den nötigen freien Speicherplatz für seine Spiele und überwindet die für QBasic geltende 160 KB Grenze für die max. Länge von Code und Daten?
Sebastian: Ich würde auf jeden Fall alle statischen Daten - seien es eingebettete Routinen für CALL ABSOLUTE oder Bilder und Texte - in externe Dateien auslagern. Die heutigen Computer sind so schnell, dass man dadurch keine nennenswerten Geschwindigkeitseinbußen mehr hat. Auch wenn man sehr große Arrays unterzubringen hat, würde ich dazu raten, diese in eine externe Datei auszulagern. Es gibt jedoch auch EMS/XMS Bibliotheken, mit denen man viele Megabyte Arbeitsspeicher mit QuickBASIC ansprechen kann, doch diese sind meiner Meinung nach mit Vorsicht zu genießen. Auf Windows 2000/XP neigen diese Bibliotheken nämlich dazu, ihren Dienst zu verweigern, und die Software ist nicht benutzbar.

Thomas: Welche weiteren Ratschläge kannst Du einem QBasic- Einsteiger geben?
Sebastian: Versuch nach Möglichkeit GOTO und GOSUB zu vermeiden. SUBs und FUNCTIONs sind viel praktischer und sehr einfach zu nutzen. Wie das funktioniert, ist leicht verständlich in dem Tutorial "SelfQB", das auf qbasic.de zu finden ist, beschrieben. Aus eigener Erfahrung weiß ich jedoch, dass man das meist nicht von Anfang an einfach so glaubt, wenn das ein anderer sagt, sondern dass man diese Einsicht in "leidvoller" eigener Erfahrung gewinnen muss ;-) Ein wichtiger Leitsatz für das Programmieren mit DOS-Compilern ist meiner Meinung nach, dass man unbedingt darauf achten sollte, dass die Programme auf möglichst allen Windowsversionen funktionieren. Die meisten Leute arbeiten heute nämlich mit Windows XP und auch Windows 2000 und gerade diese beiden Systeme sind oft ein bisschen "bockig" in Sachen DOS-Unterstützung. ;-)

Thomas: Auf welche Windows-Programmiersprache sollte ein QB-Fan aufsteigen a) wenn er nur hobbymäßig programmieren will bzw. b) wenn er einen IT-Beruf anstrebt?
Sebastian: Der Hobbyprogrammierer sollte sich stets den Weg suchen, der ihm am meisten Spaß macht, und es ist wohl Ansichtssache, wohin dieser führt. FreeBASIC ist eine feine Sache, wenn man QB bereits beherrscht. Es bietet tolle Möglichkeiten wie den einfachen Zugriff aufs Internet und Netzwerk, eine integrierte Funktionssammlung zu verschiedenen Zwecken wie z.B. zum Anzeigen von BMPs und und und. Außerdem ist FreeBASIC nicht plattformgebunden: Die Programme können u.a. für die beiden verbreiteten Betriebssysteme Linux und Windows kompiliert werden, MAC soll angeblich bald folgen. Eine weitere lernenswerte Sprache ist meiner Ansicht nach PHP, obwohl es sich dabei nicht um eine Windows- Programmiersprache handelt. ;-)

Möchte man das Programmieren zum Beruf machen und später in einem Softwareunternehmen arbeiten, kommt man meiner Ansicht nach kaum um C++ herum, da dies dort überall Standard ist. Ansonsten ist auch noch SAP Software ein ständig wachsendes Feld. Möchte man jedoch als freiberuflicher Programmierer arbeiten, kann man sich meiner Meinung nach die Sprache aussuchen. Programmiert man für ein Unternehmen auf Auftrag eine Finanzbuchhaltung oder Ähnliches, ist es den Leuten dort normalerweise egal, ob die Software in VisualC++, Delphi oder VB entstanden ist. Wichtig ist, dass man eine RAD-Programmierumgebung verwendet (RAD = RApid Development = schnelle Softwareentwicklung), mit der man für das Anwenderprogramm eine einfach zu bedienende und komfortable grafische Bedienungsoberfläche (GUI) schnell "zusammenklicken" kann, da der Ottonormaluser für eine unmoderne, mühsam zusammengefriemelte GUI wenig übrig hat. ;) Verbreitete RAD-Entwicklungsumgebungen sind VisualBASIC, Visual C++ und Delphi.

Thomas: Linux verwenden und für Linux programmieren - denkst Du über sowas nach?
Sebastian: Ja, auf jeden Fall. Momentan verwende ich Linux höchstens von der Knoppix CD, aber in ein paar Jahren, wenn es vielleicht keine Software mehr für Windows 2000/XP gibt, werde ich mir den Umstieg auf jeden Fall überlegen, da ich persönlich von Windows Vista eher nur Schlechtes erwarte. Windows wird dann aber auch natürlich nicht völlig verbannt werden. ;-) Ein sehr interessantes Projekt, auf das ich gerne hinweisen möchte, ist ReactOS (www.reactos.org). Dieses OpenSource Betriebssystem wird, wenn es fertig ist, vollständig kompatibel zu Windows und den Anwendungen sein. Die Entwicklung an dem Projekt geht emsig weiter und ReactOS könnte ein großer Erfolg werden. Darauf bin ich wirklich gespannt.

Thomas: Spieleprogrammierung in VB oder Delphi - macht das Sinn?
Sebastian: Nun, warum nicht? Beide Sprachen haben einen deutlich größeren Funktionsumfang als QBasic und selbst damit lassen sich sehr schöne Spiele entwickeln. Für rasante 3d-Spiele ist VB aber sicherlich zu langsam, weshalb die Spieleprofis es für so etwas wahrscheinlich nicht einsetzen würden. Viel interessanter als Spieleentwicklung mit VB oder Delphi ist das Ganze jedoch mit FreeBASIC. Die Sprache ist einfach und die compilierten EXEn sind ausgesprochen flott. Die Grafikbefehle, die man von QB her kennt (PSET, LINE, CIRCLE etc.), werden unter FreeBASIC von DirectX wahrgenommen, ohne dass der Programmierer etwas dazu tun muss. Die Darstellung von Grafiken ist daher auch ziemlich schnell.

Thomas: Was hast Du für Zukunftsprojekte?
Sebastian: Da gäbe es viele, nur die Zeit ist knapp :) Das wären z.B. ein Netzwerkmailprogramm, eine schöne GUI Bibliothek für QB usw.

Thomas: Wie willst Du Dich beruflich entwickeln?
Sebastian: Ich möchte ganz gerne später irgendwas in die Richtung Informatik machen. Ob das eher in Richtung Softwareentwicklung oder Wirtschaftsinformatik geht, kann ich jetzt noch nicht sagen. ;)

Thomas: Was sind Deine Lieblings-Webseiten?
Sebastian: Für Nachrichten schau ich am liebsten bei tagesschau.de vorbei: Die Informationen sind gut strukturiert und ausgewogen. Auf unwetterzentrale.de gibt's immer aktuelle Wetterwarnungen und zwar landkreisgenau. Bei preissuchmaschine.de und guenstiger.de findet man gute & günstige Anbieter für Computerartikel. Meine neueren Bildschirme und anderes Zubehör habe ich alle über das Internet bezogen und war damit eigentlich immer sehr zufrieden. Zu guter letzt noch eine Seite, die wirklich jeder kennen sollte: http://de.wikipedia.org. Dort findet man nicht nur Material für die Schule, sondern auch Begriffe aus der Welt des Computers und des Programmierens werden dort erklärt. Und für den Rest gibt's ja Google. ;)

Thomas: Hast Du noch andere Hobbies außer Programmieren? Was macht Sebastian Steiner so alles privat?
Sebastian: An unserer Schule kümmere ich mich um ein Internetcafé, ein Klassennetzwerk und noch ein paar andere Netzwerkgeschichten und auch zu Hause bin ich derjenige, der die Computer aller Familienmitglieder in Schuss hält. ;) Bei schönem Wetter gehe ich gerne mit der Digitalkamera raus ins Dorf oder in den nahen Wald - in der Ferienregion rund um den Twistesee hier in Waldeck alles kein Problem. :) Ist das Wetter schlecht, habe ich auch immer irgendetwas zu tun.

Ein ulkiges Projekt, das momentan wegen Zeitmangels leider auf Eis liegt, ist z.B. eine PC-gesteuerte Friteuse. - Klingt verrückt, ist es auch. Ansonsten lese ich gerne Bücher über Computer oder Technik im Allgemeinen und Abends schaue ich mir sehr gerne Sendungen wie Monitor (ARD), Quarks & Co. (WDR), ARD exclusiv oder zdf.reporter im Fernsehen an; auch Harald Schmidt gucke ich gerne. Spielfilme schaue ich eher selten.

Thomas: Vielen Dank Sebastian für das höchst aufschlussreiche Interview. Willst Du noch einen Abschiedsgruß an den Leser richten und etwas von Deinen Erfahrungen als Programmierer und Mensch weitergeben? Welche Regeln soll man beherzigen, welche Fehler vermeiden?
Sebastian: Zunächst einmal herzlichen Dank für die Aufmerksamkeit und das Lesen dieser sehr ausführlichen Befragung, liebe Leserin, lieber Leser! :) Als Empfehlung könnte ich jedem nur geben, sich für die Welt um einen herum zu interessieren und immer wissensdurstig zu bleiben. Eine "Ist mir doch egal"-Haltung ist im Leben meiner Meinung nach völlig verkehrt. Es gibt so vieles zu entdecken oder besser zu machen auf der Welt, man muss sich nur dafür interessieren.

Thomas: Und nun, lieber Leser, solltest Du ganz schnell Sebastians Webseite www.sebastian-steiner.de besuchen und Dir Sebastians Autowettspiel "QRace" sowie die äußerst interessanten Tools in der Rubrik "Programmieren" anschauen.!!!


[zur Startseite http://www.antonis.de]        [zur framelosen Startseite]