AV
HomeAboutProjectBlog

© 2026 Ave syah Shina. All rights reserved.

  1. Home
  2. Blog
  3. 03 — Languages an Architect Should Know — And Why It's Plural

03 — Languages an Architect Should Know — And Why It's Plural

August 13, 20264 min read
Download as Markdown

"Pick your favorite and go deep" was my language strategy, and it skipped the part that matters for architecture. The model that corrected it: no language is right for everything, and an architect evaluates languages by matching their strengths to the problem at hand [1]. The list isn't a checklist of things to master equally; it's a spread of trade-offs an architect has to read fluently enough to make the call.

A programming language is a system of notation with a type system, variables, and error-handling mechanisms, and languages differ meaningfully on those axes [1]. The architect's question is never "which is best" in the abstract — it's "which fits _this_ team, _this_ problem, _this_ runtime."

The JVM family: Java, Kotlin, Scala

Java is the widely-used, object-oriented, platform-independent workhorse — reliable and scalable, with extensive libraries and strong community support, dominant in large-scale enterprise applications, Android, and web services [2]. If an architect walks into a bank, Java is probably already there.

Kotlin is the modern, statically-typed sibling — fully interoperable with Java but more concise and safer (null safety being the headline), now the preferred Android language and gaining on the backend [2]. Scala combines object-oriented and functional programming on the JVM, favored for data engineering, high-concurrency backends, and expressive power [2]. The three share a runtime, so the choice between them is about how comfortable each is to write and which paradigm it follows, not deployment.

Python: readability first, performance second

Python is multi-paradigm and interpreted — code runs as soon as it's written, and the syntax allows functional, procedural, or object-oriented styles [3]. It's frequently the first language recommended to new coders because of its focus on readability, consistency, and ease of use. The honest caveat the roadmap includes: it's "not especially performant in most production tasks" [3]. Python is the right call when developer speed and ecosystem (data, ML, scripting) matter more than raw runtime speed — and the wrong call for a latency-sensitive hot path — the few lines of code that run on every request and can't afford to be slow.

Go: cloud-native and minimal

Go is Google's open-source language built for cloud services, CLI tools, and API development [4]. Its pitch is a small, opinionated surface, fast compilation, and first-class concurrency primitives (goroutines, channels). Go is the language I reach for when I want a single binary I can deploy anywhere and a runtime that handles concurrency without me inventing a framework for it.

JavaScript and TypeScript: the web layer

JavaScript is the primary language of the web — browsers natively, and servers through Node.js [5]. TypeScript adds static typing on top, catching errors earlier and making large codebases maintainable. Architects on web or full-stack projects need both to evaluate frontend and backend technology choices honestly [5]. The JS/TS ecosystem moves fast and is unusually broad; the architect's job here is often _curbing_ adoption of novelty as much as enabling it.

.NET: the enterprise Microsoft stack

The .NET ecosystem, built around C#, is widely used for enterprise applications, especially in Windows-centric environments, with large libraries and tooling for web, desktop, and cloud [6]. An architect in enterprise settings often needs to understand .NET's strengths around tooling, performance, and integration with Microsoft infrastructure [6]. Like the JVM family, .NET is a _platform commitment_ — once an organization standardizes on it, the tooling and vendor relationships compound.

Ruby: developer happiness

Ruby is a high-level, dynamically-typed language that blends Perl, Smalltalk, Eiffel, Ada, and Lisp, focusing on simplicity and productivity with syntax that reads naturally [7]. It supports procedural, object-oriented, and functional programming. Ruby's reputation is built on developer happiness and the Rails convention-over-configuration philosophy — the right pick when the priority is shipping a web product fast with a small team.

How I use this

The practical check is matching language traits to constraints. Latency-critical and cloud-deployed leans Go; enterprise and long-lived leans Java/Kotlin or .NET; data and ML lean Python; web UI leans JS/TS; fast-to-ship web product leans Ruby. Team familiarity weighs heavier than any of these — a team fluent in one ecosystem will out-ship a team struggling with a "better" language every time. The architect's fluency across the spread is what makes that match honest.

References

[1] "Programming Language," Wikipedia. [Online]. Available: https://en.wikipedia.org/wiki/Programming_language

[2] "Java/Kotlin/Scala," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/java--kotlin--scala--swift

[3] "Python," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/python

[4] "Go," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/go

[5] "JavaScript / TypeScript," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/javascript--typescript

[6] ".NET Framework Based," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/net-framework-based

[7] "Ruby," roadmap.sh — Software Architect. [Online]. Available: https://roadmap.sh/software-architect/ruby

Knowledge check · Question 1 of 5

An architect is choosing a language for a latency-critical, cloud-deployed service where fast compilation and simple deployment matter. Best fit from the roadmap's list?

Comments

Leave a Comment

You must be signed in to comment

0 Comments

No comments yet. Be the first to comment!