MachineCode wrote:I always wondered why the executable created by PureBasic wouldn't automatically be of console type if the OpenConsole() keyword was used; and why it doesn't create a threadsafe executable when CreateThread() was used. Why do we need to turn these on manually when using these keywords? My suggestion: make them automatic, since the keywords are there and it's obvious that we want the executables to be of that type.
(You can even go one step further and do an automatic UseJPEGImageEncoder() if our sources use SaveImage() with the #PB_ImagePlugin_JPEG flag).

It may be a question of control for the user (us). I know what I want, so I create a console or GUI program.
If I want to support JPEG or PNG encoding or decoding, I include it in my application.
I can open an console from within a GUI program and I am able to open a GUI window from an console program.
If I use OpenConsole() in my code, it does not mean I want it to be a pure console application, and using CreateThread()
in my program does not mean automatically, I want to link to the threadsafe PureBasic libraries. If a programmer knows what
he is doing, he can use threads without need of the threadsafe PB libraries.
Your request would be nice for absolute beginners, but would take control from experienced programmers.
Most beginners are experts after 4 month with PureBasic, there are only very few people that still
would need the automatic control level after 1 year with PB.

I know, "BASIC" stands for "beginners all-purpose symbolic instruction language", but in reality experienced
companies use this very same BASIC to write real-world applications and make money with it, feeding
many hundred of thousands customers world-wide with apps and make big $$$. That's our job, as developers.
I want to have as much control as possible over my code, so please don't take away this level of control.
-1