Comment by esafak

16 hours ago

[flagged]

Can you please not post shallow dismissals of other people's work? This is in the site guidelines: https://news.ycombinator.com/newsguidelines.html. They also ask you not to be snarky.

Nasty swipes like this routinely get upvoted, and then we end up with them at the top of a thread, choking out everything HN is supposed to be for. (I've downweighted it now.)

It's clearly a language designed for people interested in programming languages. Plenty of straightforward examples to show what makes this language interesting/different/worth your time.

But if you're incurious about things that aren't immediately practical (which has sadly been a growing number of HN community in more recent years), you will probably not be interested.

In an era when so much "practical" coding can be offloaded to an LLM, I'm particularly interested in seeing languages that are doing something different even if it makes them initially impractical.

I don't think the project wants any "takers" per se. The first sentence describes it as:

> a novel, maximally-simple concatenative, homoiconic programming and algorithm notation language

This is a toy language designed to showcase a novel programming paradigm.

Personally, I like tech demonstrations, so I scrolled down and found the examples section. That's all I was hoping to get out of this interaction.

I would at least update body tag to add basic css to make this more readable:

    <body style="width:80%;margin:auto;">

  • There is nothing wrong with the site as it is. The text reflows, so you can size your window to any width that you find comfortable. With a decent window manager this is just a few keystrokes at most.

    • A huge chunk of people don't have, want or care about a "decent window manager" (and many of them are competent developers) and they'll just bail.

Yeah show me the 5-line HTTP server

  • not that kind of language, it does not even come with integer types or "plus" operator by default.. they do give an example of

        define { minutes { dequote choose {minutes} {} = {:} <-[characters] } } { minutes {1:23} }
    

    which does Python's equivalent of

        "1:23".split(":", 1)[1]
    

    or for a more direct translation:

        def minutes(x): 
            return x[1:] if x[0] == ':' else minutes(x[1:])
        minutes("1:23")

  • "The Om language is not:

    complete. Although the intent is to develop it into a full-featured language, the software is currently at a very early "proof of concept" stage, requiring the addition of many operations (such as basic number and file operations) and optimizations before it can be considered useful for any real-world purpose. It has been made available in order to demonstrate the underlying concepts and welcome others to get involved in early development."

I am always kind of surprised when I go to a landing page for a language and there isn't any actual code. This is one of my biggest complaints about the rust language page, it feels crazy to me that there's no code and I think this is just a ridiculous choice (and I know this has been brought up before).

The old page had a built-in sandbox. Go used to have a more "Front and center" sandbox too but at least it's there if you scroll down https://go.dev/

  • There is code. Small examples start halfway down the page, and there's one 20-line example. Not much, but it's not accurate to say there's none.

    It would be helpful to see any kind of motivation for the project though. Anything at all.

    • On my phone that code is about 250+ lines down, probably 4-5 screens down.

      It basically doesn't exist as far as marketing is concerned.

      2 replies →

  • There is code, search for 'examples'.

    It concludes by implementing a fold:

       define
       {
           [Fold]<- {
               rearrange
               {
                   rearrange
                   {
                       dequote
                       choose
                       quote Result
                       pair pair pair {[Fold]<-} Function Result Remainder
                       Remainder
                   }
                   {Result Remainder}
                   dequote Function Base <-[terms] Source
               }
               {Function Base Source}
            }
       }
       {
           [Fold]<- {[literal]<-} {} {1 2 3}
       }

It perplexes me that someone would not have a few cookbook style examples above the fold on a website that describes a novel programming language.