Programming Languages Tier List

Twelve languages, ranked by whichever question you actually have. Learning your first language, choosing one for a job, and picking a favourite are three different boards with three different top tiers. This one is most useful when you say which question you are answering. All twelve entries begin in Unranked, so the ordering is entirely yours: drag or tap into S–F, rename the rows, share the link or export a PNG.

learning curveecosystemusefulnesspreference
12 items pre-filled Misc template Nothing pre-ranked No sign-up
Drag items here
Drag items here
Drag items here
Drag items here
Drag items here
Drag items here
Unranked (12)
Python
JavaScript
TypeScript
Rust
Go
Java
C
C++
C#
Swift
Kotlin
Ruby

0 of 12 items ranked.

Board saved automatically in this browser. Original.

How this board is built: the 12 tiles are an editorial starting set, not an official roster and not a published ranking — every entry waits in Unranked until you place it. Item tiles are original pictograms or two-letter emblems drawn for this site rather than character artwork, film stills or club logos, so nothing here is licensed material reused from a rights holder. Tiers you set are your own judgement.

What's included in this Programming Languages board

The board arrives with all 12 entries present as tiles and none of them assigned to a tier. That is deliberate: a template that opens with a finished ranking only invites you to agree or disagree with whoever made it, whereas an empty ladder makes you commit to an ordering of your own. Drag a tile onto a row, or on a phone tap the tile and then the tier you want. You can add rows for extra categories, rename the standard ones, and remove any entry you do not recognise — a list you can defend is more useful than a long one you cannot.

How to rank this Programming Languages board

Rank learning curve first if you are starting out: how much you can build before the language's abstractions become mandatory. Then ecosystem — libraries, tooling, and how much of a real problem is already solved for you. Usefulness is the third pass, and it depends entirely on domain: a language that is dominant for one kind of work can be marginal for another, so name the domain. Preference comes last and is legitimate; a language whose syntax you enjoy will get more practice out of you, which is worth more than a theoretical advantage. One warning: rankings of languages tend to collapse into rankings of their communities. Judge the language on its own terms, and note where you are really judging the ecosystem.

Using the board without over-thinking it

Most people finish a board like this in a couple of minutes and then reorder the middle rows for another ten. That middle is where the honest disagreement lives, so do not rush it: place the obvious top three and the obvious bottom three first, then work inward. If two entries still feel identical, that is a real observation — say so in a row note or a text tile rather than inventing a difference. When the ordering settles, export the PNG so the arrangement is saved somewhere permanent, and copy the share link if you want someone else to argue with it.

Ranking criteria used here

  • learning curve
  • ecosystem
  • usefulness
  • preference

Before you share it

Put your criterion in the board title, so a reader knows whether they are looking at a favourites list or an analytical one. If the subject changes with patches, seasons or releases, add the date. And remember the share link carries tier names, colours and the tile order — uploaded photos stay on your device, so export a PNG when those matter.

All 12 items in this template

Back to the board
Monogram tile for Python showing the letters PY; not official artworkPython
Monogram tile for JavaScript showing the letters JA; not official artworkJavaScript
Monogram tile for TypeScript showing the letters TY; not official artworkTypeScript
Monogram tile for Rust showing the letters RU; not official artworkRust
Monogram tile for Go showing the letters GO; not official artworkGo
Monogram tile for Java showing the letters JA; not official artworkJava
Monogram tile for C showing the letters C; not official artworkC
Monogram tile for C++ showing the letters C; not official artworkC++
Monogram tile for C# showing the letters C; not official artworkC#
Monogram tile for Swift showing the letters SW; not official artworkSwift
Monogram tile for Kotlin showing the letters KO; not official artworkKotlin
Monogram tile for Ruby showing the letters RU; not official artworkRuby

Programming Languages tier list FAQ

Which language should a beginner start with?

One that lets you build something visible quickly and does not punish mistakes harshly. Rank learning curve as its own criterion rather than assuming the most powerful language is the best first one.

Is a language tier list useful at all?

As a personal reasoning tool, yes. As a general claim about quality, no — language choice depends on domain, team and constraints, which is why the criterion belongs in the title.

Related tier list templates

All Misc templates