RayeR wrote: On other hand, even DOS programming can avoid messing with assembler, ISR handlers etc, it's just enough to choose suitable libraries which do it for you 😀 even no heavy pointer porn is not needed.
Here we need some details, pleas..
Otherwise:
1) Too high-level language argument
You can argue that even C is too highlevel in comparision with ASM. So called classic(to exclude some functional lang, visual tools to generate code, which existed even in 1980s) high level languages give you for most operations same level of control - commands / syntax is same / very similar, there is no whole new level of abstraction or something like that (than is mainly fuctional lang / visual lang thing).. only quite small subset of funkcionality is changed and its simply do some things automatically.. but for example with C#, if really need lowlevel.. you everytime can use some DLLimport and call its function.. or unsafe block method where you can use Windows C++ code and bypass Garbage collection. Even with C# if need ASM, you can use it in unsafe mode, and if need to check code on ASM level, there is .Net framework Ildasm.exe tool as part of SDK, which can show of your binaries as list of ASM commands.. I thing that any big language probably has some possibility how to add some C/ C++ code, use C/C++ wrapper..
2) No lower access to HW, well i dont miss it at all, if there is some good highlevel API, its usually good enough... and it same you more time, than you would spend on low level stuff and learning it.. that is whole sense of APIs.
If would have same stuff for DOS i would use it, i guess that Allegro is something like that within limits of that some DOS framework can do, that why it is/was so popular you dont need to reinvent the wheel.
I high that much better OS stability is good trade of for lowlevel access. As power user i dont really miss almost anything.. i dont need lowlevel putpixel or send some data to some magic address to play the sound.. if have Win API or .Net API, DirectX, DirectInput, Vulkan etc for it. I found only few corner cases like for example low keyboard access for key combinations, like for example detect only function key press without any other characters in on Winforms applications.. but there are work libraries arounds for that.. which you can use as any other more user friend stuff, only problem is found them and integrate them or found some framework, engine where they already are integrated.
When we discussed with, what lowlevel stuff is really missing.. i get answer about - direct Serial / parallel port data sending and micro controller programming.. and that USB protocol is not good for it.. or that USB programmer is expensive.. that i would say logical because there is small audience for them.. there are not complex from HW perspective, they dont need some faster fast cpus etc.
For such stuff from highlevel perceptive still as ideal to use Virtualization.. because into virtual machine you cant any old OS is needed for low-level stuff.. and make virtual machine as from point of view of target programmer hardware as old physical machine.. If virtual machine crash no big deal you can restart it, without crash of whole computer with primary OS, where lots of windows is opened and need of reboot, lost of abitility to work for free minutes etc.
Only thing which i dont know how mature is Vmware / Virtual /Qemu code for serial and parallel code emulation.. but even if not good.. QEMU and Virtualbox should be open source so its not impossible to improve it and make it finnaly working, i guess that is less complex than make Sound Blaster or GPU emulation working for virtual machines.
3) Too old technology.
Even Java is now quite old - 25 years, .Net is now 18 years or something like that. I thing that nobody expect that with newer language you get features which are not available on OSes.
People as i want only to use already available Dos features with language which for convenient for our coding for price of lesser performance, but with advantage of faster development, that all. If you already have favorite language its annoying learn some low level stuff only because of Dos targeting.. transition to Dos development is much more annoying. I had time in last to 2 months read some new C++ book which paradoxically ignored all new Windows and MS stuff and just aim to C/C++ console apps. I can say i will not have to, i will really avoid that stuff.
My reasons are quite same why some people not want to use C++ instead of C, thing are can get too much complicated and benefits are not good enough. Yeah when you have 1 man project, you can simply use some C++ subset which help you, should better strings handling etc.. but when you have multiple people project and someone will try some as templates to full extend etc.. which are not used to use, it could be hell.
When i look how but are for example Best Dos Internet browser, i know that better experience would be simply to pick my phone for browsing, only problem is data transfer from phone to DOS computer that why be need good ftp server / client.
All thing with i really posted in the past, which im missing in Dos, ale part of old Dos world and part of possible "old world" feature set, only excend it.. as same way as some Win / Linux / Mac app extend modern OS features.
So yeah Dos development could be bad.. if you have great skills, memory you can still do it etc.. but there are much terrifying things, even for modern OSes.. as i already mentioned, its modern games development in low level C++, its from my knowledge even more complex than science stuff. Because even i exclude some for 3d world needed stuff and magic as good AI.. which need special not programming science knowledge (mathematics, physics, new way how to debug persistent 3d worlds, psychology for AI etc..).. and that is why its realized often though some middleware (where you still need as least some part of that knowledge), its still hell on earth.
You have deal with lowlevel C++, huge codebase (what is worlds lots fo huge binary assets), middlewares.. and still keep learning lots of newer stuff with any update of graphics drivers, Win SDK, DirectX, Vulkan etc and i can be even "better" when you target multiple platforms with Linux and MacOS (for example Apple dont care about OpenGL and Vulkan, so they need to learn Metal API ).. and want make situation even more complex you can target console too, with couple of not technical management problems (certifications) too..
Because is too complex, even for bigger teams and when areas of development are divided, almost everyone sacrificed low level stuff for some 3rd party or in company universal engines (but only EA, Ubi, Sony etc are big enough to make such inhouse stuffs),where technically you can still do low-level things, but only few guys do.. and more and more things are moved every day from classic development to scripting (much easier high level coding) of even visual tools / editors development.. i would say that is logical.
----------
Perl - classic question for this thread, can i make *.exe and has it some graphical libraries, or its just better way how to write some *.bat files and other script for data parsing etc?
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.