One of my customers - the only one working with Harbour 3.2 + Mediator + some older things including dBASE IV - decided to take a step into the 21st century by rewriting the software using C#.
Another company, which I know, used almost only Clipper and because it lost all contracts a few years ago, the company decided to declare liquidation.
Well... it looks like the end for me on the market. At least in xBase. That's why I would like to ask you about perspectives, any open positions and so on. Do you see any future in Harbour? Or are you just waiting for retirement?
Sir, can you explain in more details why did Clipper caused the loss of all contracts ?
In my life I have seen many times that some company want to change Clipper/Harbour program not because it works bad, but because company wants "modern" GUI visual look. That sort of requests usually do not come from people who use application, but from upper management who even do not understand place and impact of current Clipper application in that company.
Even today I have good working Harbour applications where (in may case small) companies who use it do not even think to change anything as applications do job for them.
Most approved requirement is when in company arises need for web application. It justifies shift to some new programming tool. But even in that situation we have UT Project as Domenico mentioned.
Thank you.
Best Regards,
Simo.--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/b663c5c2-4dd2-4512-a0ae-12d2acaa2e61n%40googlegroups.com.
You are right Francesko, client is boss. It is up to him to decide.
But there are axamples where Clipper/Harbour applications are developed by small company with several employees, not only one. So there are programmers who will maintain the application. I am in small companies world, not talking about medium and big business folks.
Migrating to new platform is not easy task. And is not cheap. We small make custom-tailored suits (apps). Big software companies sew off-the-rack suits, and then you have to squeeze yourself into one. For much bigger money. Especially are expensive when client needs some specific functionality. Not to mention the speed of response to requests. Our clients know that.
Today we have Fortran and Cobol applications that still works, because they are robust and reliable. And somehow still there are Cobol programmers.
And last, today with AI tools we can make apps in any language. At least AI companies advertise themselves in that way.
Best Regards,
Simo.
It's not about "Clipper causing the loss of all contracts." It's more about, like you described, "the company wants a 'modern' GUI visual look."
The new software (ERP) is done in C#, but all the functionalities are translated from Harbour. Which also means that the software should behave in the same way and offer the same functionalities. Plus, of course, a few modern additions — especially this, let me quote you again, "'modern' GUI visual look."
But the reason is less important to me than the result. Which is — not only for me, but also for other developers (however, two of them are about 50 years old while I'm about 30 years old; one developer passed away a few years ago — he devoted his entire life to Clipper (later Harbour) programming) — the end of commercial programming in Harbour.
Of course, I'm not writing just to complain. The market is what it is. I'm writing mostly because of sentiment — I really liked this stack and project.
Regards,
Dawid
Hi
I've been working (extensively with Claude) for about 6 months this year on a Harbour to c# transpiler based on the Harbour compiler.
I now have 83 CS0103 errors similar to this below from ~300 000
lines:
posclass.cs(38,64): error CS0103: The name 'HB_OO_DATA_VALUE'
does not exist in the current context
This is the first time I have got rid of all other warnings and errors. I think it will work for us but it is not a simple solution! It still has a long way to go in terms of rewriting certain concepts (class creation), libraries etc. We have about 30 c# COM dll's which I hope will more or less just work.
My team has made the following changes to the original code over the last few years and this might be pretty disappointing for someone hoping for a magic bullet:
1. Remove the UI and write a socket client to handle the UI (Python and Qt). This made sense because it opened up the way for testing and of course we got a nice new UI. It's a Point of Sale app, removing the UI on an accounting system would not be much fun, but I assume if it were all @ SAY, GET it would perhaps be not too bad.
2. Remove all usage of Workareas and move to an object oriented ORM. Workareas are death to clean programming in my view because of their global scope, and there is no equivalent concept in c#. We had a version of the ORM that worked with Workareas (DBFs) and for the next version of our software we switched the ORM to use SQLite. For shared files we built a python SQLiteServer (even the concept of shared files will sound odd to someone writing, say, accounting software).
3. The definition files we wrote for the ORM were enough to get
type information for all fields and to build typed Classes in c#.
4. You have to be pedantic about using Hungarian (or whatever it
is) notation for variables - nNumber, lBoolean, dDate, cChar,
bCodeBlock, pPointer, oObject, fFunction, hHash, aArray,
tTimeStamp and statics indicated by snNumber, saArray etc. xUsual
becomes dynamic in c# and numbers are split into long integers
(INTEGER) and the c# decimal type (NUMERIC).
5 Our classes had the Hungarian notation above as well as the "AS
NUMERIC" annotation.
One benefit is that it had found a ton of hidden errors in our Harbour code which now may now be viewed as strongly typed (and type safe) with full verification of procedure, function and method signatures.
The source code can be seen on github, https://github.com/ankerdata/harbour-3.2.0core/tree/transpiler. The README.md under src/transpiler has a lot of technical detail.
Feel free to have a look or clone it, but I am unlikely to be able to offer much in the way of support. If someone is interested I will make available the def file format we use to declare the dbf file/sqlite table/data class detail and the source for the DBF ORM and the SQLite ORM.
--
Regards
Alex
--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
Hi,
IMHO, AI is completely changing the programming landscape, which might actually work to your advantage.
In recent weeks, I've rarely needed to type a single line of code manually. The specific programming language you know or use is becoming far less important. Today, even non-programmers can generate code in almost any language.
What remains critical are the fundamentals: domain expertise. If you master a specific business domain, know what it takes to build a robust application within it, and possess the technical skill to validate and refine AI-generated code, you will be fine.
Over the next few months and years, we will see a surge of poorly architected software written by people who simply had an idea but lacked the deep technical context to execute it properly. Anyone can prompt an AI to "write an ERP application in Python/C#/Harbour," but that prompt means nothing without domain-specific context and engineering decisions:
What are the applicable regulatory and fiscal rules?
Is this built for a single professional or a 100-user enterprise? Which industry vertical?
What OS, platforms, and devices must be supported?
Which SQL database fits best, and are there licensing overheads?
Should the schema use BIGINT primary keys, UUIDs, or natural keys?
Does it require multi-currency and multi-language support, or is it optimized for a local business?
Who verifies that financial reports and compliance documents are legally and accounting-correct?
These questions apply to an ERP, but the principle holds true across almost any domain.
If true AGI arrives and can handle full-application architecture and edge-case validation entirely on its own, then software developers won't be the only ones affected—millions of white-collar professionals across every industry will be in the same boat. Until then, domain knowledge and system design are where the real value lies.
Don't throw in the towel on software development just yet—adapt your skill set to focus on architecture, context, and domain logic. That’s where the real value is shifting.
Best regards,
Lorenzo
P.S. AI assisted :)
Thank you Lorenzo !
Very good written comment. It is worth to remember next parts:
"The specific programming language you know or use is becoming far less important "
"If you master a specific business domain, know what it takes to build a robust application within it, and possess the technical skill to validate and refine AI-generated code, you will be fine "
"Domain knowledge and system design are where the real value lies "
"Adapt your skill set to focus on architecture, context, and domain logic. That’s where the real value is shifting"
My impression is that an IT background is still necessary—even when working with AI tools—to build a good and robust applications. The fact that non-programmers can use AI tools might hold true for simpler applications, but it is not enough for more complex ones. That is my experience after few months of using Claude Code Pro Sonet model. May be that better is with higher-paid models.
We shall see what the future holds for AI tools.
Hi Francesco
We share a copy of our source code with a German company (we are South African). They are a pretty big POS support company and they have maybe 5 to 7 000 terminals installed with our software. In South Africa we are quite small.
About 4 years ago I proposed a rewrite of the software to them, main reason being that I was just one guy heading for 60. I said I would build a team to look after the software and I came up with a 3 year plan to rewrite it, the main goals being to modernise the UI and derisk the source code by moving on from Harbour to 'modern' languages.
As I said we built a test harness and rewrote much of the software in Python (Web and local using FastHTML). The POS engine remained in Harbour and we decided c# was the best fit to rewrite it (dynamic type which actually is kind of like Harbour, strong typing, decimal type instead of floating point, flexible parameter handling (missing parameters, named parameters, default values), support for our interface dlls, good tooling (debugging), multithreading, multiplatform and many other minor wins.
I love Harbour and it has been very good to me, but with the best will in the world I do not believe that I can retire and leave a big partner with a product that cannot be maintained by a new generation of programmers.
I hope that answers your question, feel free to ask more.
--
Regards
Alex
--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/CADPHLr_Xg_%2BeW0VeyzkZGOeH8F0wMQC2rvkxBJQ4oSVoDsmFig%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/c54d46c1-e493-4b9f-9f4a-c4638fdd0474%40mweb.co.za.