Enterprise engineering

How should I choose a programming language and framework?

Select on criteria, not preference

  • Problem fit — typed, compiled languages (Java, C#, Go, Rust) for performance and large codebases; TypeScript for full-stack web; Python for data, automation and AI
  • Team skills and hiring market — the best language is one your team can run well for years
  • Ecosystem and maturity — libraries, security patches, long-term support and community
  • Operational fit — startup time, memory use, deployment model, observability support
  • Safety — static typing and memory safety reduce whole classes of defects
  • Total cost — licensing, tooling, training and migration risk

Process: time-boxed proof of concept against the hardest requirement, an ADR recording the decision, and a standard set of supported technologies to avoid sprawl.

Boring, proven technology is usually the right choice for core business systems.

All guides