Interesting ChatGPT conversation
I asked:
Were assembly coders feeling threatened when compilers emerged?
ChatGPT said:
Yes, many early assembly coders did feel threatened or skeptical when high-level language compilers emerged, but the reaction was nuanced and evolved over time.
Initial Reaction: Skepticism and Resistance
In the 1950s and 1960s, when high-level languages like Fortran (1957) and Algol (1958) were introduced, assembly programmers often reacted with:
-
Skepticism about performance
Assembly programmers prided themselves on writing highly optimized, machine-specific code. They doubted that early compilers could generate code as fast or efficient as hand-crafted assembly. -
Fear of job displacement
Assembly programming was a specialized and respected skill. The idea that someone with less hardware-level knowledge could write working programs threatened the status and necessity of low-level coders. -
Belief in lack of control
High-level languages abstracted away machine specifics. For many assembly programmers, this felt like a dangerous loss of control — especially for systems programming or performance-critical applications.
Realities That Changed Opinions
Rapid Improvement in Compilers
- Compilers got better quickly, especially with optimization phases.
- Over time, compilers began outperforming hand-written assembly in many domains (especially with modern CPU architectures that benefit from certain instruction patterns or pipeline optimizations).
Rising Complexity of Software
- Writing large-scale applications in assembly became untenable.
- High-level languages allowed larger teams, better code reuse, and improved debugging.
Shifting Roles
- Assembly coders often transitioned into compiler design, systems programming, or performance profiling roles where low-level expertise remained crucial.
- Operating systems, embedded systems, and performance-critical parts of software still used hand-tuned assembly.
Emergence of Mixed Approaches
- In time-critical code, developers often used inline assembly or wrote only specific routines in assembly while the rest was in a high-level language.
- Today, even JIT compilers (like in JavaScript engines) are often written by people with deep knowledge of assembly.
A Famous Anecdote
When John Backus introduced Fortran, many assembly programmers scoffed. One IBM engineer reportedly bet that no compiler-generated code could match hand-written assembly.
That bet was lost within a few years as the Fortran compiler began producing more efficient machine code than most human programmers.
In Summary
Yes, many assembly programmers were initially threatened by compilers — both due to performance concerns and fears of devaluation of their skills.
But the field matured, and many adapted — often becoming the very people who built the tools that replaced pure assembly programming in most domains.