A programming language expresses instructions and computations for a computer to execute. For an organization, choosing one is a long-term technology decision shaped by its existing stack, team, and business needs. section 8.8
Changing languages can require retraining, deployment changes, support knowledge, and large rewrites. A language that feels unfamiliar is not, by itself, a reason to replace it; assess the technology landscape and recruitment prospects. section 8.8 section 8.8.1
A framework sits on top of a language, supplying libraries or standards for recurring tasks. It can constrain development more than the language itself, and expertise in a framework matters alongside language expertise. section 8.8
Compare candidate languages and frameworks against practical questions:
- Who supports the technology, and how dependent is its future on one company? section 8.8.2
- How mature is it, and how active are its user groups and open-source community? section 8.8.2
- Is it taught at universities, and could you recruit a sizable team? section 8.8.2
Language and framework choices
Java Enterprise Standard and Spring build on Java; ReactJS is associated with JavaScript, and Express.js with Node.js. These examples illustrate that framework expertise is a separate consideration from language expertise. section 8.8
When replacement is justified, consider carving out refactorable areas as microservices rather than committing immediately to a complete rewrite. section 8.8.1


