Assembly?Practically never, actually. But Assembly is a form of bytecode and bytecode generally consists of an instruction and optionally one or two operators. In .NET You have the Intermediate Language and Java and LLVM just call it byte code. The difference between Assembly and bytecode is that compiled Assembly is read directly by a processor while bytecode must pass through an interpreter (or JIT compiler).
Bytecode is virtually never interesting because your compiler can translate a single line of code into 20 or more byte codes.A program of 20 lines quickly becomes very complex if translated to Assembly or bytecode.
However, during debugging, you may find yourself in the Byte code/Assembly.This will happen if there is a breakpoint in the binary code where the debugger cannot find its source code. The debugger will then try to translate the binary code back to bytecode or Assembly as well as possible. And then you can walk through it step by step. But for beginners, that’s still pretty difficult…
I have used Assembly in the past and like bytecode there are situations where you want to use this in raw form to get a better optimized code.But it is nowadays actually no longer true…
I have ever watched the assembly code of a program I had written.In itself, it is interesting to see how if and for statements are translated into assembly code. Certainly the switch statement was interesting.
I think 99% of the developers never look at assembly code or at most once, like me.
Only when you are working with high-performance code, such as game developers or developers of heavy computing applications, will you regularly investigate the assembly code to see where the code can be faster.
Also, developers of hardware (embedded devices) have to make various constraints (speed and available memory) and in many cases will view the assembly code.
Most programmers never get in touch with assembler code.
Application programmers work on a fairly functional level.The exact instructions that the computer performs is a detail that hardly brings them anything.
(If a program is too slow, it is usually an inefficient logic.Pieces of code rewrite usually yields a lot more profit than machine instructions to adjust.)
Games sometimes use advanced processor instructions.If the compiler does not generate, the developer must add some assembler itself. This is usually just a small part of the game.
On microcontrollers you can see assembler code more often, because that environment is so small that you hardly have support for higher programming languages.(Although that is certainly not a general rule: Arduino programs are written mainly in C.)
People who write a management system are more likely to be in contact with assembler: they need specific instructions to set up processor status and to communicate with hardware.
You get different answers because your question is not clear.
You have assembly and assembler.Assembly is the result of a compilation battle from .net. Assembler is a way (language) to program in which you program directly on the CPU. Tricky, but it does deliver nice compact binaries.
Assembler is no longer used as much as before, there is often no need for it.
For assembly, it is also true that average programmers (including the pros) will not look at it very much.Except those who write the compilers of course.