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.