Harbour (programming language): Difference between revisions

Content deleted Content added
Built-in data types: Fixed hash syntax example
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 7 templates: del empty params (5×); hyphenate params (6×);
Line 41:
==Database support==
 
Harbour extends the Clipper Replaceable Database Drivers (RDD) approach. It offers multiple RDDs such as [[DBASE|DBF]], DBFNTX, DBFCDX, DBFDBT and DBFFPT. In Harbour multiple RDDs can be used in a single application, and new logical RDDs can be defined by combining other RDDs. The RDD architecture allows for inheritance, so that a given RDD may extend the functionality of other existing RDD(s). Third-party RDDs, like RDDSQL, RDDSIX, RMDBFCDX, [[Advantage Database Server]], and Mediator exemplify some of the RDD architecture features. DBFNTX implementation has almost same functionality of DBFCDX and RDDSIX. NETIO and LetoDB<ref>{{cite web|url=https://sourceforge.net/projects/letodb |title=LetoDB |publisher=Sourceforge.net |access-date= |accessdate=2013-12-09}}</ref> provide remote access over [[Transmission Control Protocol|TCP]] protocol.
 
Harbour also offers [[ODBC]] support by means of an [[Object-oriented programming|OOP]] syntax, and [[ActiveX Data Objects|ADO]] support by means of [[OLE Automation|OLE]]. [[MySQL]], [[PostgreSQL]], [[SQLite]], [[Firebird (database server)|Firebird]], [[Oracle (database)|Oracle]] are examples of databases which Harbour can connect.
Line 68:
Harbour supports external GUIs, free (e.g. HBQt, HWGui, MiniGUI (latest version based on Qt) and [https://sourceforge.net/projects/qtcontribs/ QtContribs]) and commercial (e.g. FiveWin, Xailer). HBQt is a library provinding bindings to Qt. HBIDE application is a sample of HBQt potential.
 
Harbour is 100% Clipper-compatible<ref>{{cite web|url=https://harbour.github.io/ |title=Official Harbour page |publisher=The Harbour Project |access-date= |accessdate=2013-12-09}}</ref> and supports many language syntax extensions including greatly extended run-time libraries such as [[OLE Automation|OLE]], [[Blat (software)|Blat]], [[OpenSSL]], [[FreeImage]], [[GD Graphics Library|GD]], hbtip, hbtpathy, [[PCRE]], hbmzip ([[zlib]]), hbbz2 ([[bzip2]]), [[cURL]], [[Cairo (graphics)|Cairo]], its own implementation of CA-Tools, updated NanFor libraries and many others. Harbour has an active development community and extensive third party support.
 
Any [[xBase]] language provides a very productive way to build business and data intensive applications. Harbour is not an exception.
Line 353:
==Development==
[[File:HBIDE Editor.png|thumb|400px|HBIDE look.]]
Today Harbour development is led by Viktor Szakáts in collaboration with Przemysław Czerpak who also contributes many components of the core language and supplementary components. HBIDE and some other components especially HBQt, are developed by Pritpal Bedi. Other members of the development community send changes to the [[GitHub]] source repository.<ref>{{cite web|url=https://github.com/harbour |title=harbour 路 GitHub |publisher=Github.com |access-date= |accessdate=2013-12-09}}</ref>
As of 2015 Harbour development is active and vibrant.
 
==xHarbour comparison==
[[xHarbour]] is a fork<ref>{{cite web|url=http://www.xharbour.org/index.asp?page=about/index |title=About xHarbour |publisher=Xharbour.org |access-date= |accessdate=2013-12-09}}</ref> of the earlier Harbour project. xHarbour takes a more aggressive approach to implementing new features in the language, while Harbour is more conservative in its approach, aiming first of all for an exact replication of Clipper behaviour and then implementing new features and extensions as a secondary consideration. It should also be noted that Harbour is supported on a wide variety of [[operating systems]] while xHarbour only really supports MS Windows and Linux 32-bit.
 
The Harbour developers have attempted to document all hidden behaviour in the Clipper language and test Harbour-compiled code alongside the same code compiled with Clipper to maintain compatibility.
Line 363:
The Harbour developers explicitly reject extensions to the language where those extensions would break Clipper compatibility. These rejections were softened recently since the new Harbour architecture allows extensions out of the core compiler.
 
A detailed comparison between extensions implemented in Harbour and xHarbour can be found in the source repository of the project on GitHub.<ref>{{cite web|url=https://github.com/harbour/core/raw/master/doc/xhb-diff.txt |title=xhb-diff.txt |access-date= |accessdate=2013-12-09}}</ref>
 
==GUI libraries and tools==
Line 370:
* '''[https://sourceforge.net/projects/hwgui/ HwGui]''' – Open Source cross-platform GUI library for Harbour
* '''[https://sites.google.com/site/hmgweb/ HMG]''' – Free / Open Source xBase [[Win32]] / [[GUI]] Development System for Harbour
* '''[http://hmgextended.com/home.html MiniGUI]'''<ref>{{cite web|author=vailtom |url=https://sourceforge.net/projects/hmgs-minigui/ |title=Harbour MiniGUI Extended Edition. &#124; Free Communications software downloads at |publisher=Sourceforge.net |date=17 August 2009 |accessdateaccess-date=2013-12-09}}</ref> – Free / Open Source xBase Win32 / GUI Development System (a [[Fork (software development)]] of both HMG and Harbour)
* '''[https://web.archive.org/web/20080811000401/http://www.oohg.org/ ooHG]''' – Object Oriented Harbour GUI – a fork "class based and oop programming" of HMG
* '''[http://marinas-gui.org/ Marinas-GUI]''' - Multi-Platform QT Based GUI Development Package for Harbour. Marinas-GUI downloads as a complete installation package for the chosen target platform (IDE, Version Control, Harbour/C Compiler, Libraries etc.) - Basically install and start coding and compiling.