15 comments

  • pull_my_finger 1 hour ago
    I need to put a disclaimer to say that I hate when people hijack a post about foo to talk about bar, but:

    > The language is not object oriented but it provides some features to facilitate object oriented designs.

    It has classes and implicit `self`. Not nothing, but I don't think it's incorrect to say has any more OOP than general purpose languages like Lua or JavaScript in that sense.

    Something like Pony[1] is a more mature and feature rich entry and has a much better OOP story.

    All that said: a) I'm sorry for doing the thing I hate when other people do

    b) Creating a language is a big undertaking, and it's super cool that they did it

    c) I see it seems to already be written in Copper too, which is also very neat!

    [1]: https://www.ponylang.io/

    • stevefolta 51 minutes ago
      Re "c)": No, self-hosting is the biggest temptation, and the worst mistake, for any programming language. It's death to bootstrapping. However, if you do succumb to the temptation to self-host, having a C backend, as Copper does, is probably the best way to handle it.
      • ktimespi 47 minutes ago
        What's the problem with self-hosting? I do imagine it's easier to write a compiler in something like Haskell.
    • dumpsterdiver 1 hour ago
      Since we’re nitpicking: you used a double negative, which is a confusing way of communicating an idea.
      • soperj 46 minutes ago
        The bike shedders have entered the chat.

        There's a difference between nitpicking the topic of the article and nitpicking someone's grammar.

        • dumpsterdiver 27 minutes ago
          To be fair, it really is a confusing way of communicating, and it’s useful feedback when taken to heart.
  • nirei 14 minutes ago
    How does it free memory? I don't get it. I browsed the docs a bit but didn't find a single reference to deallocation. There's alloc for heap allocation but no free?
    • christophilus 9 minutes ago
      In the standard library, there are some allocators with free, so it looks like you’re expected to call those. It is strange that none of the examples seem to cover this, though.
  • sinuhe69 28 minutes ago
    I wish the author has written about the motives behind the language and why someone should choose Copper. We have in fact more programming languages than we actually can use.
  • ricardobeat 40 minutes ago
    As a Crystal fan, really nice syntax. The documentation leaves open several questions:

    What is the memory model here? What does it compile to? What makes it 'low level'? Is there a GC? Does it have ABI compatibility with C or a FFI?

  • small_model 9 minutes ago
    I think the days of releasing new programming languages is gone, it's like releasing a new punch card format. Humans don't code anymore and so programming language is really a choice LLM's make for you.
    • jenniferhooley 6 minutes ago
      What leads you to think that? All the engineers I know always choose the language depending on the project details, scope, their own or team preferences, etc.
  • bogdanoff_2 1 day ago
    Not mine, but I found this to be really interesting as a language created by one person for their own use.

    Also really interesting are the author's blog with articles on language design (for example his thoughts on exceptions, and how he added them to his language, then decided against them), and the change log for the language, showing its evolution.

    https://tibleiz.net/

    https://tibleiz.net/copper/changes.html

  • mwkaufma 26 minutes ago
    "Copper is a programming language that I use as a replacement to C."

    That's used... to make what?

  • DenisM 2 hours ago
    Garbage collected? Couldn’t tell from the docs.
  • stevefolta 47 minutes ago
    Looks nice and small. Too bad it doesn't quite actually build (on Linux). Also, no string interpolation (AFAIC) and no kebab-case.

    Here's my current stab at a small compiled language: <https://codeberg.org/stevefolta/lx-2025>.

  • skybrian 2 hours ago
    It seems pretty tasteful, but I don't see anything about character sets. How does it support Unicode? What does a string of 16-bit characters represent?

    There do seem to be some Unicode constants in the standard library:

    https://tibleiz.net/browser.html?path=std&title=Standard%20L...

  • leecommamichael 1 hour ago
    Seems like Dart with indentation instead of braces.
    • christophilus 1 hour ago
      It doesn’t look like it cares about indentation. It’s more like Basic or Ruby.
  • flossly 2 hours ago
    Looks like Crystal to me. But with stronger typing.

    https://crystal-lang.org

    Neat little language...

  • Vishal_Max 1 hour ago
    The simplicity is appreciated.
  • analog8374 2 hours ago
    This might be my new favorite language. Deeply sane.
  • jdw64 3 hours ago
    It’s similar to Python syntax.
    • abound 3 hours ago
      From the website itself:

      > Ruby-style syntax

      Also, Python has significant whitespace, which this language does not appear to have.

      • jdw64 2 hours ago
        The end syntax is definitely Ruby-style, but I guess I felt that way just from looking at syntax like var, func, and for x in. It does seem like a mix of the two, but maybe it’s because I’m so used to Python that I noticed the Python-like syntax first. Thanks for pointing that out.