Pascal / C stuff..
Freepascal:
I just tried it and compiled hello new word with it for fun and my Antivirus Avira though that is some virus,i guess that if it would be more used on marked, that they would exclude that in their rules..
By multimonitor, etc.. i ment only it works under modern Windows, DOS stuff is not fully supported on modern Windows and use it with Dosbox or in Virtual machine is worst than native use.
FalcoSoft wrote:The question is why not? More precisely why do you think it cannot? It seems you miss the point how native Windows compilers work. Windows is a bunch of libraries. These libraries (core functions in kernel32.dll, user32.dll, gdi32.dll, comctl32.dll, comdlg32.dll , ole32.dll etc.) export the functions a program can use. If a new feature is added to Windows it means either a new library or a new function in an existing library. Even an older compiler that was written long before these new Windows features added can use them, only a new import unit is needed for the new functions.
There is no new MS supplied midleware/CLR runtime needed, you just need to know the interface (parameters etc.) of the new functions from MS documentation and you have to write a proper import for them (of course newer versions of FreePascal/Delphi compilers include the import files and components necessary for new features built-in).
The compiled executable is a real x86/x64 binary that can talk directly to Windows libraries without an intermediate runtime.
Hmm is never needed to understand this deeply. I used Visual Studio or sometimes for smaller stuff Mono develop or some middleware were not needed to care, how exactly with connected with rest of Windows.. i have to know which version of runtime or redistrutables are needed to for users to execute final app, but i though that there would have FreePascal some problems if it does not have problems, great.
FalcoSoft wrote: I think it's mainly because if you do not use the developer tools of the platform owner you are a 2nd class citizen. You have to putter with many things and make many things yourself. But once it's done it's yours (even for later projects) and it works the way you like it. If you use the platform owner tools (Windows ->MS Visual Studio, Android -> Google Android studio, IOS, OSX -> Apple Xcode ) you get everything ready-made. But being a 2nd class citizen has advantages too: When you have to write your own stuff instead of getting it ready you will have a deeper understanding of how the used API works and overall how your whole project works.
So for my hobby projects I never feel it as a disadvantage. In my free time I enjoy tinkering/optimizing or writing my own ports from C code or import units/components from scratch. There's no rush to market 😀.
And contrary to my average company projects (that nowadays are rather Lego-ing/Gluing and more than 50% of the project's code is not written by the project's programmers but downloaded by Nuget, Npm etc.) I really know what part does what and when a bug is reported I have a much better chance to fix it myself without having to wait for someone else since it's my own code.
I meant it to the past too, i mean time before Windows where main platform, performance heavy thing as OSes, games where still mainly developed in C for some reasons. Yeah know you are much more pressed to use MS stuff on Windows.
I understand your approach, i make sense, if your scope is reasonable - i mean, i still know guys which are able to keep up with development with their own web frameworks or with some desktop / 2D tools apps. Its nice to have low level understanding and you can do lots of nice stuff in area, where lots of people would get stuck or say that is not possible.
There are also some big third party components, plugins which have to be compatible, supported etc.. and no way around it, at least in games.. because you would again develop the wheel.
I know lots of guys which tried to write their old video games engines, at some time 1995-2002 or sometimes thing like that i was possible to made competitive stuff in small team, but after that all except one very, very clever guys failed and embraced some proven technology or have to go to big companies. That only guy which still keep up, had to move out of games and make specific tools for some designer and architects stuff and have to train own people to use it and deliver the most of the project, or it least heavily support external users.
I was lucky that stopped with own engines early with Quake and discover that for me its much more fun to design than coding, im still able write some small stuff for myself, mostly some data conversion tools. Otherwise im just part-time mercenary for short projects and most of the my project are using some specific API / frameworks.. which are not usefull for other projects.. and my advantage is that im able to adapt and i have general overview on different layers.. but coding is usually only smaller part of my work, otherwise i do some analytic stuff.
In games if i have time, im still able to do game-play development, what is usually glorified scripting at best and with evolution of engines its less and less about coding and more about system design - the most of engines now have some flow diagrams visual programming stuff or some slow Lua, Python etc.. scripting lang support for game world objects manipulation / settings.. and if you really need to some performance heavy things, they could be moved to C. I never was particularly obsessed by 3D rendering, physic or other stuff which would need more advanced math or science, or algorithmization / code structure itself, but its good that some guys are and its good to have them in team:)
That balance between scripting capabilities and low level engine combination could seem to be easy to solve, but on previous gen of HW / consoles.. the most of major engines had problems with that, so make some big stream-able worlds with lots of objects was almost unseasonable problem, most of games had smaller corridors, levels etc.... now its much better, but still some strange performance hiccups are generated by that.
Thanks for lots interesting info.
Update: Good benchmarks for lang / compiler speeds, i saw a lots of benchmarks with different results, i really dont know which are best ones.. I tend to preffer something more complex, problem with Pascal is that most of benchmarks are ignoring it.. It really depends on use case. For example i know during searching find this.. there is big variability - https://github.com/unixpickle/Benchmarks and its lots of results are missing big picture view, for example Java could be fast, but could consume much more memory.. and even if not performance could be fine until is garbage collection executed and if i would like to use it for game, i cant afford whole app freeze for tens of ms and JVM tunning is not easy task and, it could be probably adjusted for games to be fast enough, but overall performance would be probably suffer.
Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.