i wrote something about Microsoft in the PureBasic Forum, and here also.
Go and read it. Its about the "design flaws" of Windows 10. And they are numerous.
My conclusion was "Any windows since Windows 2000 was worse then the windows before".
Ok, that my opinion.
Now back to PureBasic. I think that PureBasic developed much better then windows.
I did never regret that i bought it - possibly as one of the first customers.
And i possibly would buy it again because its very cheap for what it offers.Besides that it has some design flaws. Before i start and you feel insulted - which is NOT my intention,
get this book and read it.
Book on compiler architectureFor me they are openly visible. Because i come from PowerBasic.
But if you come from Visual Studio - it will not be of much difference.
In PowerBasic we have an unbelievable backwards compatibility since at least version 6.
In PureBasic - and i watch this for long time -
with each new version, you have to watch for all user-libraries to be updated.
Problem is that many of them are not beeing updated.
In my opinion:
If the "core compiler/assembler" would have been designed professional,
not from a hobbyist, that Fred was at this time when he started PureBasic -
the compatibility would be much greater over the years.
And we would not have the architecture like it still basically has.
Of corse now he changes here and there with any version a bit to handle the shortcomings.
And exactly these small architectural changes break the compatibility.
Normally a clean cut and a clean redsign - possibly with a new name (and an new licence?)
would be the way out of this.
Instead of doing a clean cut and having a real "compiler core" that does not need to change ever.
Just an example:
The handling of local variables "on the stack" prevents the use of "CALL RET" inside prodcedures.
Go out and search a second compiler using this system.
You will never find one, because this is just not "how things are done".
Nobody will implement it like this.
If you don't believe me get a university course on compiler building. Thats just what he never did.
So besides all the good things (libraries etc.) there are some basic desgin flaws that
he defends like they are for any reason.
But the reason is just historic and its not easy to change.
Because it would need a clean cut and a clean system-design.
And now he changes here and there and as a result these changes prevent a better compatibility betwen the versions.
I think you need to understand that i am coming from a scientific standpoint.
Read in the PureBasic Forum. I am definitely not alone with this opinion.
These things that you learn in university have been proofed to work over the last years.
Did you know that "compiler building" is already a science?
CPU's are designed in a way to support building of compilers.
In some places - and that includes the handling of local variables. the construction of Loops and conditions, at least there you have to hold the "rules".
Because they are built in the CPU and ANY compiler out there will also do it in the same way.There are rules you can learn, these are scientific standards.
You can't make a program that does not support floating point number in a FOR .. NEXT Loop and say "this is a compiler".
Your professor will kick you out of the course in that schoool. Its just a Basic design flaw.
Why should it not be allowed to talk about this?
If you say "Ok, its a Macro Assembler" then the same program will be Ok.
But its just not a "state oif the art" compiler - and you will also not find a second one with these design flaws out there.
Other then in hobbyist projects. Thats something you can try yourself.
Go and find one.
PS: I should really write a book on that :-) while there are already some ...