Live data from Hacker News

Om is a novel, maximally-simple concatenative language

om-language.org

31–40 of 53 posts

Re: Om is a novel, maximally-simple concatenative language

#31
post #28

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.

As a concatenative language lover/designer I just thought I'd put it out there how much of an inspiration Om has been to me, I absolutely adore your language! Om is one of the most beautiful programming languages I've ever seen, and surely one of the most unique too.

Most other concatenative languages are Joy/Factor-esque stack languages, so to see an entirely different vision with your prefix notation is an absolute delight . Your panmorphic type system is also genius (the only other language I know of that has something similar is TCL). The way you treat whitespace separators in your syntax is also very clever, I love that it basically enables one to encode strings without a dedicated literal syntax element.

Anyway, I just wanted to let you know how much I appreciate your design and implementation efforts. I hope your rewrite is going well, and I look very much forward to its eventual release...

Re: Om is a novel, maximally-simple concatenative language

#33
post #14
post #13

Could someone explain this bit from the intro to me? > Recursion is very efficient in the Om language, due to (a) the "eager" evaluation model enabled by prefix concatenative syntax... How is the syntax of any relevance for the evaluation model? Once the AST is parsed, the syntax is gone and we're just left with pairs of 'operator' and 'operand'.

Another question about the syntax: Why are the curly braces also part of the syntax for operators? They are delimiters for the operands but also play some part in the definition of operators? Is this solving some problem or did the author just like curlies?

If you're talking about the curly braces after the backtick in the syntax diagram for operators, I think that's just a way to escape those special characters so you can use them in operator names. It would be the same as escaping a double quotation mark in a string literal with a backslash, i.e: "\""

Re: Om is a novel, maximally-simple concatenative language

#34

Earlier quoted context omitted.

I don't know, maybe someone wanted to try writing a program in it, which seems not irrelevant to programming languages. To most people, even an experimental programming language isn't just an objet d'art ; it's more like an ornate tennis racket, and it doesn't look like this one will ever be strung.

> objet d'art Why french?

That's a reasonable question, and one I asked myself. I considered some options:

- "Piece of art" didn't communicate engagement with the item as art

- "Work of art" is often used to mean a masterpiece

- "Artwork" is a neologism of the sort I avoid

Finally, "objet d'art" communicates appreciation as art, but not necessarily any artistic quality, and it's a phrase people use in this context.

While we're asking irrelevant questions, why are the majority of your comments questions and criticisms of trivial matters of wording? Obviously, we agree that words are important, but it's equally important to engage with the intended meaning of those words.

Re: Om is a novel, maximally-simple concatenative language

#35
post #11

Earlier quoted context omitted.

Right? Its creator obviously knows Forth, but it feels like they've gone to extreme lengths to make it prefix rather than postfix, at the price of making it much more confusing than it needs to be? It's really not obvious to me that if they were both equally complete, there'd be any advantage at all to choosing this over Factor... (That said, I did a lot of Forth programming in the old days, and while I am utterly in…

The advantage is that the language isn't stackful. This is about more than just underflow, there isn't a stack at all. Missed arity is a syntax error, not a mistake in reasoning about the program state. I'm not sold on Om's solution, I doubt the author was either since it's frozen in time. I have long wondered about a good prefixed concatenative language, without really getting anywhere. Om seems too much like inside…

Stackfulness and the possibility of stack underflows are not actually constrained in any significant manner by whether or not a language uses prefix or postfix notation, and it would be more-or-less trivial to reject arity mismatches in a postfix language as well.

The one real advantage that prefix notation has is that it is familiar, since it is so widespread in mathematical notation. Though that particular advantage would optimize the experience of using a language for people new to programming or that particular language, whereas it might realistically make more sense to optimize for the experience of people already familiar with a language, since those will constitute the vast majority of development time in any serious language, and I would argue that postfix notation has an advantage there in most domains.

Re: Om is a novel, maximally-simple concatenative language

#37
post #3

There isn't much activity on Github. The last release was nine years ago and all the code contributions are from a single person. https://github.com/sparist/Om

Lack of activity means lack of activity. Code doesn't evaporate if the API hasn't broken promises like a javascript library does every other week.

Re: Om is a novel, maximally-simple concatenative language

#38

FWIW, I've been playing around with Joy (Manfred von Thun's concatinative language) and there's definitely "something there" IMO. For one thing, I've come around to the view that syntax is waaaay over-emphasized in our current languages. The way I like to put it is syntax is a MacGuffin , "an object, device, or event that is necessary to the plot and the motivation of the characters, but insignificant, unimportant, o…

Well, LISP too. Define, compose, and apply. Barely above a common language of math and mirroring many languages' parsed AST of equivalent constructs.

People enjoy using simple things in a "worse is better"/paradox of choice way. Unfortunately, simple doesn't do threading, exceptions, side-effects, or C library linkage. Simple doesn't scale when you need a deploy button, a backup and restore button, firewall rules API, monitoring logic, or a scale-to-5000-stateless-nodes-behind-a-proxy supervisory service.

Re: Om is a novel, maximally-simple concatenative language

#39
post #28

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.

I'm glad to know you're still working on it! I thought the current Om was a finished experiment.

By the way, your language has been a big inspiration for my own designs. Thanks!

Re: Om is a novel, maximally-simple concatenative language

#40
post #11

Interesting idea. Though maximally-simple claim doesn't look warranted to me. It feels more complex than most of Forth incarnations.

Right? Its creator obviously knows Forth, but it feels like they've gone to extreme lengths to make it prefix rather than postfix, at the price of making it much more confusing than it needs to be? It's really not obvious to me that if they were both equally complete, there'd be any advantage at all to choosing this over Factor... (That said, I did a lot of Forth programming in the old days, and while I am utterly in…

We have a Factor Discord if you want some help starting out!

https://discord.gg/QxJYZx3QDf

Post reply on HN