Why Harbour ?
In a nutshell, then: because the Harbour - is a modern programming environment, that lets me create any application that I need, with a way, most convenient for me.
I wrote in a Russian language article Why Clipper about the features of the language that make it a powerful and convenient tool. Repeat the most important points again.
Dynamically created and automatically released variables, arrays, complex data structures, which, in fact, are arrays. Those who wrote in languages where such possibilities are absent, know how much work and attention this opportunity saves.
Macros and codeblocks. They makes it possible to write external scripts, external screen and reports templates with almost unlimited flexibility. Without affecting the program itself, you get the opportunity to change its behavior and appearance in a very wide range, create data driven programs. Extremely powerful feature!
Native, built-in data management. Using Clipper's / Harbour's commands and functions, you can create, modify, index databases, make a search in them - i.e. to do all what the database are intended for. Moreover, these means are convenient, effective and efficient. We often encounter the need to use a database program and the question always arises: what to use? We often have deal with the third party software, which uses as a DBMS something like Firebird or even a monster like MS SQL, though the data stored there - enough to swear. If these programs were made with the Harbour :), everything would be easier, faster, better, and there were not a necessity to install a copy of that large DBMS.
The Extend system that allows to link to the program modules written on C, or, on the contrary, introduce modules made on Harbour, to an application written in C. This means that you are not limited in the means of implementing anywhere. If a thing is difficult to be implemented directly in the Clipper/Harbour language, or you need a higher speed of execution of a some part of the program, you can write it on C and call it as an usual Harbour function. You get access to the entire arsenal of modern software, as most software products intended for use with end-user programs, have C /C++ API , and hence can be used in Harbour program - for this you should write the intermediate C module. This is very important, this, once again, gives you unlimited possibilities.
Due to the Extend system there are a number of additional tools and libraries already written for Harbour. I will not list them here, I will mention only those which have a direct bearing on mymself - HwGUI , Letodb (client-server DBMS) and RDDADS (driver for Advantage Database Server).
Portability - Harbour is a cross-platform system. Sure, you know many examples of widespread office software, which works only under Windows. The authors can not port them to other platforms for years, or they don't want to do this because it demands a lot of resources. But if they used Harbour :), they could have much less problems with porting.
I write and support a variety of software for the enterprise where I work - an accounting programs, some systems, which collects data from sensors in a manufacturing plant and from electric meters, etc. All of these programs work under Windows and under Linux; where it is more appropriate - in console mode, where it is required - with GUI. I am possible provide this variety of configurations with my limited resources, because I use Harbour.