The best programming languages, according to hackers
163 programming languages were recommended on Hacker News between November 2025 and November 2026. We rank them by how many separate people recommend each one, and 65 earn the Hacker Approved badge.
Top picks
The three most recommended programming languages with the badge. Each figure is 250 people. RecommendsCriticizes One comment
Memory safety without runtime cost
Recommended for compile-time memory safety without runtime cost, fast native code, and strong types with pattern matching; critics cite complexity, slow compiles, a thin stdlib and dependency sprawl.
Expressive, powerful type system
An expressive type system over JavaScript that catches bugs, shares code between frontend and backend and helps LLMs write better code, though escape hatches and compile-time-only types weaken its guarantees.
Elegant, expressive, joyful to write
Recommended as an elegant, expressive language that makes developers happy and productive, especially for scripting and glue code; critics say metaprogramming and dynamic typing make large codebases hard to follow.
All 163 programming languages, ranked
Select a column heading to sort. Approval share is recommenders out of everyone who gave an opinion; the tick on each bar marks the 2 to 1 line the badge needs. Months counts the months, out of 13, in which someone recommended it.
| Rank | |||||||
|---|---|---|---|---|---|---|---|
| 1 | Rust | 2,039 | 973 | 68% | 13 | 4 yrs118 owners | Approved |
| 2 | Go | 1,254 | 651 | 66% | 13 | 5.9 yrs63 owners | — |
| 3 | Python | 1,067 | 821 | 57% | 12 | 18 yrs64 owners | — |
| 4 | Zig | 743 | 449 | 62% | 12 | 1 yr27 owners | — |
| 5 | TypeScript | 574 | 273 | 68% | 13 | 8 yrs17 owners | Approved |
| 6 | Java | 553 | 514 | 52% | 13 | 15 yrs34 owners | — |
| Tied 7 | Ruby | 359 | 162 | 69% | 13 | 15 yrs38 owners | Approved |
| Tied 7 | C# | 359 | 121 | 75% | 12 | 10 yrs20 owners | Approved |
| 9 | C++ | 351 | 531 | 40% | 12 | 20 yrs36 owners | — |
| 10 | Elixir | 318 | 46 | 87% | 12 | 9 yrs35 owners | Approved |
| 11 | PHP | 295 | 295 | 50% | 12 | 20 yrs28 owners | — |
| 12 | Haskell | 287 | 119 | 71% | 12 | 10 yrs11 owners | Approved |
| 13 | Swift | 272 | 245 | 53% | 12 | 5.5 yrs20 owners | — |
| 14 | Perl | 263 | 213 | 55% | 12 | 25 yrs32 owners | — |
| 15 | Clojure | 255 | 66 | 79% | 12 | 10 yrs33 owners | Approved |
| 16 | C programming language | 230 | 151 | 60% | 13 | 30 yrs14 owners | — |
| 17 | JavaScript | 216 | 265 | 45% | 12 | 20 yrs12 owners | — |
| 18 | OCaml | 210 | 62 | 77% | 12 | 20 yrs11 owners | Approved |
| 19 | Erlang/OTP | 193 | 40 | 83% | 12 | 9 yrs9 owners | Approved |
| 20 | Kotlin | 187 | 69 | 73% | 12 | 1.4 yrs3 owners | Approved |
| 21 | Julia | 157 | 69 | 69% | 12 | 8 yrs12 owners | Approved |
| 22 | F# | 154 | 29 | 84% | 12 | 8 yrs6 owners | Approved |
| 23 | Common Lisp | 140 | 43 | 77% | 12 | 15 yrs10 owners | Approved |
| 24 | Scala | 134 | 118 | 53% | 12 | 10 yrs15 owners | — |
| 25 | Ada | 131 | 34 | 79% | 12 | — | Approved |
| 26 | Gleam | 126 | 32 | 80% | 12 | — | Approved |
| 27 | Mojo | 124 | 85 | 59% | 12 | 2 yrs3 owners | — |
| 28 | Odin programming language | 108 | 28 | 79% | 12 | 2 yrs10 owners | Approved |
| 29 | Racket | 102 | 31 | 77% | 12 | 6 yrs5 owners | Approved |
| 30 | Nim | 99 | 24 | 80% | 12 | — | Approved |
| 31 | Prolog | 97 | 30 | 76% | 12 | 18 yrs6 owners | Approved |
| 32 | Forth programming language | 92 | 14 | 87% | 12 | 38 yrs4 owners | Approved |
| 33 | Fortran | 87 | 20 | 81% | 12 | 8 yrs5 owners | Approved |
| 34 | D programming language | 83 | 41 | 67% | 12 | 20 yrs4 owners | Approved |
| 35 | Elm | 78 | 49 | 61% | 12 | 2 yrs5 owners | — |
| 36 | Tcl | 74 | 15 | 83% | 12 | 30 yrs5 owners | Approved |
| 37 | Objective-C | 72 | 20 | 78% | 11 | 24 yrs4 owners | Approved |
| 38 | Smalltalk | 70 | 23 | 75% | 12 | 20 yrs5 owners | Approved |
| 39 | APL | 66 | 15 | 81% | 11 | 44 yrs6 owners | Approved |
| 40 | Dart programming language | 61 | 32 | 66% | 12 | — | — |
| 41 | Crystal programming language | 60 | 14 | 81% | 12 | — | Approved |
| 42 | Jai programming language | 51 | 24 | 68% | 12 | — | Approved |
| 43 | R | 50 | 23 | 68% | 11 | 10 yrs7 owners | Approved |
| Tied 44 | Janet programming language | 45 | 8 | 85% | 12 | — | Approved |
| Tied 44 | Logo programming language | 45 | 4 | 92% | 8 | — | Approved |
| 46 | C3 programming language | 44 | 28 | 61% | 12 | — | — |
| 47 | C# and .NET | 42 | 4 | 91% | 10 | 5 yrs3 owners | Approved |
| 48 | Goose programming language | 39 | 26 | 60% | 2 | — | — |
| 49 | Pascal | 38 | 18 | 68% | 12 | — | Approved |
| 50 | Bend programming language | 36 | 38 | 49% | 5 | — | — |
| 51 | R programming language | 35 | 12 | 74% | 9 | — | Approved |
| 52 | Raku | 32 | 25 | 56% | 12 | — | — |
| 53 | ClojureScript | 31 | 6 | 84% | 10 | — | Approved |
| Tied 54 | Emacs Lisp | 30 | 10 | 75% | 11 | 34 yrs4 owners | Approved |
| Tied 54 | Unison programming language | 30 | 4 | 88% | 5 | — | Approved |
| 56 | D programming language | 29 | 5 | 85% | 11 | — | Approved |
| 57 | Idris 2 | 28 | 9 | 76% | 10 | — | Approved |
| 58 | Hack programming language | 26 | 9 | 74% | 11 | — | Approved |
| 59 | Golang | 23 | 8 | 74% | 11 | — | Approved |
| 60 | Lisette programming language | 22 | 7 | 76% | 5 | — | Approved |
| 61 | Loon programming language | 21 | 5 | 81% | 3 | — | — |
| Tied 62 | Fennel | 20 | 1 | 95% | 11 | — | Approved |
| Tied 62 | Coalton | 20 | 2 | 91% | 10 | — | Approved |
| Tied 62 | V programming language | 20 | 18 | 53% | 9 | — | — |
| Tied 62 | Wyzer programming language | 20 | 9 | 69% | 1 | — | — |
| Tied 66 | Standard ML | 19 | 2 | 90% | 9 | — | Approved |
| Tied 66 | Roc programming language | 19 | 3 | 86% | 9 | — | Approved |
| Tied 66 | Han programming language | 19 | 0 | 100% | 1 | — | — |
| Tied 69 | Haxe | 18 | 5 | 78% | 10 | — | Approved |
| Tied 69 | jank programming language | 18 | 1 | 95% | 8 | — | Approved |
| Tied 71 | COBOL | 17 | 19 | 47% | 11 | — | — |
| Tied 71 | Inform 7 | 17 | 9 | 65% | 7 | — | — |
| Tied 71 | Coi | 17 | 1 | 94% | 2 | — | — |
| Tied 74 | Modula-2 | 16 | 5 | 76% | 11 | — | Approved |
| Tied 74 | Easel programming language | 16 | 7 | 70% | 10 | 4 yrs10 owners | Approved |
| Tied 74 | BAML | 16 | 2 | 89% | 5 | — | Approved |
| Tied 77 | PureScript | 15 | 1 | 94% | 10 | — | Approved |
| Tied 77 | SPy | 15 | 0 | 100% | 6 | — | Approved |
| Tied 77 | Rhombus | 15 | 8 | 65% | 5 | — | — |
| Tied 77 | Lobster programming language | 15 | 1 | 94% | 4 | — | Approved |
| Tied 77 | Mog programming language | 15 | 5 | 75% | 2 | — | — |
| Tied 82 | C/C++ | 14 | 23 | 38% | 8 | — | — |
| Tied 82 | Factor programming language | 14 | 0 | 100% | 7 | — | Approved |
| Tied 82 | Solod | 14 | 11 | 56% | 4 | — | — |
| Tied 82 | Sky programming language | 14 | 5 | 74% | 3 | — | — |
| Tied 82 | Nanolang | 14 | 8 | 64% | 2 | — | — |
| Tied 87 | ReScript | 13 | 2 | 87% | 10 | — | Approved |
| Tied 87 | PostScript | 13 | 4 | 76% | 8 | — | Approved |
| Tied 87 | Erlang/Elixir | 13 | 1 | 93% | 7 | — | Approved |
| Tied 87 | AutoLISP | 13 | 1 | 93% | 6 | 33 yrs7 owners | Approved |
| Tied 91 | Wuffs | 12 | 1 | 92% | 8 | — | Approved |
| Tied 91 | Nibble | 12 | 1 | 92% | 3 | — | — |
| Tied 91 | Zen-C | 12 | 16 | 43% | 2 | — | — |
| Tied 94 | Vale programming language | 11 | 2 | 85% | 8 | — | Approved |
| Tied 94 | Ü Programming Language | 11 | 10 | 52% | 4 | — | — |
| Tied 94 | Algol 68 | 11 | 4 | 73% | 4 | — | Approved |
| Tied 94 | Rue programming language | 11 | 9 | 55% | 2 | — | — |
| Tied 94 | Brunost | 11 | 2 | 85% | 1 | — | — |
| Tied 99 | Pony programming language | 10 | 0 | 100% | 9 | — | Approved |
| Tied 99 | Verse programming language | 10 | 3 | 77% | 7 | — | Approved |
| Tied 99 | VBA | 10 | 8 | 56% | 5 | — | — |
| Tied 99 | Catala | 10 | 1 | 91% | 4 | — | Approved |
| Tied 99 | Copper programming language | 10 | 3 | 77% | 2 | — | — |
| Tied 99 | Mach programming language | 10 | 0 | 100% | 1 | — | — |
| Tied 105 | Eiffel | 9 | 1 | 90% | 7 | — | — |
| Tied 105 | J programming language | 9 | 3 | 75% | 5 | — | — |
| Tied 105 | Cherri programming language | 9 | 0 | 100% | 2 | — | — |
| Tied 105 | Purrtran | 9 | 1 | 90% | 1 | — | — |
| Tied 105 | Amber programming language | 9 | 6 | 60% | 1 | — | — |
| Tied 110 | Self programming language | 8 | 0 | 100% | 8 | — | — |
| Tied 110 | Groovy | 8 | 9 | 47% | 7 | — | — |
| Tied 110 | VB.NET | 8 | 8 | 50% | 6 | — | — |
| Tied 110 | miniKanren | 8 | 1 | 89% | 6 | — | — |
| Tied 110 | ReasonML | 8 | 1 | 89% | 5 | — | — |
| Tied 110 | CoffeeScript | 8 | 4 | 67% | 5 | — | — |
| Tied 110 | Brainfuck | 8 | 2 | 80% | 3 | — | — |
| Tied 110 | Lumina programming language | 8 | 2 | 80% | 3 | — | — |
| Tied 110 | G# | 8 | 15 | 35% | 2 | — | — |
| Tied 110 | The Folders Programming Language | 8 | 2 | 80% | 1 | — | — |
| Tied 110 | XS programming language | 8 | 11 | 42% | 1 | — | — |
| Tied 121 | Carp programming language | 7 | 0 | 100% | 6 | — | — |
| Tied 121 | Hare programming language | 7 | 2 | 78% | 4 | — | — |
| Tied 121 | BBC BASIC | 7 | 0 | 100% | 4 | — | — |
| Tied 121 | Ante programming language | 7 | 2 | 78% | 4 | — | — |
| Tied 121 | Borgo | 7 | 3 | 70% | 3 | — | — |
| Tied 121 | Acadia | 7 | 4 | 64% | 3 | — | — |
| Tied 121 | Futhark | 7 | 2 | 78% | 3 | — | — |
| Tied 121 | Boo programming language | 7 | 1 | 88% | 2 | — | — |
| Tied 121 | Red programming language | 7 | 1 | 88% | 2 | — | — |
| Tied 121 | Tomo programming language | 7 | 3 | 70% | 2 | — | — |
| Tied 121 | Fusion Programming Language | 7 | 6 | 54% | 1 | — | — |
| Tied 121 | CodeSpeak | 7 | 10 | 41% | 1 | — | — |
| Tied 133 | Rebol | 6 | 1 | 86% | 6 | — | — |
| Tied 133 | Inform 6 | 6 | 1 | 86% | 6 | — | — |
| Tied 133 | AssemblyScript | 6 | 3 | 67% | 6 | — | — |
| Tied 133 | Raku (Perl 6) | 6 | 39 | 13% | 4 | — | — |
| Tied 133 | Austral programming language | 6 | 0 | 100% | 4 | — | — |
| Tied 133 | K programming language | 6 | 2 | 75% | 3 | — | — |
| Tied 133 | RPython | 6 | 2 | 75% | 3 | — | — |
| Tied 133 | Blorp Language | 6 | 4 | 60% | 2 | — | — |
| Tied 133 | ROX programming language | 6 | 1 | 86% | 2 | — | — |
| Tied 133 | Lambda 0.2 | 6 | 1 | 86% | 2 | — | — |
| Tied 133 | Zena programming language | 6 | 0 | 100% | 2 | — | — |
| Tied 133 | Killswitch programming language | 6 | 2 | 75% | 2 | — | — |
| Tied 133 | Jacquard programming language | 6 | 4 | 60% | 1 | — | — |
| Tied 133 | Jaithon 3 | 6 | 3 | 67% | 1 | — | — |
| Tied 133 | Impossible Machines | 6 | 0 | 100% | 1 | — | — |
| Tied 133 | ABC programming language | 6 | 1 | 86% | 1 | — | — |
| Tied 149 | AMOS BASIC | 5 | 0 | 100% | 6 | — | — |
| Tied 149 | Shen | 5 | 3 | 63% | 5 | — | — |
| Tied 149 | Flix programming language | 5 | 0 | 100% | 5 | — | — |
| Tied 149 | PL/SQL | 5 | 2 | 71% | 5 | — | — |
| Tied 149 | Ur/Web | 5 | 0 | 100% | 4 | — | — |
| Tied 149 | ChucK | 5 | 0 | 100% | 4 | — | — |
| Tied 149 | Chapel programming language | 5 | 2 | 71% | 4 | — | — |
| Tied 149 | Teal programming language | 5 | 4 | 56% | 2 | — | — |
| Tied 149 | Phel | 5 | 0 | 100% | 2 | — | — |
| Tied 149 | Gossamer programming language | 5 | 11 | 31% | 1 | — | — |
| Tied 149 | HyTags | 5 | 1 | 83% | 1 | — | — |
| Tied 149 | NoiseLang | 5 | 1 | 83% | 1 | — | — |
| Tied 149 | Fuse programming language | 5 | 2 | 71% | 1 | — | — |
| Tied 149 | Vera programming language | 5 | 18 | 22% | 1 | — | — |
| Tied 149 | Tabloid programming language | 5 | 0 | 100% | 1 | — | — |
How we rank
Rank is the number of separate people who recommend a product in a Hacker News comment over the past year. Someone who praises the same programming language in five threads counts once.
The badge goes to programming languages that at least 10 people recommend, with recommenders outnumbering critics at least 2 to 1, recommended in at least 4 of the 13 months.
Rankings are never for sale. We may earn a commission when you buy through our links. It never changes the order.