TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Programming languages with small surface area

10 点作者 orangetuba超过 2 年前
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 条评论

karmakaze超过 2 年前
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-tree超过 2 年前
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 未加载
Qem超过 2 年前
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 未加载
tionate超过 2 年前
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 未加载
Jtsummers超过 2 年前
Forth, Lua (with LuaJIT pretty quick), Scheme, Pascal, probably a lot more.
评论 #33649404 未加载
tored超过 2 年前
There are many BASIC dialects with a small surface area. The one I use is PureBasic, however it is commercial.
aristofun超过 2 年前
Ruby, Typescript
huqedato超过 2 年前
Elixir.