TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Programming languages with small surface area

10 pointsby orangetubaover 2 years ago
What are good programming languages with a small surface area? Languages like C and Go? With large languages like C++ and Rust, I get decision paralysis, and I end up spending too much time with language details.<p>I tried hard to like Go, but as of now, I just don&#x27;t like it. What languages would you recommend that I check out? I already know Python and C, and I would like to learn something more performant than Python.

8 comments

karmakazeover 2 years ago
F#&#x2F;OCaml may not have a small total surface area (I&#x27;m not that deep in it), but you can do a whole lot knowing basic constructions.<p>If you haven&#x27;t used a functional language there&#x27;s an alternative approach without the cognitive overhead of thinking about statements executing in time (most of the time). For a non-static typed example, Elixir (but that usually also brings in Phoenix framework). Zig is another interesting one for different reasons.
hazelnut-treeover 2 years ago
There are not many languages (in active use) with a small surface area. Go is small, Lua is another. However, a small language does not always mean simple - you may still encounter code that is difficult to unravel.<p>New programming languages tend to range from medium-to-large in size.<p>Here are number of keywords in some languages. Note: this is a bit of a blunt measure of a language&#x27;s size so you may not consider it a measure of small surface area:<p>- Lua (21 keywords)<p>- Go (25 keywords)<p>- Julia (30+ keywords)<p>- Python (30+ keywords)<p>- Javascript (30+ keywords)<p>- Ruby (40+ keywords)<p>- Crystal (50+ keywords)<p>- Rust (50+ keywords)<p>- Nim (60+ keywords)<p>- C# (70+ keywords)<p>- PHP (70+ keywords)<p>Languages still in development<p>- Odin (30+ keywords)<p>- V lang (40+ keywords)<p>- Zig (40+ keywords)
评论 #33799226 未加载
评论 #33651738 未加载
Qemover 2 years ago
In terms of surface area, I think is hard to beat languages in the Smalltalk family. Smalltalk has only six reserved words: true , false , nil , self , super and thisContext. To emphasize the simplicity, there is even a smalltalk postcard to show the whole syntax fits on it. See <a href="https:&#x2F;&#x2F;richardeng.medium.com&#x2F;syntax-on-a-post-card-cb6d85fabf88" rel="nofollow">https:&#x2F;&#x2F;richardeng.medium.com&#x2F;syntax-on-a-post-card-cb6d85fa...</a><p>I think this postcard remark may be a bit misleading sometimes, as in practice the complexity is shifted from syntax to the large class library in the system image, that packs a lot of functionality. But yet the environment is sweet and has great discoverability, with functionality like search by example. See <a href="https:&#x2F;&#x2F;youtu.be&#x2F;HOuZyOKa91o" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;HOuZyOKa91o</a><p>The Smalltalk flavor I strongly recommend is Pharo. There&#x27;s a MOOC[1] on it, and there are several free books that cover the basics of the language itself[2][3], data visualisation[4] and numeric stuff[5]. [1]. <a href="https:&#x2F;&#x2F;mooc.pharo.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mooc.pharo.org&#x2F;</a> [2]. <a href="https:&#x2F;&#x2F;github.com&#x2F;SquareBracketAssociates&#x2F;PharoByExample9&#x2F;r" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;SquareBracketAssociates&#x2F;PharoByExample9&#x2F;r</a>... [3]. <a href="https:&#x2F;&#x2F;books.pharo.org&#x2F;deep-into-pharo&#x2F;" rel="nofollow">https:&#x2F;&#x2F;books.pharo.org&#x2F;deep-into-pharo&#x2F;</a> [4]. <a href="http:&#x2F;&#x2F;agilevisualization.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;agilevisualization.com&#x2F;</a> [5]. <a href="https:&#x2F;&#x2F;books.pharo.org&#x2F;numerical-methods&#x2F;" rel="nofollow">https:&#x2F;&#x2F;books.pharo.org&#x2F;numerical-methods&#x2F;</a>
评论 #33673572 未加载
tionateover 2 years ago
Clojure is tiny in that there are very few special forms (less than 20 according to [0]) and most things are just plain functions.<p>More importantly, it is developed extremely conservatively which means<p>1) you don’t need to learn the syntax&#x2F;feature of the month (like eg javascript&#x2F;python)<p>2) the code you wrote a decade ago will still work.<p>That said, it does sit on top of Java&#x2F;JS so you can access those parts easily if you need to.<p>[0]: <a href="https:&#x2F;&#x2F;clojure.org&#x2F;reference&#x2F;special_forms" rel="nofollow">https:&#x2F;&#x2F;clojure.org&#x2F;reference&#x2F;special_forms</a>
评论 #33652342 未加载
Jtsummersover 2 years ago
Forth, Lua (with LuaJIT pretty quick), Scheme, Pascal, probably a lot more.
评论 #33649404 未加载
toredover 2 years ago
There are many BASIC dialects with a small surface area. The one I use is PureBasic, however it is commercial.
aristofunover 2 years ago
Ruby, Typescript
huqedatoover 2 years ago
Elixir.