Why isn’t Assembly Programming more popular, is it because Assembly is hard, complicated or non productive ?
I was paid (and I am somehow still paid) to program PowerPC 4xx in assembly but only for critical sections of code.
In 90s I was paid to program in assembly a full applications for 68xx and only because the C compiler was too expensive and generated more bloated code.
Nowadays you can download { gcc, sdcc, lcc, llvm/clang, ... } for free, and 90% of time they support the target you need; in the 90s you had free assembly compiler provided with evaluation boards, but you had to pay a lot of money for the C compiler.
This could be one of the reasons
In the 2000s, although the first R2000 was mostly a demo toy, evaluation boards were released for both R2K and R3K, and companies like IDT also included a CC1 compiler for Windows. It was free. Limited to 1.000 lines per C-module, but it was a step ahead, and here I noticed the difference!
Motorola did something similar with their PPC601 and 604 evaluation boards: free CC1 compiler included! Wow, it was a shock to hear for my boss
With the IDT-R2000, you have no built-in cache, the cache circuits are external to the CPU and can be turned off turning the "cache" into a fast ram. Awesome! I still love it! As I love there were R2000 cpu modules where the cpu is a "MIPS but without pipeline". It's a "multi-cycles MIPS" with no delayed slot, no hazards, no problems, it was as simple as programming a 68000! I programmed it in C as my first attempt to program a RISC with a high level language!
The central process unit of the first SONY Playstation1 is a MIPS R3000A-compatible 32-bit RISC CPU with 5 KB L1 cache running at ~33 MHz. It has pipeline, and I programmed it in assembly and C with Code-warrior that offers a special debugging channel over a special serial channel released by SONY only for developers. The package contained a special black-colored debugging PlayStation unit, a serial cable for connecting the unit to a PC and a CD containing PlayStation development tools, among other items. A bit expensive, but not too bad, the debugging unit helped a lot, making the experience simpler than a PowerPC.
Here you may wonder, so were Sony-Playstation 1 games written mainly in C or MIPS assembly?
Well, ... talking about my specific experience, which is not a great professional experience at 360 degrees since I've never been a video game writer but rather a simple consultant, however, I can say the vast majority of PS1 demos and code I encountered were written in some variant of C; for example I encountered a lot of "Code-Warrior C" with a lot of "#pragma" and blocks of assembler to allow direct manipulation of the GTE.
I can't say why it was developed this way, I mean I can't talk for my customers' choices, I can speculate on "because this the best compromise" to reduce the time to market. My paid tasks were just testing/fixing that parts.
The R2000 was a personal experience, I paid myself to buy the board as training experience, and it was for sure the greatest experience with RISCs; for sure a better experience than programming a PowerPC 601! Even though it's been more than 10 years, I still remember my frustration with R4xxx, R5xxx and R10K, and let me say, those RISC-beasts offer better performance, and starting from R10K they also offer superscalar performance (2 instruction launched in parallel),
but still after 20 years, they are so complex that when you look at the GCC mailing list you find people claiming there are die-hard issues.