| ▲ | win311fwg 21 hours ago | |||||||
The toolchain does the detailed design work too. The job is more like driving a train — engineering, if you will. The toolchain can do its thing, but it can go off the rails, so you still have to know when to hit the breaks. | ||||||||
| ▲ | awsglkhj 20 hours ago | parent [-] | |||||||
I think the closer analog is developing schematics for circuitry, where one might design in terms of existing ICs or adhere to a specification about input and output signals. Turning the schematic into a real device would then involve a host of processes, of varying degrees of automation. In the case of software engineering, source code occupies roughly the same position as a schematic, with all the "production" completely automated and highly reproducible. Yes, the toolchain can make decisions about the emitted machine code, but we expect the output to be stable, in all consequential ways, for a given input and constant optimization settings. (Even in manufacturing, there is allowance for variation due to process, and untold money has been spent variously trying to exorcise or neutralize it. We have it easy.) Importantly, while no single person can know everything about the operation of modern toolchains, we know that there exist people with the education and the inclination to understand anything about them. Compilers and linkers and analyzers are not mysterious black boxes that defy investigation. | ||||||||
| ||||||||