Recent

Author Topic: Making a plea :)  (Read 6405 times)

silvercoder70

  • Jr. Member
  • **
  • Posts: 88
    • Tim Coates
Re: Making a plea :)
« Reply #105 on: October 07, 2024, 11:24:09 am »
It's not just universities... it would also help if businesses that develop/produce devices also provide apis in pascal. Not to say there are none, but the only one that I remember working with was Synway. In the telephony space, everything else was C/C++ based.

Many years ago (now) I wrote a TSP in Delphi (because that is what I had to use) ... I recall only finding one example which was too old. (There were enough code incomplete examples in C.) I was working with TSP versions 2.1 and 3. I'd be downvoted on Stack Exchange when asking a question, and otherwise stuck to working it out myself. Not looking for sympathy, this is just how it was about 10/15 years ago.
Explore the beauty of modern Pascal programming with Delphi & Free Pascal - https://www.youtube.com/@silvercoder70

VisualLab

  • Hero Member
  • *****
  • Posts: 569
Re: Making a plea :)
« Reply #106 on: October 07, 2024, 11:44:20 am »
And what specifically? That it's UTF-16? And doesn't MS itself state in its documentation:

"Wide characters encoded using UTF-16LE (for little-endian) are the native character format for Windows." (Support for Unicode)

Just because it's the windows native character format doesn't make the decision good. It's also the native character format to the JVM but Java the programming language is UTF-8 based. You can have high level languages using different concepts to their low level machine interfaces. UTF-16 makes sense for Kernels like Windows or low level virtual machines like the JVM because 1 char = 1 word makes things very efficient. But it's absolutely terrible for actual developers of high level applications that should interface with users.
The unicode space has codepoints for 100k chinese characters alone, not counting any other alphabets. A UTF-16 char can only hold 65k values. How is it solved? By introducing unicode spces, basically an additional information encoding how the unicode characters are encoded... But guys we totally solved codepages with UTF-16, we are fully international and don't have to exchange encoding metainformation anymore.

Delphi is not a language for low level kernel development, it's a language for interactive user facing applications. and there UTF-16 is a terrible choice.

I don't want to play Embarcadero's advocate, but wasn't the decision to use UTF-16 mainly due to the desire to "adapt" Delphi to Windows as much as possible? Yes, UTF-8 is commonly used on websites. But there are also window programs. Engineering software (especially paid) is often only available in English (for various reasons, not always technical). Besides, Chinese characters can also be written in UTF-16. I see criticism here of the type: "I prefer A because B is ugly" and "it's a corporation so I don't like them" (and I also don't like Embarcadero, but not because of UTF-16).

The problem with Chinese characters is broader, not just IT. These character tables are still being expanded (i.e. new characters are being created, e.g. for chemical element symbols). So the problem will grow (regardless of the UTF-8 vs. UTF-16 vs. UTF-32 issue). Children (and young people) forced to use this script (CJK, etc.) must spend more time mastering it compared to people using scripts based on alphabets (i.e. not only Latin, but also Greek, Cyrillic, Hebrew, etc.). This is the problem of being stuck in a very archaic system of writing texts. For example, the Turkish government decided at the beginning of the 20th century to abandon writing based on Arabic characters. The Vietnamese government did the same (not only for ideological reasons - communists). They "came out" quite well on this.

As for statistical calculations (and expensive packages like SPSS, Statistica), that's what R was created for (and has been available for many years).
I mean you can use R, there are specialized languages for everything, but whenever I worked with non computer scientists, e.g. I did my masters thesis in a project chaired by electrical engineers, or worked during my masters on some medical research, they all used python. Because to non computer scientists it's easy, intuitive and provides all the tools you need.

Is it really so widely used? Because I don't see it, it's more the media hype around it. As for intuitiveness, that's not true. For non-IT people, Python is as intuitive as C++ (meaning: they don't care, because these people are not programmers). I've come across the expectation that the software will allow you to use a GUI and won't require any programming. Or someone else will calculate something for them and (if necessary) write a program/script and then pass on the results.

As for the use of Python for calculations by mathematicians and physicists, I would rather disagree. There is Matlab, yes, its licenses are expensive. Octave and Scilab have existed for many years. As for Python's mathematical libraries - aren't they written in C (and C++)?
Mostly even fortran. Python is a glue language. You don't write big algorithmis or stuff in it, you use it to take libraries like numpy or pandas, which are backed in Fortran or C/C++ and just use python to organize the data you want to perform the computations on. The libraries are the machines that do the work and python are the assembly line putting the things together.

And it's really great for that. If your problem is: "I have a bunch of output files with data and need to crunch the numbers using standard tools and do some plotting", python is absolutely perfect. Thats the reason why it became the language of choice for machine learning/AI. The heavy code is done in libraries like torch, and the actual models are only like 100 lines of glue code to take some activation functions and back propagation methods and glue them together into the torch driven AI library.
In the time it would take me to setup a Pascal project to develop some AI image recognition model, I'm probably already finished in python, because setting up a neural network is just a few lines of code.

In my opinion, Python is messy and primitive, lacking many important features. For example, what bothers me the most is the lack of types, constants, poor class emulation, and the need to use whitespace to create code blocks. Additionally, there is a mess of tools and libraries when running scripts. The need to configure the entire eco-system on each computer where you want to run something Python. It is too much time wasting. And no, Docker (or other such "inventions") are not a solution to this problem, they are just a clumsy and naive attempt to get around a serious problem. Problems are solved permanently and effectively, not by applying a thick layer of putty so that the cheapness does not show through.

The JavaScript problem is somewhat mitigated by the presence of TypeScript. That's why "somewhat" because various computer baboons try to "glue" monsters using "Electron" and similar "inventions".
I mean typescript solves some of the problems but because it's a superset, the underlying problems are not solved. Things like that they have a max, min, etc. functions and then Math.max, Math.min, etc. which are the same but work slightly differently (when it comes to IEEE edge cases like NaN, Inf, etc.) or that you have linear equality with == and all that fuzz. It's just inherently broken.

Also I personally don't think electron apps are broken, VSCode is an electron app and by now my favorite editor. It's that bad electron apps are broken. When someone knows what they are doing (or in the case of VSCode, Microsoft just throwing enough money at it), it works fine. A clean VSCode starts up in around 100-200ms. The reason most electron apps are slow and bloated is because they are badly designed, slow low performance code, with thousands of dependencies, etc.
Thats the real javascript hell, the fact that 70 million people a week download a dependency is-number, which at it's core is nothing other than "!isNaN(var)" (or "!Math.isNaN(var)" because Javascript xD)

This is caused by the simple laziness of people to learn. Nothing more. I have a very unpleasant experience with using "programs" written using HTML/CSS/JS (Electron, etc.). It's a poor emulation of real software. Moreover, it is bloated and resource-hungry in its operation. I agree that writing an "application" using Electron is incomparably easier than using, for example, Qt in C++. But if we go this way, then everything will be manufactured this way in a moment: houses, household appliances, cars, etc. From cardboard, string and plastic foil. This is technological regression, not progress.
« Last Edit: October 07, 2024, 12:00:26 pm by VisualLab »

VisualLab

  • Hero Member
  • *****
  • Posts: 569
Re: Making a plea :)
« Reply #107 on: October 07, 2024, 11:57:34 am »
As for the use of Python for calculations by mathematicians and physicists, I would rather disagree. There is Matlab, yes, its licenses are expensive. Octave and Scilab have existed for many years. As for Python's mathematical libraries - aren't they written in C (and C++)?

At least some (CAD-related etc.) stuff is written in FORTRAN.

Yes, I know.

The difference is that the Python community has made sure that it knows how to wrap C, FORTRAN and- in particular C++, while Object Pascal has little interest in interworking with the latter.

But this wasn't done by the community, only a small group of experienced people (probably in corporations). I suspect that Object Pascal doesn't even have 1/100th of that number of programmers. So the problem is not with the Object Pascal programmers.

Quote
On the other hand, a student or PhD student knows that no one will pay them for this, and later in life they will probably do something else anyway. So why should he make an effort?

Bad argument. Test equipment companies like Tektronix and HP (in their prime), high-end silicon companies like Intel, Xilinx and Altium, and CAD vendors have always offered good deals for university departments and often individual students. The logic is that very often a postgrad joining a company will have some say in what equipment and software is used- and that's particularly the case in a new niche where well-funded startups are common.

And they use Python en masse? Or C and C++? I bet Python is just an add-on.

So. Is there still anything at all that we can do to raise the profile of Object Pascal in universities? Because it seems to me that that's something that Borland walked away from when it decided to start focusing on enterprise-scale development tools.

Somehow, an Object Pascal programmer has to take the place of the CEO of Microsoft or another IBM :D

Seriously. Human development (especially technical) usually follows very winding paths, often with stagnation, dead ends or regressions. This has been very clearly visible for at least 8-10 years (and not only in computer science).

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11930
  • FPC developer.
Re: Making a plea :)
« Reply #108 on: October 07, 2024, 12:11:49 pm »
I don't want to play Embarcadero's advocate, but wasn't the decision to use UTF-16 mainly due to the desire to "adapt" Delphi to Windows as much as possible? Yes, UTF-8 is commonly used on websites.

I agree with you, the answers from the others are revisionist. Back when this was decided (2007 or even earlier when Project Tiburon started), UTF8 was still only considered a document (storage) encoding, and APIs and strings in memory were still considered to be UCS2/UTF16.

 

MarkMLl

  • Hero Member
  • *****
  • Posts: 7999
Re: Making a plea :)
« Reply #109 on: October 07, 2024, 12:24:30 pm »
Quote
On the other hand, a student or PhD student knows that no one will pay them for this, and later in life they will probably do something else anyway. So why should he make an effort?

Bad argument. Test equipment companies like Tektronix and HP (in their prime), high-end silicon companies like Intel, Xilinx and Altium, and CAD vendors have always offered good deals for university departments and often individual students. The logic is that very often a postgrad joining a company will have some say in what equipment and software is used- and that's particularly the case in a new niche where well-funded startups are common.

And they use Python en masse? Or C and C++? I bet Python is just an add-on.

Sorry, you missed my point. Companies like Tek/HP/IBM had university and student deals on the assumption that a student thoroughly familiar with their products would result in companies buying their products. So your "later in life they will probably do something else" doesn't apply to test equipment etc. and there's no reason it should apply to computer languages.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Warfley

  • Hero Member
  • *****
  • Posts: 1734
Re: Making a plea :)
« Reply #110 on: October 07, 2024, 12:57:47 pm »
So the problem will grow (regardless of the UTF-8 vs. UTF-16 vs. UTF-32 issue).
But theres a difference between maybe in the future running out of codepoints, and knowing while you write your standard that you don't have enough codepoints. When the UTF-16 spec was written they already knew that it is not sufficient, this is why unicode planes exist. Microsoft has an excuse, they started implementing before UTF-16 was finalized, and before UTF-8 was available. Embarcadero doesn't

And if your goal is to create something to get rid of codepages and then re-introduce code pages agail (granted in a slightly less awful form), you failed. Except for the MS .Net languages and Delphi, no other popular language uses UTF-16. C, C++, Java, Go, Swift, Rust, etc. they are all UTF-8 (often with UTF-32) compatibility  based. Microsoft was in a hurry and had to go for UTF-16 because UTF-8 was not finished at the time they developed their NT kernel. Embarcadero had over 10 more years to look at the situation, at a moment where anyone else said that UTF-16 was a failure, and said: Failure you say? let's go!

And it's not hard to have transparent conversion between UTF-8 and UTF-16 so you can work with the underlying APIs. Java does this (as I said the JVM is UTF-16 based, the language is UTF-8 native), FreePascal does it, and hell even Windows does it, because even Microsoft noticed that everyone else uses UTF-8 and started with Windows10 to make all ther ANSI String APIs UTF-8 compatible (which internally they just translate to UTF-16). So compatibility to Windows is a very bad reasoning, because conversion between UTF-8 and 16 is completely trivial. If embarcadero want's, I give them the function for free:
Code: Pascal  [Select][+][-]
  1. CodePoint := DecodeUTF8(sequence);
  2. Plane := CodePoint div (2 shl 16);
  3. u16Char := CodePoint mod (2 shl 16);
I believe if everyone else can, even the developers at embarcadero can do this.

I mean you can use R, there are specialized languages for everything, but whenever I worked with non computer scientists, e.g. I did my masters thesis in a project chaired by electrical engineers, or worked during my masters on some medical research, they all used python. Because to non computer scientists it's easy, intuitive and provides all the tools you need.
At least in academia, yes it is. When I left academia, every engineering and medical chair has made their switch to python. No more R or Matlab. Within like 4 years all alternatives nearly completely died down and as I was working at some of these chairs, I can tell you it werent nefarious reasons, it was just that Python was the new thing that all the students wanted to work with. Python has just won.
And just from that I don't think that it can be a bad language, when within a few years it completely captures multiple domains (and this was all prior to the big investments of MS and co), all by itself, there must something be to the language.

For example, what bothers me the most is the lack of types
Good news then for you, this was introduced just 10 years ago with PEP 484 in 2014.
Code: Pascal  [Select][+][-]
  1. # Untyped
  2. def Add(x, y):
  3.   return x + y
  4. # Typed
  5. def Add(x: int, y: int) -> int:
  6.   return x + y
While not enforced by the runtime, if you use a compiler/linter like mypy it will not compile.
constants
Again, PEP 484 introduced final types:
Code: Pascal  [Select][+][-]
  1. MY_CONST: Final[int] = 42
poor class emulation
Because it's not an OOP language, it was never intended to have classes, at least not in the OOP sense. Python is a templating language, which you can use to emulate OOP, but it's correct, if you want to do OOP, you should use an OOP language. But thats like driving your car into the lake and then complaining to the manufacturer that it's very bad at swimming.

The need to configure the entire eco-system on each computer where you want to run something Python. It is too much time wasting. And no, Docker (or other such "inventions") are not a solution to this problem, they are just a clumsy and naive attempt to get around a serious problem. Problems are solved permanently and effectively, not by applying a thick layer of putty so that the cheapness does not show through.
May I remind you that for the question on how to deploy Lazarus applications on Linux on this forum the usual answer is either: Let the user install all the dependencies according to their distro
or: Use a container like docker/flatpack/snap, but there is nearly no documentation on doing that so good luck.

I can't find the last thread of such, but just a few weeks ago someone asked that question and did not get a sufficient answer. Deploying software with dependencies is hard. And tbh. it's much harder for Lazarus, where you need to install native libraries, than it is for pyhton where pip does all the work for you

This is caused by the simple laziness of people to learn. Nothing more. I have a very unpleasant experience with using "programs" written using HTML/CSS/JS (Electron, etc.). It's a poor emulation of real software. Moreover, it is bloated and resource-hungry in its operation. I agree that writing an "application" using Electron is incomparably easier than using, for example, Qt in C++. But if we go this way, then everything will be manufactured this way in a moment: houses, household appliances, cars, etc. From cardboard, string and plastic foil. This is technological regression, not progress.
Buuuut... it works right? Today there are more systems relying on this "bad" technology than there has been total software in circulation back in the 00s, when big heavy OOP languages where the shit. And it works really well. Yes my TV works with web technology, but it works fine and has so for the past 5 years, and I expect it to still work fine for the next 10.
Meanwhile in the 2000s all of that stuff was running Java, a language built around the software engineering best practices of the time, and tbh. only looking at the products, not considering my personal oppinion about the technology I only see improvements, not regression.

Can you really say that everything is being developed worse, when the final products are just getting better and better? To me it seems that this is perfectly well suited for the job. My TV would not be better if the apps on it were written in C++ or Java instead.

Warfley

  • Hero Member
  • *****
  • Posts: 1734
Re: Making a plea :)
« Reply #111 on: October 07, 2024, 01:12:14 pm »
I agree with you, the answers from the others are revisionist. Back when this was decided (2007 or even earlier when Project Tiburon started), UTF8 was still only considered a document (storage) encoding, and APIs and strings in memory were still considered to be UCS2/UTF16.
It was known in the 90s while the UTF-16 spec was written, that it fails at the sole problem it set out to solve (mapping all codepoints to a unique character). The decision was the following: "UTF-16 is broken, but most of our customers are american or european, for which it is sufficient."

That is a valid buisness decision, and I do not critizise Embarcadero for being bad at buisness. But whats good for buisness is not necessarily good for the language.

Joanna from IRC

  • Hero Member
  • *****
  • Posts: 1198
Re: Making a plea :)
« Reply #112 on: October 07, 2024, 01:35:52 pm »
It's not just universities... it would also help if businesses that develop/produce devices also provide apis in pascal. Not to say there are none, but the only one that I remember working with was Synway. In the telephony space, everything else was C/C++ based.

Many years ago (now) I wrote a TSP in Delphi (because that is what I had to use) ... I recall only finding one example which was too old. (There were enough code incomplete examples in C.) I was working with TSP versions 2.1 and 3. I'd be downvoted on Stack Exchange when asking a question, and otherwise stuck to working it out myself. Not looking for sympathy, this is just how it was about 10/15 years ago.
How come there were no forums for delphi like this forum to get help in or s delphi irc channel back then?
✨ 🙋🏻‍♀️ More Pascal enthusiasts are needed on IRC .. https://libera.chat/guides/ IRC.LIBERA.CHAT  Ports [6667 plaintext ] or [6697 secure] channel #fpc  #pascal Please private Message me if you have any questions or need assistance. 💁🏻‍♀️

MarkMLl

  • Hero Member
  • *****
  • Posts: 7999
Re: Making a plea :)
« Reply #113 on: October 07, 2024, 02:26:48 pm »
Because it's not an OOP language, it was never intended to have classes, at least not in the OOP sense. Python is a templating language, which you can use to emulate OOP, but it's correct, if you want to do OOP, you should use an OOP language. But thats like driving your car into the lake and then complaining to the manufacturer that it's very bad at swimming.

However, I think it's fair to suggest that very often classes are overused. In fact users of languages such as C++ and Object Pascal seem to think that just because OOP was one of the guiding principles of the language it's absolutely essential to use it: even if a class is only instantiated once, and there are few abstraction/hiding advantages to be had.

So a language which can have its "look and feel" massaged to present some semblance of familiarity to a user habituated to a specific domain has a definite advantage.

Quote
I can't find the last thread of such, but just a few weeks ago someone asked that question and did not get a sufficient answer. Deploying software with dependencies is hard. And tbh. it's much harder for Lazarus, where you need to install native libraries, than it is for pyhton where pip does all the work for you

I believe I know the thread: the user went quiet rather than answering questions he obviously found challenging, and speaks highly of Joanna for putting him in touch with somebody who could help on IRC.

However the problem of not being able to get an up-to-date FPC/Lazarus from distreax's repos is a real one, and one which was came to the fore a few days ago when I found myself wrestling with the Deb-11/12 and FPC-3.0/3.2 transitions.

Perhaps there should be regular Docker (etc.) builds, plus some way of giving a user a choice of whether they want to upgrade the Lazarus version in a Docker container or run a separate one.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

rvk

  • Hero Member
  • *****
  • Posts: 6572
Re: Making a plea :)
« Reply #114 on: October 07, 2024, 02:28:35 pm »
How come there were no forums for delphi like this forum to get help in or s delphi irc channel back then?
How do you mean? There where (and currently are) forums for Delphi.
Borland even had its own forum (which was terminated). (It was even mirrored via usenet)
Eventually Embarcadero transformed this into their "blog" counterpart (which was hideous).
Not sure if that one still exists.


MarkMLl

  • Hero Member
  • *****
  • Posts: 7999
Re: Making a plea :)
« Reply #115 on: October 07, 2024, 02:32:41 pm »
How come there were no forums for delphi like this forum to get help in or s delphi irc channel back then?

There were, but not necessarily free: it was the .Com era and every BBS op thought he could make a mint by monetizing it. Cix was certainly very good indeed in the UK, and in the US there was Bix, Compuserve and so on. There was also Usenet, but you needed some connection with somebody who could provide you with a gateway i.e. either a university or Cix etc.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Joanna from IRC

  • Hero Member
  • *****
  • Posts: 1198
Re: Making a plea :)
« Reply #116 on: October 07, 2024, 03:06:15 pm »
That’s really strange that the makers of Delphi would not make easy to access platforms to promote their product. How much did it cost to talk to other delphi programmers?
✨ 🙋🏻‍♀️ More Pascal enthusiasts are needed on IRC .. https://libera.chat/guides/ IRC.LIBERA.CHAT  Ports [6667 plaintext ] or [6697 secure] channel #fpc  #pascal Please private Message me if you have any questions or need assistance. 💁🏻‍♀️

BrunoK

  • Hero Member
  • *****
  • Posts: 623
  • Retired programmer
Re: Making a plea :)
« Reply #117 on: October 07, 2024, 03:08:36 pm »
UCS-2 vs UTF-8

I disagree about UCS-2 being solely addressing western world needs.

If you take a look at what actual languages are covered by UCS-2, it is quite impressive and did cover, more or less well,  see https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane, a very large specter of users.

For understandable money reasons, Microsoft had to be able to satisfy as many as possible paying customers and in this respect could could go their own way without depending on unending committees. (If depending on committees, we would still be using typewriter ouput in ASCII 7, or the various 8 bit code pages).

One of the great advantage, in my view, of UCS-2 in the 90's was to open software distribution in many local character sets without having to handle too many code variants.

Also, in databases that had mostly fixed length text fields, that put to rest the indeterminate length of a string representation like in UTF-8.
To my knowledge, there aren't many Sql DB's that have gone the SQlite direction of having everything free sized and as packed as possible.

Sorting strings in UCS-2 or handling parallel list of characters, such as a stream of unaccented characters in ascii-7 (8bit) matching a stream of non transformed characters is much easier with UCS-2.

Also at the time the UCS-2 choice was taken, all we had were something like 300Mhz computers (or worse). Handling UTF-8 strings requires a lot of processing.


rvk

  • Hero Member
  • *****
  • Posts: 6572
Re: Making a plea :)
« Reply #118 on: October 07, 2024, 03:21:44 pm »
That’s really strange that the makers of Delphi would not make easy to access platforms to promote their product. How much did it cost to talk to other delphi programmers?
They did... in the beginning.
But eventually, during multiple takeovers, it became somewhat of a money and stability issue.
Also... the platform for the forum was so unstable and slow that lots of times it went offline for months (much like their online-services are even now).
The Embarcadero/Delphi and online combo is really bad (which is ironic for a software company like Embarcadero).

Embarcadero isn't anything like the old Borland was.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11930
  • FPC developer.
Re: Making a plea :)
« Reply #119 on: October 07, 2024, 03:53:23 pm »
I agree with you, the answers from the others are revisionist. Back when this was decided (2007 or even earlier when Project Tiburon started), UTF8 was still only considered a document (storage) encoding, and APIs and strings in memory were still considered to be UCS2/UTF16.
It was known in the 90s while the UTF-16 spec was written, that it fails at the sole problem it set out to solve (mapping all codepoints to a unique character). The decision was the following: "UTF-16 is broken, but most of our customers are american or european, for which it is sufficient."

 It was the default API string. Even QT used utf16 at some point iirc . Embarcadero as a bit player besides giants like Microsoft and Oracle and simply conformed.  Windows didn't even support utf8 for API purposes till 2019. Pretending that Embarcadero could go an own course in 2007 is not realistic IMHO.
 
Quote
That is a valid buisness decision, and I do not critizise Embarcadero for being bad at buisness. But whats good for buisness is not necessarily good for the language.

IMHO the problem is less the decision, but the fact that Delphi language can simply scale from pretty low level till pretty high.  Whatever the outcome people would cut corners to convert their codebases. Low level corner cutting is a Delphi tradition.

But any heavier abstraction that prohibited that would have meant the new Delphi was dead in the water. Compatibility is everything, and this was already a pretty big break.

 

TinyPortal © 2005-2018