Harbour (Compiler)
Harbour ist ein freier, plattformunabhängiger Compiler für die xBase Programmiersprache, die hauptsächlich zum Erstellen von Datenbank-Anwendungen verwendet wird. Es ist eine modernisierte Version des Clipper aus den 1980er Jahren, welcher mit .dbf (dBase) - Datenbanken arbeitete.
Harbour | |
---|---|
Paradigmen: | multiparadigmatisch, imperativ, funktional, objektorientiert |
Erscheinungsjahr: | 1999 |
Designer: | Antonio Linares |
Entwickler: | Viktor Szakáts und community |
Aktuelle Version: | 3.2 dev () |
Beeinflusst von: | Clipper |
Beeinflusste: | xHarbour |
Betriebssystem: | plattformunabhängig |
Lizenz: | Open-source GPL-compatible |
harbour.github.io |
Harbour kann neben diesen Datenbanken, diverse andere relationale Datenbanken über Replaceable-Database-Drivers (RDD) oder native Anbindung verwalten, wie z. B. Access, SQLITE, MySQL, PostgeSQL u.a. Mittels LetoDB[1] können .dbf Dateien über das World wide Web bearbeitet werden. Die Funktionserweiterungen von Harbour gehen weit über die ursprüngliche Clipper 5.3 und Tools-Bibliothek hinaus.[2] Wie bei Clipper lassen sich über den Makrocompiler sämtliche Funktionen der EXE aufrufen.
Der Harbour-Compiler ist quelloffen und kann, falls keine Binaries für das betreffende Betriebssystem vorhanden sind, selbst kompiliert werden.[3]
Unterstützt werden eine Vielzahl von Betriebssystemen u.a. Microsoft Windows, Linux, Unix-Derivate, BSD, Mac OS X, MINIX 3, Windows CE, Pocket PC und auch MS-DOS. Auch Android-Apps und Konsolenanwendungen lassen sich mit Harbour erstellen.[4][5][6]
Harbour erzeugt C Quellcode. Dieser kann mit verschiedenen C-Compilern wie GCC, MinGW, Clang, ICC, Microsoft Visual C++ , Borland C++, Watcom C, Pelles C kompiliert werden.
Im Gegensatz zur Java-Devise “write once, run anywhere”, ist die Devise bei Harbour “write once, compile anywhere". Konsolenanwendungen können ohne große Modifikationen (Ausnahme Betriebssystem spezifische Besonderheiten) auf andere Systeme portiert werden.
Die Harbour-Programmiersprache ist case-insensitiv, Anwendungen sind schnell und schwer zu dekompilieren.[7] Harbour unterstützt OOP-Programmierung, das Erstellen von Office-Dokumenten mittels OLE und CGI-Webanwendungen.[8] Über die die FANN[9] Library[10] lassen sich Neuronale Netze realisieren.
Historie
Harbour wurde als freier Compiler 1999 von Antonio Linares[11] entwickelt, als Nachfolge des Clipper-Compilers, welche keine 32-Bit-Programme erzeugen konnte (siehe auch Clipper-Programmiersprache). Es ist ein Kommandozeilenprogramm ohne Benutzeroberfläche. Der Name ist eine Anlehnung an Clipper. Harbour stellt den Heimathafen der Clipper dar.
Releases
2005-06-20 Release Alpha build 45
2007-01-22 Release 0.99.1 Beta 1
2008-08-10 Release 1.0.0
2009-12-22 Release 2.0.0 (2009 wurde der Compiler grundlegend revidiert hauptsächlich von Viktor Szakáts und Przemyslaw Czerpak).
2011-07-17 Release 3.0.0 (Letztes Stable Release)
Ab 2011 gibt es nur noch Entwicklerversionen. Hierbei gibt es die Branches 3.2 und 3.4.
Zum Testen von Code-Schnipseln ohne Kompilierung und ohne Installation eines Programmpakets lassen sich die Formulare der Funktionsreferenz auf der offiziellen Homepage[2] nutzen oder auch andere Seiten.[12]
Grafische Benutzeroberflächen
Die erste Harbourversion unterstützte genauso wie der Clipper-Compiler keine GUI, sondern nur Konsolenanwendungen.
Aktuell lässt sich die QT-GUI integrieren.[13] Fertige Programmpakete mit QT-Gui gibt es für Windows und Linux.[14]
Für Windows gibt es das Harbour-MiniGUI (HMG) Programmpaket, welches mittels Windows-Api freie Windowsanwendungen ermöglicht. Dieses wurde von Roberto Lopez 2002 auf Basis der Alpha-Version des Harbour-Compilers entwickelt. 2004 entstand MiniGUI 1.0, ab 2005 folgte die HMG 2.0 extended edition. Als Compiler wurde Borland C++ verwendet. HMG-Anwendungen und das Programmpaket sind auch unter Linux mittels Wine lauffähig.[15]
Die aktuellste grafische Benutzeroberfläche ist HMG extended[16]
Außer den genannten GUIs gibt es Versionen mit GTK und andere wie HWGui,[17][18] und ooHG.[19]
IDE
Für die Programmierung reicht oft ein einfacher Editor aus. Notepad++ unterstützt Syntaxhighlighting für xBase (s. HMG-Forum). Formulare und die Gestaltung der Benutzeroberfläche lassen sich jedoch einfacher mit einer IDE erstellen. Für die Gestaltung mit QT gibt es die HBIDE,[20] für Windows verschiedene Versionen der HMG-IDE. Die HMG-extended IDE ist aufgrund der erweiterten Controls nicht abwärtskompatibel.
Weblinks
Einzelnachweise
- Leto DB
- Harbour Reference Guide
- How to Build
- How to build HARBOUR to compile PRG for Android
- Programming on Harbour for Android
- Build Harbour on Android using Termux the easy way
- Comparing computer languages, Harbour, VFP and others
- Harbour CGI
- Fast Artificial Neural Network Library
- hrb4fann
- Interview with Antonio Linares
- Harbour Playground
- Harbour Core - How to enable optional components
- Marinas-GUI
- HMG "Harbour minigui" en Linux con Wine
- HMG extended, MinG-Version
- Third-party packages
- HwGUI Gui Library for Harbour
- OOHG - Object Oriented (x)Harbour GUI
- hbIDE für QT