You can program anything in Assembly or C even if the specification doesn't foresee it. Open-source assemblers and compilers are always being developed and maintained so even if there's no real access to a CPU architecture, you or anyone can still emulate the execution of a binary, or write programs in those languages without any restriction, so developers just keep doing it.
Currently the problem isn't Assembly or C, but the lack of documentation for the inner workings of file formats and the most modern hardware and software (we would need to make that documentation ourselves again with no detail left out, study many courses for that and make clear which of them all are the most complete, important and clear). The PC platform started greatly explaining how everything worked and that's why DOS was so rich in capabilities despite being 16-bit or 32-bit with Unreal Mode or DPMI (and it still is the base and one of the main keys to understand the PC -and Assembly/C...- with maximum ease). But since Super VGAs, sound cards beyond the Sound Blaster and proprietary printers appeared, everything started to become more and more closed source and nonstandard, the books and courses started to get poorer and much more unspecific to the core of the technology, and almost everyone stopped having enough time to understand, investigate and keep the integrity of that knowledge publicly and freely (not even standard committees), and so we can now see the current poor state of the quality of the applications and of the knowledge of the programmers that generate them without worrying for all of the inner workings.
Languages like C and Assembly are things too simple and fundamental to become obsolete.
There have been things in the past like CPUs that execute Java bytecode natively.
To have something like a CPU that runs JavaScript natively, it would always need to run Assembly microcode internally, so it would only be trying to make a closed-source Assembly instruction set, not making it obsolete.
It would probably be better to simply make the WinAPI, the Linux syscalls, direct I/O, hardware and memory manipulation fully accessible from JavaScript, Java, Python, or any other language, and let it take the place of Assembly as they have always done it. So we could reuse source code and final binaries in any environment, from the OS we use to a webpage attempting to run x86 code...
If not, the compilers and assemblers would need to be written in Java or JavaScript for that architecture.
Anyway, if you can write something in a programming language, you can write it in any other (like running x86 instructions from JavaScript or Python by emulating them).
It's just that Assembly specially is nearest to the digital components of the machine.
Assembly language is actually on the top of the technology, as in the end everything goes down to Assembly programs or hardware microcode. It has important and special
It's not difficult; it's just that you simply need to start from the beginning to understand it, usually at the MS-DOS 8086-386 level. It (Assembly) practically means nothing if you don't understand the inner workings of everything (like executable files, image and resource file formats, multimedia formats, file systems, etc...).
As you can see, it contains algorithms and optimizations that other languages could very rarely teach you clearly but that you can benefit from.
_________________ Live PC 1: Live PC 2:
YouTube: http://youtube.com/@AltComp126/streams http://youtube.com/@proyectos/streams
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
|