Turbo Vision (kurz TVision, unter Insidern TV) ist ein Framework zur Erstellung von Anwendungsprogrammen mit zeichenorientierter Benutzerschnittstelle. Das Framework war von der ersten Version an objektorientiert und ereignisgesteuert, seinen Benutzern bot es zudem tragfähige Konventionen zur Programmstruktur an. Diese reichten vom konfektionierten Programmablauf der Hauptfunktion bis hinab in die Konventionen der Bezeichnerwahl: Von Turbo Vision stammt ein Großteil der Delphi-Konventionen zur Quelltextgestaltung wie das große T, das Typnamen vorangestellt wird, oder kleingeschriebene 2- oder 3-Zeichen-Präfixe vor Enumeratoren.
Geschichte
Turbo Vision wurde von Borland Inc. zunächst entwickelt, um auf seiner Basis die IDEs für Turbo Pascal und Turbo C für MS-DOS erstellen zu können. Aus damaliger Sicht bedeutend war, dass es stark objektorientiert und ereignisgesteuert war. Der Kontrollfluss ist damit nicht vorrangig anhand der Anweisungen des Hauptprogramms verständlich, sondern erfordert Einblicke in die spezifische Implementierung von Klassen. Grundsätzlich waren Tastatur und Maus gleichermaßen als Eingabegeräte konzipiert, was unter DOS damals keineswegs eine Selbstverständlichkeit war.
Mit Turbo Pascal 6.0 (bzw. Turbo C 2.0) wurde Turbo Vision für die Benutzer der Borland-IDEs zur Entwicklung eigener Anwendungen verfügbar. Hierbei war nicht nur eine kontextsensitive Online-Hilfe inklusive, sondern es wurde auch das Konzept der Anwendungsentwicklung unter Turbo Vision ausführlich und verständlich erklärt.
Nachdem die Anwendungsentwicklung sich zunehmend auf Plattformen ausdehnte, die grundlegende grafische Möglichkeiten zur GUI-Programmierung bereitstellten, ging die Bedeutung textbasierter Systeme zurück. Turbo Vision und ähnliche Frameworks konnten sich lediglich für wenige Systeme mit außerordentlichen Ansprüchen an Rechenleistung halten.
Der Quelltext von Turbo Vision wurde um 1997 zusammen mit den Quellen der C++-IDE durch Borland in die Public domain freigegeben.
Seitdem wird das Framework unter BSD-Lizenz für eine Vielzahl von Betriebssystemen weiterentwickelt.
Beim Übergang zur Windows-Entwicklung entwickelte Borland nach ersten Versuchen mit TPW (Turbo Pascal for Windows), das stark an die Konzepte von TV anknüpfte, für Borland Delphi ein neues Framework, die Visual Component Library (VCL), die dank Closures eine wesentliche Schwäche von TV ablegte: Verhalten von Komponenten nahezu ausschließlich durch Ableitung von Basisklassen steuern zu können.
Klassisches Beispiel
Mit den folgenden wenigen Zeilen ließ sich bereits in den 1990er Jahren ein Programm erstellen:
program MyTVApp;
uses App;
var MyApp: TApplication;
begin
MyApp.Init;
MyApp.Run;
MyApp.Done;
end.
Dieses Programm hatte allerdings keinerlei vom Standard abweichende Eigenheiten zu bieten. Es verfügte über eine Menüleiste mit einer Beenden-Option (Tastenkombination Alt + X) und konnte per Maus gesteuert werden. Das Menü ließ sich über F10 ansteuern. Um tatsächlich eigene Programme zu gestalten, musste man zumindest eine eigene Klasse von TApplication ableiten. So ließ sich z. B. durch Überschreiben der Init-Methode das Menü mit eigenen Funktionen anreichern. In jedem Falle war man bei Turbo Vision gezwungen, eigene Klassen von Standardklassen abzuleiten.
Weblinks
Einzelnachweise
- ↑ Salvador Eduardo Tropea: Turbo Vision: Port to the GNU compiler and more. In: tvision.sourceforge.net. Abgerufen am 12. Mai 2010 (englisch): „What about copyrights? […] According to a FAQ entry in the Borland's site (was in http://www.inprise.com/devsupport/bcppbuilder/faq/QNA906.html when I saw it) the code is public domain. I also asked in the Borland's newsgroup and the TeamB people (not official people but they are who give technical support in the net) said me the FAQ was right.“
- ↑ Turbo Vision - by Borland Developer Support Staff. In: community.borland.com. 2. Juli 1998, archiviert vom am 19. Januar 2004; abgerufen am 3. Mai 2023 (englisch): „Question: Where can I find the public domain version of Turbo Vision? Answer: It can be found at ftp.inprise.com/pub/borlandcpp/devsupport/archive/turbovision/“