Back in the days, people were writing assembler in order to squeeze as much performance as possible out of their 8MHz CPU with 1MB RAM computers - in other words, programmers were translating business logic into machine code. Modern languages are much further away from assembler, instead, you write code that almost resembles the business logic and the compiler / interpreter translates to machine code. Writing low-level code has become a niche that's only required for very specific use-cases like building operating systems; for the majority of use-cases, you can get away with a more modern language and spend your time creating business value instead of translating business logic into code that is / almost is machine code.