Hi,
On Mar 1, 2:58 am, Bopdji Shah <
bop...@gmail.com> wrote:
> The subject of the discussion is not about freezing Harbour at Clipper
> level, but how to use the STYLE of programming invented by dBase and
> Clipper. I have to keep on bringing in the word dBase because it was Ashton
> Tate group which started the revolution, and Clipper was merely a late join
> in.
You can find my answer to that in my first reply. Such dBase
style commands can be add anytime by anyone, even locally
for yourself or provided as a 3rd party header for all users.
So far nobody needed it apparently, so no time was spent
on it.
> That programming style allowed use of multi word commands like SET TALK or
> APPEND FROM. Notice the separate words? Why did Harbour have to go for
> underscore command words such as HB_PROCESSRUN() is beyond my comprehension
> when words like HB PROCESS RUN would have been OK. So dBase whilst sticking
> to C type usage made it more user friendly with multi words like INDEX ON
> and many more.
My personal opinion on commands is that they have several
drawbacks while I just cannot see much of the cons.
Cons:
Much more typing
No intuitive way to return values
Sometimes hard to remember parametrization
Not possible to combine them in a chain
No efficient way to morph the command based on input parameters
Inefficient (gets translated to functions internally by PP, many
times uses macro)
Harder to control what exact code gets generated.
Pros:
Maybe easier to remember for some users and in cases the command
has many optional parameters.
Your personal milage may vary, and also for some purposes commands
may suite better (for example defining GUI elements), for some others
it's less useful (file I/O) and for some purposes it's not even
possible
to use commands (math functions).
It may also be irrelevant from a technical perspective, but Clipper
departed from command based programming in the early nineties,
and I can see no other modern/living language which would have
endorsed the concept to any meaningful extent. In fact Harbour
(and other xbase dialects) is a rare example where commands are
still available as an option, which is good.
> I do not see Windows (whether Microsoft or X windows) as anything more than
> a practical interface. In dBase we had input command and we waited for user
> input and some file commands which instructed the file system to do
> something and Windows is no different except that it uses toys such as mouse
> and mouse movements. I have personally implemented a DOS level "listview"
> type of interface in some programs and have had keyboard inputs to guide up
> and down the list. I see the scroll bar as more elgant and more user
> friendly way, but keep the implementation of it and the usage of it simple.
> The DOS DIR gives a list of files and the Windows method also gives a list
> of files - keep it simple, so that the programmer can migrate and be
> comfortable with (x)Harbour. Even when I knew how to implement a Listview
> control in DOS using PGup PGdn keys etc., when I changed to HTML, I welcomed
> the Javscript that lets me do it a bit more elegantly. And I want to
> welcome Windows Listbox with the same enthusiasm, but sadly I have not been
> able to welcome Minigui with as much enthusiasm as was expected of me, the
> application programmer.
Windows and XWindow are two different things, first is an OS with a
GUI,
second is a GUI engine. Anyways there much more into these OSes
than the GUI.
BTW, MINIGUI uses commands, it was one of its primary goals.
> So please understand - I am not against change or innovation. I am against
> complexity and requirement to change programming habits in a big way.
> If I was against inovation and new technology, I would still be programming
> in machine language of Z80 as I did in 1974! But I accepted innovation to
> BASIC and to dBase and to HTML and GUI and now to multi database Cloud and
> multinational Unicode divorced from 8 bit to 16 and 32 bit and at each step
> I was and remain ahead of the masses and will remain so.
>
> You said: *"Harbour is not about Windows intricacies, its core APIs
> don't contain anything Windows specific." *
> I disagree to the extent that Windows is not just a GUI interface, but it
> controls everything - files, networking, Internet access, storage of
> variables., etc., etc. You have to look at some more innovative techniques
> of storage of variables to realize the enormous disadvantage of Windows
> method of storing data. But we are dependent on it.
All this is irrelevant because these Windows specific
features are all abstracted and presented to you via
portable interfaces, so they can work the same way
also on a Linux system f.e.. Only if you use hbwin library,
you will meet with Windows specific "intricacies".
> In fact, the first change I am urging is to go totally Unicode in all string
> and related functions and allow enough space as Microsoft Windows is still
> very leaky (memory leaks!). Whether you choose 16 bit LE or 32 bit or go
> the Linux route of 8 bit UTF-8 is your choice - I would suggest for sanity
> and future expansion a 32 bit Unicode as the internal standard for Harbour -
> use it the same way as Microsoft interfaces to all different character
> formats using the 16bit LE standard internally. The change I am suggesting
> is fundamentally more innovative and sensible than migration in 1985 to
> Windows or X windows which was just a cosmetic makeover. Then Harbour will
> be ready to migrate outside of Europe and Brazil.
We're planning to add internal UNICODE support.
There has been a lot done in this area already.
Viktor