Live data from Hacker News

Om is a novel, maximally-simple concatenative language

om-language.org

11–20 of 53 posts

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

#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 intrigued by Factor, I've never managed to write anything useful in it...)

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

#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'.

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

#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?

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

#15
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…

That happens too often with Forth. Someone gets interested, thinks it would be sooo awesome to add this and that "modern" feature, and then they end up with something that combines the disadvantages of Forth with the complications of what they've added. An oddity nobody wants to use, and yet another bit-roting carcass is some CVS.

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration [1]

I think that Forth only works with people who've started with assembly programming. Someone who started with a high level language suffered that sort of brain damage that make them unable to feel complexity even when it coils around them and give them a hard time breathing.

[1] https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.htm...

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

#16
post #8

A "Hello World" code example would be worth more than 1000 words.

There’s a Hello World on the page

No, that is not a program emitting to output stream "hello, world!"

It emits "{Hello, world!}" which is like emitting "func main() { print("hello, world!" } }"

A hello, world for this language would take "hello, world" as an operand to some operator that spits out strings. That example is not there.

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

#18

Earlier quoted context omitted.

How's this important for a project which is obviously an experiment in PLs field? You either interested in such things, or not, nothing else applies.

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?

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

#19

Earlier quoted context omitted.

There’s a Hello World on the page

No, that is not a program emitting to output stream "hello, world!" It emits "{Hello, world!}" which is like emitting "func main() { print("hello, world!" } }" A hello, world for this language would take "hello, world" as an operand to some operator that spits out strings. That example is not there.

If you read the description the language outputs programs. If it would be able to output any string, it wouldn't be concanative language anymore.

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

#20

Earlier quoted context omitted.

How's this important for a project which is obviously an experiment in PLs field? You either interested in such things, or not, nothing else applies.

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.

Just because it hasn't seen activity in awhile doesn't mean it can't be used at all.

Sure, you're not going to want to start up a major project with a long-abandoned language experiment, but frankly it's not much of a step down from even an active language experiment.

I suppose it's got a greater chance of being harder to get going, but so much of that depends on how it was built in the first place that simply being older isn't enough information make much of a guess on that either.

Post reply on HN