I have also post on Wikipedia http://en.wikipedia.org/wiki/Harbour_compiler
Please help to modify

Harbour is a open source clipper compiler which runs on many operating systems. 
(DOS, Microsoft Windows, Linux (32,64), Unix (32,64), Mac OS X,Windows 
Ce,Pocket PC)
Harbour licenze is GPL with an exception supporting commercial applications, so 
you can distribuite commercail application made with harbour
It is designed to use and compile Clipper source code, with Classy OOP 
extession 
Unlike Java which is intended to be write once, run anywhere, harbour aim to be 
write once, compile anywhere. As the same compiler is available for all of the 
above operating systems, there is no need for recoding to produce identical 
products for different platforms, except when operating-system-dependent 
features are used. Cross-compiling is supported with MiniGW32.
Under Microsoft Windows harbour is more stable and less well-documented than 
Clipper, but has multi-platform capability and is more transparent, 
customizable and can run from a USB flash drive. 
Under Linux, Clipper source code can be compiled with harbour  with a little 
adaptation.
Clipper source code can be adapted to compile under Window Mobile 
Harbour use c compiler Borland C++,Microsoft Visual C++ (6,7,8 ), Minigw32, 
watcom c
Xharbour comparison

Both the projects to set their standards and to choose what implement and how 
but we could have a "standard"
[x]Harbour syntax.
C compilers are often very different but there sth we call C language.
Everyone will choose if writing standard code or use extensions.
Clearly what today an "extension" tomorrow can be standard
 
Harbour want replicate exact Clipper behavior.
Harbour document all hidden behavior making many tests with Clipper to imagine 
general rules used in the original code. Then I'm coding and for this I usually 
need much less time then for tests. The final results should be very simple 
because I do not believe that in Clipper someone intentionally hard coded 
exceptions. 
The exceptions are results of some design decisions. 
If later I have to explicitly hard code some chosen behavior in code I created 
instead of making some small modification in the algorithm then it means that 
the testing process was not enough precis and I took wrong decisions so I 
should repeat the tests. I very seldom decide to fix one special case without 
trying to understand why it exists in Clipper. Code which have a lot of 
exceptions is very hard to understand and later update.

Harbour project don't want unusable extension if it break Clipper 
compatibility. 
In xharbour the Clipper behavior was mixed with some xHarbour extensions and 
the debug process is much harder then it should be...
Harbour want made a clear separation and keeping the code clean is important 

Finally harbour have made most of important modifi decision  to rewrite  gt and 
multithread for cover foundation need



Harbour offering multiple GT (Graphic Terminals), including console drivers, 
and Hybrid Console/GUIs, such as GTWvt, and GTWvw. 
 
Harbour support external GUIs (free such as HWGui, MiniGUI and commercial, such 
as FiveWin, Xailer ), 
Harbour is 100% Clipper backward compatible and supports many language syntax 
extensions, greatly extended run-time libraries such as OLE, ODBC, MySQL, 
PostgreSQL, TIpt, TXml, RegEx, HbZip, xbScript and extensive third party support
 
Harbour extends the Clipper Replaceable Database Drivers (RDD) approach. It 
offers multiple RDDs such as DBF, DBFNTX, DBFCDX, DBFDBT, and DBFFPT. In 
xHarbour multiple RDDs can be used in a single application, and new logical 
RDDs can be defined from combination of other RDD. The RDD architecture allows 
for inheritance, so that a given RDD may extend the functionality of other 
existing RDD(s). 3rd party RDDs, like RDDSQL, RDDSIX, RMDBFCDX, Advantage 
Database Server, and Mediator exemplify some of the RDD architecture features.
Harbour also offers ODBC support be means of an OOP syntax, and ADO support by 
means of OLE.
Macro Operator (runtime compiler)
One of the most powerful features of the xBase languages is the MACRO Operator 
'&'. xHarbour's implementation of the Macro Operator allows for runtime 
compilation of any valid xHarbour expression. Such compiled expression may be 
used as a VALUE, i.e. the right side of an Assignment, but more interestingly, 
such compiled expression may be used to resolve the LEFT side of an assignment, 
i.e. PRIVATE, or PUBLIC variables, or Database FIELD.
Additionally the Macro Operator may compile and execute function calls, 
complete assignments, or even list of arguments, and the result of the macro 
may be used to resolve any of the above contexts in the compiled application. 
IOW, any xHarbour application may be extended, and/or modified in runtime, to 
compile and execute additional code on demand.

Object Oriented Programming. Programming in an OOP style is a broader issue 
than a specific library or a specific interface. But OOP programming is 
something many Clipper programmers have come to expect. CA-Clipper 5.2 and 
especially 5.3 added a number of base classes, and a matching OOP syntax. 
Libraries such as CLASSy, Fivewin, Clip4Win, and TopClass provide 
Harbour have OOP extensions with full inheritance and class declaration. based 
on Classy syntax  , Harbour follows suit in providing a full collection of 
commands for declaration of classes, inheritance, and so on. The syntax may not 
wind up being identical with that in the tool you previously used, but it 
should be possible to maintain your old Clipper class hierarchy with minimal 
changes to source code. 
 


Massimo Belgrano
 

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to