The following text is intended for those people who want to know what the computer is doing at all times. The text is also intended for people who have the idea that the computer is mostly entertaining itself by performing unnecessary tasks and the user is someone who is occasionally granted to use the computer resources albeit with a certain delay. I compare some systems with an intelligent hammer which has a mind of its own and grants a wish to hit the nail and sometimes with a delay. Even worse, non-carpenters never become real carpenters with such a hammer. Because I like to know every ins and outs of the computer and want to be the total controller of the system, the choice is easy.
Assembly language is still the basis for every good computer programmer.
Assembly language therefore is the first choice, but this imposes a few problems. Firstly the language needs to cooperate with a certain operating system and the ease of programming higly depends on that system. Secondly the language is very obscure for non highly-gifted people and it is sometimes very cumbersome for certain programming tasks. A higher programming language is therefore absolutely needed. Important for me is that the interface between the higher language and assembly language must be bidirectional and the interface itself may not pose any awkward problems.