You're never going to get the "near perfect" efficiency of a dedicated .ASM written by a talented programmer in any "higher level" language - and this is generally worth it because you get much more ease of programming by "average" programmers (and a lot more speed by talented ones)
Ignoring security issues, imagine a web browser, that's 1000% smaller in its executable, that it entirely fits in the large CPU caches we have now. And OS+Program together, fits in the firmware and instantly boots. Or that, when you load a web page, it doesn't have to page to disk ever, because you also have plenty of RAM with what we now have today. That's what we could have had.
I don't see myself enjoying modern programming because the IDEs are so bloated and unstable. Old stuff might be better, but I never spent the effort to learn anything more than Python and taking a semester of C++ before drifting off to the physics department (where I used MATLAB and briefly wrote some C code for AVR microcontrollers).
I still have the installer for Dev-C++ from that C++ class.
I love programming! Ever since I saw a computer I wanted to write something to make it do stuff. There's something incredibly fulfilling about being able to take some concepts in your head and write them into code and compile them for a computer and then visually see the results of your work. I agree with the sentiment that it is, for me, the ultimate form of creative expression.
I don't see myself enjoying modern programming ...
I very much dislike "modern" programming environments, so much so that for personal stuff I pretty much still use my own Micro-C, and I still run much stuff under DOS (long live DosBox 😀 )!
These are the necessary files from the DOS edition of Micro-C:
But... running everything under DosBox gets troublesome when you want general acces to "host" files - you end up mounting/unmounting DosBo virtual drives a LOT!
So I created "DVM" (DunfieldVirtualMachine) - it implements C-FLEA (a processor architecture I designed to be an optimal target for my compiler) and enough of DOS to satisfy most of my library functions, all the while operating "as if" it were "hosts native", and providing full access to the host filesystem.
Literally you just have to precede a DVM program with> dvm progname args ...
(and DVM.EXE - needs no support files and is a whopping 15k)
--
For comparison, the version of LCCwin32 that I have installed, one of the simplest command oriented windows C development toolsets that I have identified has 922 files occupying about 34m of disk storage. There are more than 400/10m header files alone.
... and much of the documentation is "online"
--
Don't get me wrong, in my "working" days I did lots of projects using ARM, STM32 and other embedded processors, which ment using their (and GNU) dev. environments - but I never found anything I disliked as much as developing for Winblows!
https://dunfield.themindfactory.com ; "Daves Old Computers" ; SW dev addict best known:
ImageDisk: rd/wr ANY floppy PChw can ; Micro-C: compiler for DOS+ManySmallCPU ; DDLINK: simple/small filecopy(w/o netSW)via Lan/Lpt/Com
Ever since some major ai heel turns in June-July, "I love programming" was an excuse i've seen among them (to try putting themselves on a higher pedestal when they meant to say they confess to Claude), so i'm skeptical of that phrase by default now, like "full stack devops"
anyway, i did engoo and the 3dfx filter emulation because i HATE programming. last decade i'd have nightmares about math and theory
long live PCem FUCK "AI". It is a tool of fascism. We do not need it. We do not use it.
It depends. My day job is writing in REACT and C#. The software is for internal use by my employer. To be honest I just do what needs to be done. It doesn't excite me like programming did when I was studying software engineering at university. Especially, as these days we are increasingly encouraged to use AI. so I feel like I am constantly reviewing it's code rather than writing it myself (and trying to stop it doing things I didn't ask for) .
Also, as others have said, modern software development really has little concern for optimisation. Everything is bloated.
I have recently got back into MS DOS programming with Turbo C. I am writing an engine for a text adventure game. I am using an old Pentium MMX laptop. Loving it so far. I just lose track of time when working on it.
Programming is fun when you're experimenting to find out what can be done. (Also true for FPGA designs and the like.) When you're in well worn territory and you just need to glue stuff together and give it a UI, the joy is more in the result and less in the process. It helps that I made my own programming language so I don't have to deal with annoying syntax quirks, and adds some novelty to everything I write in it. I would try creating my own hardware description language (HDL) as well, if not for the widespread proprietary nature of the hardware.
I'm not a dev but I like to get things done. When I want to see "Hello, world" on part of the screen I go out and write some code. Next there's an unpleasant part when I need to find errors in that code and troubleshoot it. If I get lucky I might finally get to the point when program compiles without errors and I achieve my final goal and see "Hello, world" on the screen. Certainly, there's a moment of joy there. It works!
But at the same time I can't say that I like or I love it. It's all about reaching a goal for something that I really need and will be useful in the future. I can't see myself programming things that I don't care about just to try myself if I'm able to find a solution myself.
I agree that I always prefer minimal size tools and I'm upset about bloated software, operating systems etc. But we are a minority here and it's not going to change.