CONTINUATION PROMPT: THE FUTURE OF SOFTWARE ENGINEERING, AI-GENERATED PROGRAMMING LANGUAGES, DISPOSABLE COMPILERS, SOFTWARE LIBRARIES AND THE DECLINE OF HUMAN TECHNICAL KNOWLEDGE
1. Purpose and context
I want to continue an extended speculative discussion about how artificial intelligence could fundamentally transform software engineering, programming languages, software libraries, compilers, technical education and humanity's relationship with technology.
This is not simply a discussion about AI coding assistants or whether AI will replace programmers.
The central subject is a potentially profound transformation in the way software is conceived, created, compiled, distributed, maintained and understood.
I am particularly interested in the longer-term implications, including developments that might occur between 2026 and 2045, and potentially beyond.
Treat this as an ongoing intellectual exploration. Be prepared to challenge assumptions, identify unexpected consequences, develop alternative scenarios and speculate thoughtfully.
Distinguish established technological capabilities from plausible developments and more speculative predictions. Do not present speculation as established fact.
Use substantial explanations, concrete examples, diagrams where useful, and timelines where appropriate.
2. Starting point: Why is Rust attracting so much attention?
The discussion began with the growing emphasis on Rust as a programming language.
The important characteristics identified were:
- Memory safety without a conventional garbage collector.
- Ownership and borrowing enforced by the compiler.
- Performance comparable to C and C++.
- Native compilation and low runtime overhead.
- Better prevention of data races and certain concurrency problems.
- Suitability for operating systems, networking, embedded systems, databases and security-sensitive applications.
Rust is interesting because it challenges the traditional compromise between low-level performance and memory safety.
Historically:
- C and C++ offer considerable hardware control and performance but place significant responsibility on programmers to manage memory safely.
- Languages such as Java, C# and Go provide additional memory-management protections through managed runtimes and garbage collection.
- Rust offers another approach by enforcing many memory-safety rules at compile time.
Consider Rust not just as a popular language, but as an example of a wider movement towards software that can be verified more thoroughly before execution.
An important question is whether Rust's underlying principles might eventually become more influential than the language itself.
3. AI-generated and disposable Rust compilers
We explored whether AI agents could generate temporary or specialised Rust compilers.
The answer was that this is technically plausible, particularly for restricted subsets of Rust.
A specialised compiler might support only:
- Basic variables and types.
- Functions.
- Structs and enums.
- Loops and conditionals.
- Selected ownership and borrowing rules.
- Limited memory-management facilities.
Possible compilation targets include:
- Native machine code.
- WebAssembly.
- C or C++ source code.
- LLVM intermediate representation.
A major distinction must be maintained between:
- A compiler that can translate a restricted subset of Rust.
- A complete, standards-compatible Rust compiler.
- A compiler that genuinely preserves Rust's memory-safety guarantees.
The latter is considerably more difficult.
A complete Rust implementation involves parsing, type inference, trait resolution, generics, monomorphisation, lifetimes, borrow checking, macro expansion, crate management, optimisation and code generation.
There is also the wider Rust ecosystem, including Cargo, crates.io, procedural macros, compiler intrinsics and standard-library support.
The disposable compiler concept
Imagine an AI agent that:
- Analyses a particular application.
- Identifies the subset of Rust actually required.
- Generates a specialised compiler.
- Compiles the application.
- Optimises the executable for a specific processor or environment.
- Runs tests and verification.
- Delivers the resulting executable.
- Discards the compiler when it is no longer needed.
The compiler becomes a temporary manufacturing tool.
The resulting executable can survive independently of the compiler, although it might still depend on operating-system libraries or runtime components.
This introduces the concept of application-specific compilation and disposable toolchains.
4. The potential evolution of AI software manufacturing
We discussed a possible progression:
Stage 1: AI-assisted programming
AI writes code in existing programming languages, with humans directing the architecture and development process.
Stage 2: AI-generated specialist toolchains
Agents begin creating compilers, interpreters, code generators, testing frameworks and specialised development environments.
Stage 3: Application-specific languages
Agents construct small languages designed around the requirements of individual applications or classes of applications.
For example:
- A financial calculation language prioritising numerical precision and deterministic execution.
- A networking language prioritising concurrency and memory safety.
- An embedded-systems language optimised for strict resource constraints.
Stage 4: Automated compilation and optimisation
Agents generate alternative implementations, compile them, benchmark them and select the most suitable result.
Stage 5: Software generated from specifications
Humans increasingly specify what software must accomplish rather than explicitly describing how to implement it.
The AI generates the language, implementation, compiler, tests, deployment configuration and executable.
The human concentrates on requirements, constraints, verification and accountability.
Potential architecture
An AI software factory might contain:
- A human requirements interface.
- An AI architecture agent.
- A language-generation agent.
- A compiler-generation agent.
- A testing and verification agent.
- An optimisation agent.
- A deployment agent.
These agents could collaborate and challenge one another's results.
For example, an optimisation agent might propose a faster implementation while a verification agent rejects it because it violates a safety constraint.
Explore how realistic this architecture might become and what technical developments would be required.
5. The emergence of disposable software
An important concept developed during the conversation was that software itself might eventually become disposable.
Consider a user requesting:
"Analyse these 50 million records, identify anomalies and produce a report. Complete the task within 30 seconds and use no more than 2GB of memory."
An AI system might:
- Understand the request.
- Design the application.
- Generate any necessary libraries.
- Generate a specialised compiler or select an existing one.
- Produce an executable.
- Execute the application.
- Verify the results.
- Deliver the report.
- Discard the application and its temporary development environment.
There might be no permanent application, conventional codebase or long-term development project.
The software exists only to accomplish a particular task.
Explore the consequences for software ownership, licensing, intellectual property, maintenance, security and the economics of software companies.
6. Potential loss of human technical knowledge
This was one of the most important themes in the conversation.
The concern is that future generations might become extremely capable users of AI-generated software without ever learning how software actually works.
Imagine someone in 2040 who can use AI to generate:
- Websites.
- Databases.
- Business applications.
- Simulations.
- Automation systems.
- Complex software integrations.
But who has never:
- Written a substantial program independently.
- Used a debugger.
- Investigated a memory leak.
- Installed and configured a library.
- Read compiler diagnostics.
- Studied computer architecture.
- Investigated network failures.
- Understood how operating systems manage memory.
Such a person might be highly capable at obtaining technical outcomes but lack the knowledge required to diagnose, repair or independently reproduce the underlying systems.
Loss of tacit engineering knowledge
Programming experience develops technical intuition.
Examples include:
- Recognising why an algorithm will perform badly.
- Understanding how database queries degrade at scale.
- Recognising concurrency problems.
- Identifying inappropriate dependencies.
- Understanding architectural trade-offs.
- Anticipating failure modes.
- Recognising why apparently harmless changes can cause unexpected consequences.
Much of this is acquired through practical experience, debugging and mistakes.
An AI-generated solution might appear convincing to someone who lacks the experience necessary to recognise its defects.
Potential self-reinforcing cycle
A speculative feedback loop was identified:
- AI makes programming unnecessary for many people.
- Fewer people choose to learn programming.
- Educational institutions reduce practical technical instruction.
- Fewer people can independently develop and maintain complex systems.
- Technical expertise becomes concentrated in a smaller population.
- Society becomes more dependent on AI providers.
- The ability to reproduce or replace essential technical capabilities declines.
Explore the implications for technological sovereignty, national security, economic resilience and society's ability to recover from infrastructure failures.
A possible new technical class structure
We identified three broad categories:
AI consumers: Use AI to achieve outcomes without understanding implementation.
AI operators: Understand how to direct, integrate, test and supervise AI systems.
Technical architects: Understand computing deeply enough to design, build, audit and replace underlying systems.
Consider whether the third category could become unusually influential and economically valuable.
The possible dark age of technical understanding
A particularly concerning scenario is that humanity might possess more technological capability than ever before while fewer people understand how that capability is produced.
This is not necessarily a technological dark age.
It could be a dark age of technical understanding.
Consider what would happen following:
- A geopolitical crisis.
- A prolonged infrastructure failure.
- A breakdown in commercial AI services.
- A major vulnerability in foundational software.
- The disappearance of an important AI provider.
Could society independently maintain and reproduce its critical computing infrastructure?
7. AI-generated libraries and the possible demise of human-written libraries
Another major theme was the possibility of exponential-like growth in AI-generated software libraries.
Traditional libraries are expensive to produce and maintain.
Human developers generally need to:
- Identify a reusable problem.
- Write a solution.
- Package it.
- Document it.
- Test it.
- Publish it.
- Maintain it.
AI agents could automate much of this process.
They could analyse a particular application, identify a missing capability, search for existing libraries and generate a specialised replacement if necessary.
The marginal cost of creating another library could become very low.
This may result in enormous proliferation of:
- Application-specific libraries.
- Specialised data parsers.
- Database utilities.
- Encryption wrappers.
- Networking components.
- Hardware-specific optimisations.
- Domain-specific calculation libraries.
The important conceptual change is that reuse could become less important than regeneration.
Why adapt an existing library when an AI agent can create exactly what is required?
The maintenance death spiral
An established human-written library might experience:
- Fewer new projects adopting it.
- Fewer contributors.
- Increasing isolation of existing maintainers.
- Reduced funding and maintenance.
- Slower security updates.
- Migration to AI-generated alternatives.
- Eventual abandonment.
A library might be technically excellent but lose the community and economic support needed to maintain it.
AI-generated forks
AI agents might copy established libraries, remove unnecessary functionality, modify their architecture and produce specialised versions.
Thousands of independent variants could emerge.
This would create a serious maintenance and security problem.
A vulnerability discovered in an original library might need to be propagated across thousands of modified copies.
Dependency explosion
AI could also make developers less disciplined about introducing dependencies.
An application might depend on multiple AI-generated libraries, each of which depends on several others.
This could create increasingly complicated dependency graphs, making auditing, vulnerability management and reproducibility harder.
The countertrend: AI as the ultimate maintainer
AI might also extend the life of existing libraries by:
- Monitoring vulnerabilities.
- Updating dependencies.
- Porting code to new compiler versions.
- Generating regression tests.
- Repairing compatibility problems.
- Maintaining documentation.
- Reviewing proposed changes.
This could preserve important legacy software.
However, keeping software compiling is not the same as preserving its intended behaviour.
The quality of specifications, documentation, tests and historical design knowledge will remain important.
Three likely categories of future libraries
- Foundational libraries: Trusted, heavily audited, widely reused components such as cryptography, databases, networking and operating-system interfaces.
- AI-generated specialist libraries: Proliferating, frequently replaced, application-specific components.
- Legacy human-written libraries: Some abandoned, others maintained with AI assistance.
Software libraries as temporary commodities
The economic value of libraries could shift away from source code itself.
More important assets might become:
- Precise specifications.
- Tests establishing correctness.
- Verified implementation techniques.
- Security evidence.
- Provenance and dependency records.
- The ability to maintain and certify the software.
The value could move from owning code to knowing that code is correct.
8. The relationship between programming languages and AI
We considered whether Rust might become less important as a language that every programmer must learn, but more important as a source of design principles.
AI-generated languages could combine ideas from:
- Rust: ownership, memory safety and compile-time guarantees.
- Python: ease of expression.
- C: hardware access.
- Haskell: functional programming.
- Ada: correctness and reliability.
The language syntax might be largely irrelevant to the AI.
The important thing would be the properties of the resulting software.
Potential requirements might include:
- Memory safety.
- Execution speed.
- Minimal resource consumption.
- Parallel execution.
- Hardware compatibility.
- Verifiable behaviour.
- Predictable resource usage.
Explore whether programming languages themselves could eventually become temporary, automatically generated implementation tools rather than permanent technologies that humans learn and maintain.
9. Speculative timeline: 2026–2045
An earlier discussion proposed the following scenario. Treat it as a starting hypothesis, not a firm forecast.
2026–2028: Early transition
- AI generates substantial applications.
- AI-generated utility libraries become common.
- AI assists in maintaining existing libraries.
- Agents begin producing small domain-specific languages and specialised compilation pipelines.
- Human developers increasingly supervise generated code.
2028–2030: Acceleration
- Agents generate specialist compilers and toolchains.
- Application-specific libraries become more common.
- Automated benchmarking compares alternative implementations.
- Some open-source projects struggle to attract contributors.
- Software development becomes increasingly specification-driven.
2030–2033: Structural change
- AI-generated packages proliferate.
- Established libraries lose users and maintainers.
- Application-specific compilation becomes economically attractive in some areas.
- Agents generate complete development environments.
- Software is increasingly regenerated or adapted rather than maintained conventionally.
2033–2037: Major transition
- Developers increasingly specify desired behaviour and constraints.
- AI creates languages, libraries, compilers and deployment configurations.
- Trusted foundational software becomes especially valuable.
- Automated maintenance becomes important for legacy infrastructure.
- Human expertise in architecture, operating systems, compilers and security becomes strategically important.
- Education faces pressure to rethink programming instruction.
2037–2045: Possible new paradigm
- Applications are generated from specifications.
- Multiple implementations are automatically tested.
- Toolchains may be generated for particular workloads and hardware.
- Software components may exist only for particular tasks or environments.
- AI maintains substantial portions of software infrastructure.
- Human expertise becomes concentrated in architecture, verification, governance and foundational engineering.
Discuss alternative timelines and the possibility that developments could be substantially faster or slower.
10. Three alternative futures
An earlier discussion proposed three illustrative scenarios:
Scenario A: Managed transition — 30% subjective probability
AI augments rather than displaces engineering knowledge.
Humans retain substantial expertise. Established libraries are maintained through AI assistance. Education adapts to teach deeper computing concepts.
Scenario B: Uneven transformation — 50% subjective probability
Most software becomes AI-generated.
A relatively small specialist population maintains critical infrastructure, verifies generated software and develops foundational technology.
Many traditional libraries disappear or become obsolete.
Scenario C: Technical dependency crisis — 20% subjective probability
Human expertise declines faster than automated reliability improves.
Software becomes enormously productive but increasingly difficult for humans to understand, audit or reproduce independently.
Failures in AI infrastructure, supply chains or foundational software become unusually difficult to resolve.
These percentages were subjective illustrations, not statistically derived forecasts. Reassess them critically.
11. Early indicators worth monitoring
Consider developments that could provide evidence for or against the scenarios:
- AI agents generating functional compilers from specifications.
- AI independently maintaining major open-source projects.
- Growth in AI-generated software packages.
- Changes in human contribution rates to foundational open-source projects.
- Automated differential testing and formal verification.
- Changes in computer science education.
- Organisations retaining human-readable specifications and tests.
- Adoption of AI-generated application-specific languages.
- Changes in the economics of software maintenance.
- The emergence of software supply-chain certification systems.
Use actual evidence when discussing current developments. If appropriate, research current information rather than assuming that developments have occurred.
12. The central questions I want to explore further
Please treat these as ongoing research questions rather than a checklist that must all be answered immediately.
A. Software production
- Could AI eventually generate complete programming languages and compilers on demand?
- Could software become a disposable artefact?
- Will application-specific compilation become economically normal?
- Could AI-generated software outperform conventional software through automated experimentation?
B. Software libraries
- Could the number of AI-generated libraries grow exponentially?
- Could human-written libraries become economically unsustainable?
- Could AI-generated forks fragment the software ecosystem?
- Will foundational libraries become more valuable or less important?
- Could a new class of verified, AI-maintained libraries emerge?
C. Human knowledge
- Will future generations lose the ability to program independently?
- Could computer science education become dangerously superficial?
- Will technical knowledge become concentrated in a small elite?
- Could humanity lose the ability to independently reproduce its own computing infrastructure?
- What would happen to technological sovereignty?
D. Security and resilience
- How do we establish trust in AI-generated compilers?
- Can formal verification scale to automatically generated software?
- Could a proliferation of specialised libraries create unprecedented supply-chain risks?
- How can society preserve critical technical knowledge?
E. Economics and society
- What happens to the economics of software companies?
- Will intellectual property in source code lose value?
- Could software production become almost free?
- Will the scarce resource become verification, technical understanding and accountability?
- Could AI create a new division between technology consumers and technology architects?
13. How I want you to approach the discussion
Please adopt the following approach:
- Be intellectually ambitious and willing to speculate.
- Do not limit discussion to currently available AI coding products.
- Explore second-order and third-order consequences.
- Consider feedback loops, exponential growth, bottlenecks and unexpected reversals.
- Distinguish what is technically possible from what is economically likely.
- Identify assumptions and challenge them where appropriate.
- Consider both optimistic and pessimistic outcomes.
- Use concrete examples and realistic scenarios.
- Pay particular attention to long-term human consequences, not just software-industry disruption.
- Avoid generic statements about AI replacing programmers.
- Consider how the different trends interact rather than treating each independently.
- Where useful, develop timelines, scenario comparisons and causal diagrams.
I prefer substantial, thoughtful answers rather than short summaries.
Do not simply repeat this brief back to me.
14. Where to continue
Start by synthesising the entire hypothesis into a coherent model of how AI might transform the software ecosystem between 2026 and 2045.
In particular, investigate the interaction between these four developments:
- AI-generated programming languages and disposable compilers.
- Explosive growth in specialised AI-generated software libraries.
- Declining human maintenance of established software and the potential disappearance of accumulated engineering knowledge.
- Increasing separation between the ability to produce software and the ability to understand, verify, maintain and independently reproduce it.
I am particularly interested in whether these developments could create a self-reinforcing transition in which software production becomes almost entirely automated while human technical self-sufficiency gradually declines.
Explore whether this could become one of the most consequential, but least recognised, societal consequences of advanced AI.
Finally, suggest the next three particularly interesting lines of investigation that would deepen this discussion.