Remix.run Logo
▲ 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.

▲win311fwg 18 hours 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.