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.

Om is a novel, maximally-simple concatenative language

147 pointsby memorableover 2 years ago

13 comments

sparistover 2 years ago
Original author here. Didn’t expect my little hobby project to land on the front page of Hacker News. In the midst of a complete rewrite of the language which I unfortunately only get to nibble at here and there; will hopefully publish it soon.
评论 #33386399 未加载
评论 #33386954 未加载
carapaceover 2 years ago
FWIW, I&#x27;ve been playing around with Joy (Manfred von Thun&#x27;s concatinative language) and there&#x27;s definitely &quot;something there&quot; IMO.<p>For one thing, I&#x27;ve come around to the view that syntax is waaaay over-emphasized in our current languages. The way I like to put it is <i>syntax is a MacGuffin</i>, &quot;an object, device, or event that is necessary to the plot and the motivation of the characters, but insignificant, unimportant, or irrelevant in itself.&quot; You have to have some syntax to write programs, but not nearly as much as we typically use. I haven&#x27;t dug into Om yet, but Joy feels like the simplest useful language. (BrainF*ck is simpler but harder to use, Lisp and Forth are more complex.)<p>For another, the concatinative systems seem to be simpler to reason about than Lambda Calculus-based systems (most current PLs.) What I mean is, these languages fulfill Backus&#x27; vision of FP systems wherein you can derive programs by doing algebraic manipulation of programs. (You can do this in any language, of course, but Joy et. al. seem to make it especially easy.) I suspect this has something to do with Category Theory (see <a href="http:&#x2F;&#x2F;conal.net&#x2F;papers&#x2F;compiling-to-categories&#x2F;" rel="nofollow">http:&#x2F;&#x2F;conal.net&#x2F;papers&#x2F;compiling-to-categories&#x2F;</a> )<p>All this to say, if you haven&#x27;t already, do have a look at Concatinative languages.
评论 #33386796 未加载
jboynycover 2 years ago
I found some context about this project in a comment by its creator: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5098216" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5098216</a>
Garlefover 2 years ago
Could someone explain this bit from the intro to me?<p>&gt; Recursion is very efficient in the Om language, due to (a) the &quot;eager&quot; evaluation model enabled by prefix concatenative syntax...<p>How is the syntax of any relevance for the evaluation model?<p>Once the AST is parsed, the syntax is gone and we&#x27;re just left with pairs of &#x27;operator&#x27; and &#x27;operand&#x27;.
评论 #33383846 未加载
评论 #33387981 未加载
jp0dover 2 years ago
There isn&#x27;t much activity on Github. The last release was nine years ago and all the code contributions are from a single person.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;sparist&#x2F;Om" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sparist&#x2F;Om</a>
评论 #33382900 未加载
评论 #33386702 未加载
brokenkebab2over 2 years ago
Interesting idea. Though maximally-simple claim doesn&#x27;t look warranted to me. It feels more complex than most of Forth incarnations.
评论 #33383351 未加载
mncharityover 2 years ago
Has anyone seen use of a concatenative language, to build vocabulary for broader programming language implementation? So vocabulary for linkage and PICs and stacks and gc and threads and so much else. Not merely &quot;I have this language, so I&#x27;ll implement and tool it in itself&quot;, but moonshot &quot;here&#x27;s a vocabulary to start implementing other languages... all other languages&quot;. Aspiring to implement a C, a V8, an OCaml, and more. Perhaps with bootstrap aids on the side, like a Z3 prover. Sort of like a lisp machine approach, with an integrated commonality from low-level bit twiddling to OS to AI. But with a Racket or Poplog flavor of scaffolding language-like platforms on which to stand. Something like a forth bootstrap, but which doesn&#x27;t stall out having reached forth, but keeps going, describing a richer and richer space of computation. Has anyone seen anything remotely like that?
评论 #33388995 未加载
评论 #33388750 未加载
jansanover 2 years ago
A &quot;Hello World&quot; code example would be worth more than 1000 words.
评论 #33383455 未加载
评论 #33383296 未加载
评论 #33383317 未加载
asdfasdfasdfgggover 2 years ago
If hating on Lisp’s parentheses in your spare time is not providing enough joy for you, I present to you Om {with which you can complain about too many curlies}.
garganzolover 2 years ago
Looks like an intriguing idea but it lacks examples except the &quot;Hello world&quot; at the bottom of the page. But it&#x27;s not enough! More examples please.
culiover 2 years ago
Surprised it doesn&#x27;t show up on PLDB:<p><a href="https:&#x2F;&#x2F;pldb.com&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;pldb.com&#x2F;index.html</a>
评论 #33397140 未加载
heynowheynowover 2 years ago
Perhaps I missed it, but I was hoping for currying and application.
guerrillaover 2 years ago
Looks like Forth but more complicated to me...
评论 #33385494 未加载