Hey Harbour community! 👋 I asked an AI what we need to make Harbour competitive again, and here's the action plan it suggested. Let's discuss! 💬
🔥 7 Key Areas for Harbour's ModernizationNative async/await for modern I/O ⚡
Enhanced OOP (interfaces, mixins) 🧩
Optional static typing (TypeScript-style) 🔍
Modern data structures (native JSON, collections) 📊
Official package manager (like npm/pip) 📦
Better C/C++ interop (FFI improvements) 🔗
Modern toolchain:
Cross-platform builds 🖥️📱
Integrated debugger 🐞
LSP support for VSCode 🔌
Cloud SDKs (AWS/Azure/GCP) ☁️
Modern protocols (REST, gRPC, WebSockets) 📡
Database drivers 2.0 (ODBC/JDBC upgrades) 🗃️
WebAssembly target 🕸️
Mobile toolchains (Android/iOS) 📱
Python/Node.js bridges 🐍⚡
JIT compilation (LuaJIT-style) 🚀
True multi-core support 🧵
SIMD optimizations 🔢
Legacy modernization (Clipper → Harbour) 🏛️
Financial apps 💰
Embedded systems 🏭
Certification programs 🏅
Annual conferences 🎤
Showcase success stories 🏆
Code Example: Traditional vs. Modern Harbour
📊 Comparison Table:
💡 Top Recommendations:
Keep Harbour’s soul (performance + xBase) ❤️
Add modern features developers expect 🛠️
Target niches where Harbour shines 💎
What do you all think? Which of these should we prioritize? Let’s brainstorm! 🧠💥
--
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/30040857-8df8-434b-8b44-4807cc68a749n%40googlegroups.com.
What ChatGPT suggested for Harbour it can suggest for any other programming language, more or less.
ChatGPT suggestions is to have catch-all language. There is no such language, and it shouldn't exist.To view this discussion visit https://groups.google.com/d/msgid/harbour-users/812ff801-b081-40bd-8b4d-31192ac07348n%40googlegroups.com.
Hey Harbour community! 👋 I asked an AI what we need to make Harbour competitive again, and here's the action plan it suggested. Let's discuss! 💬
🔥 7 Key Areas for Harbour's Modernization1. 💎 Language Modernization
Native async/await for modern I/O ⚡
No thanks:
https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
--
Regards
Alex
Very interesting.
Harbour has threads, mutexes, background tasks and possibly timers. There is no distinction between synchronous and asynchronous functions IIUC. Async functions stop the execution of the current thread until end or timeout, and that's all. The entire program freezes if single-threaded.
It's up to the programmer to craft carefully the functions and build a system that keeps track and manages the threads, and that's not a simple task. Threads are executed concurrently in no particular order, so for example the instruction 1 of the thread 2 is executed, then the instruction 1 of the thread 1, then again a couple of instructions of the thread 2 and so on.
A good example is the web server uhttpd.
OK, threads are Evil, in some opinions, because while they do
work, in complex systems they can cause obscure bugs, etc. That's
to say: don't do too much with threads AND have a queue manager.
Small, well-defined threads designed to not interfere with
anything other are OK.
Anyway, for those who don't want to mess with threads, I wonder if it could be feasible to define a class PROMISE in Harbour...
Let's imagine a syntax like this:
MainQueue :={}
APromise := asyncDo( "myAsyncFn"
,"CallbackOnFulfilled","Callback>OnRejected", <...>) //
or use the functions pointers
@ 10, 10 say APromise:result //-> "Not Ready"
wait
Function asyncDo(cFn)
prom := PROMISE():new( cFn,cBackok,cBackko, <params> )
Return Prom
CLASS PROMISE
Method init(cFn) INLINE queue(cFn) SYNC
VAR result := "Not Ready!"
VarCallBackFullfilled := ""
Var CallbackRejectd := ""
...etc
Function queue(cFn,params)
If (varius checks)
z:=startThread(cFn)
aadd(MainQueue,z)
... <other stuff>
endif
return nil
Function myAsyncFn (params)
local lFound := .f.
nHdl := fopen("bigtext")
while <not eof>
<fread a chunk>
If <patternfound>
lFound = .t.
exit
endif
enddo
fclose (nHdl)
return <lfound>
Just to say, eh! eh! Harbour is so low-level and high-level
structured that on one side it is like a macro-C, on the other is
a "glue" that can put together an UI (of choice) to database
access and queries through external libraries or the integrated
dbf management. Pretty unique.
Disclaimer: I don't know if what I said has a sense!... Just an
old programmer's thoughts! :-)
Dan
--
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/08324224-e308-4681-9df9-d82013d6783d%40mweb.co.za.
One problem is new users looking at Harbour and getting started. Anyone looking at Harbour for the first time will as likely as not abandon the idea.
The Harbour website is its worst advertisement. They will see the main website containing a huge amount of information that is 20 odd years old, with
no ability to search and filter. Scrolling is slow and is not searching. Confusing version numbers with 3.4 available but 3.2 is advised/preferred. m.
Hello Vincent,
It's a pleasure to exchange thoughts like this.
I was tempted to invest my time and effort into PureBasic
(SpiderBasic for the web), but something held me back.
Interestingly, your comments now confirm my hesitation.
Indeed, Mahmoud explains things masterfully. Even at 63 years old,
I still hope to learn much from him and the members of the
official Ring forum.
Best regards,
Antonio F.S.
Asunto: | Re: [harbour-users] Re: 🚀 What Harbour Needs to Become a Modern Language & Regain Clipper's Glory |
---|---|
Fecha: | Sat, 9 Aug 2025 03:10:38 -0700 (PDT) |
De: | Cotswold GB <cotsw...@gmail.com> |
Responder a: | harbou...@googlegroups.com |
Para: | Harbour Users <harbou...@googlegroups.com> |
--
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/48a05181-65b3-43ef-b618-dcbc0ab6ebe7n%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/7289378c-2307-45f6-8966-6e1ae1e18027n%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/CADZi2kJ3swe-xeEhrAx-XeNJeTH2BUH4gKrTU7qyD%3DMQfO65Sg%40mail.gmail.com.
On the official website, you just need to press the "Improve this
page" button, and it will take you to the corresponding HTML file.
Best regards,
Antonio F.S.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/CADPHLr_srxjNMjh9eJtb0aZDATBAMJ9s2AEvnjdi5MT1DFmOFw%40mail.gmail.com.