+ 5
There was a time when programmers did program in binary machine language (the former meaning of ML). They hand wrote the binary instructions on paper and then entered the code, bit by bit, through the front panel toggle switches while thinking in octal. Some computers lacked a boot ROM, so every day the operator toggled in the 32-byte bootstrap code just to turn it on and load the operating system from tape.
Here is a 5-minute video that demonstrates the programming procedure. The presenter seems a little inexperienced, but he successfully shows how to enter the starting address, enter the program that adds 1+1, verify the instruction codes, run it, and examine the result value. If you can decipher octal, you'll be able to read the LEDs along with him. Enjoy!
https://m.youtube.com/watch?v=mAg4NU2uwgo
+ 4
For many reasons you need languages with a higher abstraction in order to concentrate on advanced techniques, e.g. in the field of machine learning and AI.
There you don't want to do bit fiddling if your goal is to detect motions in a real world scenario like traffic analysing via an onboard camera in a car.
It is always a question which is the priority: Sometimes it is rapid development, sometimes execution speed.
+ 4
Each increase in execution speed becomes less portable and harder for humans to work on the coding. High-level languages were invented to improve human productivity, letting computers do more of the work to translate human description into machine language. The answer to your question is that it is due to economics and human productivity. Now AI is becoming the next level of productivity improvement.
Yet, there are times when execution speed and program size are higher priority than human productivity. C++ runs very fast. C can be faster and smaller than C++, depending on the task and hardware. A truly skilled and clever developer can at least match the speed of C by writing in low-level Assembly Language, but rarely can one beat the speed of compiled C code after the compiler optimizes it. Though that is why C provides a way to embed Assembly into the C source code.
I've read that FORTRAN can be faster than C for large matrix operations as it is better able to structure the code for that purpose.
+ 3
Bob_Li not sure I would describe it as simpler times ...
+ 2
In the field of robotics, it's indeed important to have fast processing speed, and low-level programming can be used when performance is critical. However, even in robotics, high-level languages are often used for rapid development and ease of programming, and then specific critical parts may be optimized in lower-level languages like C or even assembly language.
It's essential to strike a balance between development speed and execution speed, and the choice of programming language depends on the specific requirements of the project. Additionally, robotics often involves complex algorithms and sensor integration, where high-level languages like Python or C++ can provide significant benefits in terms of development time and maintainability.
So, it's not just about the mother language being binary; it's about using the right tool for the job, and different programming languages serve different purposes in the world of robotics and beyond.
+ 2
I'm not sure it would be "happy coding" trying to create a windows application in pure assemblyđ€
+ 2
Mushahid Bukhari
coding directly in binary would mean custom codes for everything... every device architecture, every os... You would never get anything done. It would be like recreating everything with 1 and 0... for every processor type.
The codes will not be portable.
Plus coding directly in binary does not automatically means it will be faster or more efficient. To do that, your code must be able to use the system resources as efficiently as possible. And those resources are different for different devices.
Unless it's a single machine and relatively simple task, programming in assembly is probably as low level as any genius programmer can go.
You don't have code hints, linters, and ways of organizing your data. You have to micromanage your registers and memory allocations, you have to be familiar with your system architecture. Things that higher level languages do for you.
Plus, optimization is a diminishing returns game. Perfect today, outdated tomorrow.
+ 1
Brian simpler times back then...đ
or not.
0
How I can download lessons from sololearn