Choosing a Language — Professional¶
Govern languages as a portfolio. A paved road needs maintained toolchains, base images, vulnerability response, telemetry, profiling, and migration support. Limit new languages when marginal capability does not justify permanent platform cost.
Review real systems: JVM services trade warmup and heap operations for mature tooling; Go favors simple native deployment and explicit concurrency; Rust buys memory safety without tracing GC at higher learning and compile-time cost; Python maximizes ecosystem reach while CPU-heavy paths may need native or process boundaries.
Checklist: workload evidence, trust boundary, ownership, SLO, supply chain, interop, rollout, rollback, and five-year maintenance. Further reading: Computer Language Benchmarks Game methodology critiques, Thoughtworks Technology Radar adoption guidance, and each runtime’s production tuning documentation.