> The chips also operate on the assumption that future software will involve programmers giving high-level directions while artificially intelligent computers write much of the nitty gritty code required to implement those human ideas.
It'll turn more like trying to teach someone to do a trick, with all the misunderstandings and frustrations to boot.
Mind you, that same thing is now done to software devs, that is, product manager tries to explain what they want, designers and devs interpret in a certain way.
About 6 months ago my job required that I finally get my hands dirty writing x86 assembly. It's my first real foray into assembly coding.
There are a few aspects of it that I'm really enjoying:
- I can now actually understand the disassembled code that I see during debugging. This includes recognizing some of the assembly patterns that appear because of ABI requirements and/or common programming idioms.
- I'm becoming comfortable with a programming idiom that I've never really used in the past: registers, flags, various kinds of memory addressing.
- It helps my understanding of compilers' lower levels / backends, and the related problems: register allocation, instruction selection, etc.
- It provides a clear path for my first attempt at writing JIT code (using Xbyak[0]).
So as Richard Feynman might have said, it's great fun!
I can't wait to stop writing machine code.