| ▲ | awsglkhj 2 days ago | |
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. | ||
| ▲ | win311fwg 2 days ago | parent [-] | |
> In the case of software engineering, source code occupies roughly the same position as a schematic That is a reasonable take, but software engineers don't work at such a low level. They start the agent and their job is to make sure that the agent doesn't go off the rails. It is like driving a train. Hence why we call them engineers. | ||