14 votes

DreamBerd, the perfect programming language

3 comments

  1. Hvv
    Link
    The section on variable names reminded me of an incredible snippet of Python 2 code: # Prints 1 to 10 i = 1 while True: print i i += 1 if i > 10: True = False (Online interpreter in case you...

    The section on variable names reminded me of an incredible snippet of Python 2 code:

    # Prints 1 to 10
    i = 1
    while True:
        print i
        i += 1
        if i > 10:
            True = False
    

    (Online interpreter in case you needed to see for yourself)

    It's a shame they didn't bring this feature to Python 3; clearly it was ahead of its time.

    5 votes
  2. petrichor
    Link
    Brilliant. Regex types are a cool little invention. Is that endemic to DreamBerd? I haven't seen them anywhere before and I can't imagine why - it's such a powerful feature. I guess the...

    Brilliant.

    Regex types are a cool little invention. Is that endemic to DreamBerd? I haven't seen them anywhere before and I can't imagine why - it's such a powerful feature. I guess the implementation is the tricky part, though.

    Their lifetime syntax is neat and probably my favorite part of the whole language. Knowing where to put lifetime markers in Rust can be tricky - but what if you didn't have to specify them? And retroactively specifying lifetimes, what a good extension to the standard linearity involved. It reminds me of a lifetime system in another language actually, I think it was called ATH or something - didn't take off due to a terrible standard library and a reputation for being used for malware among some other things, so it's cool to see similar concepts being explored again.

    I also especially like their auto-generated compiler from the given descriptive grammar of the language.
    That's a really robust adaptation of modern compiler technologies that I think more new projects should adopt.

    The tagline made me a bit skeptical at first: but DreamBerd certainly seems like a "best of all worlds" language. I'm excited to see where it goes in the future.

    2 votes
  3. creek
    Link
    This is four dimensional coding.

    Specify a negative lifetime to make a variable exist before its creation, and disappear after its creation.

    This is four dimensional coding.