CobaltC – The Successor to C?

(strawberry9.github.io)

13 points | by SilentLambda 4 hours ago

8 comments

  • ethin 3 hours ago
    This is so obviously written by ChatGPT from what I can tell. Not even an attempt to copyedit it unless I missed something.
    • thinkafter 2 hours ago
      I’m not sure about copy but the UI seems designed to look like an AI response which is certainly a choice
    • hyperhello 2 hours ago
      [flagged]
  • pizlonator 3 hours ago
    This doesnt seems to be meaningfully different from Rust.

    > does not require tracing garbage collection

    Just call it garbage collection.

    (Applies in two ways: if you think that garbage collection subsumes reference counting then this language doesn’t require garbage collection in the sense that it also doesn’t require reference counting; if you think that garbage collection does not subsume reference counting then there’s no point in saying three words when you can say two.)

    • AlotOfReading 1 hour ago
      It's less specified than rust. For example, you can bind references to individual collection elements here. It doesn't seem to prohibit borrowing a dynamically indexed element either, which is one hell of a static analysis lift. Seems like you can also have simultaneous references to distinct static indices (e.g. &mut arr[0] and &mut arr[1]) as long as you don't do invalidating operations, which isn't expressible in NLL or polonius. That's feasible for a borrowchecker at least.
  • ronsor 3 hours ago
    Before I read this, what is there about C3 [0] you don't like?

    [0] https://c3-lang.org

    • jjtheblunt 3 hours ago
      C3 is an embarrassing mess regarding integer types and sizes, missing C99's stdint.h defs, for example.
      • strenholme 3 hours ago
        To clarify: C3 has fixed sized ints. Maybe the parent poster doesn’t like their names, but they are fixed sized, as follows:

          Name    Size    Signed
          bool    1       no
          ichar   8       yes
          char    8       no
          short   16      yes
          ushort  16      no
          int     32      yes
          uint    32      no
          long    64      yes
          ulong   64      no
          int128  128     yes
          uint128 128     no
        
        Source: https://c3-lang.org/language-overview/types/#integer-types
  • rurban 2 hours ago
    Unsafe identifiers, prone to homoglyph attacks. No TR39 provisions. Worse than rust or Java. https://strawberry9.github.io/the-wrong-memory/Appendix_06.h...
  • ternaryoperator 2 hours ago
    It's great to have it all spec'd out. However, I think specs like this suffer the same fate as war plans: they get modified quickly as soon as implementation begins. Nonetheless, it's good to have a clear idea of where you're headed. I just wouldn't call it "Final."
  • drgo 4 hours ago
    reads more like a Wishlist rather than actual implementable specs.
    • nextaccountic 3 hours ago
      every spec is implementable

      some just delegate more or less to the implementation

      • nextaccountic 3 hours ago
        that said, the borrowing part is incredibly short on details

        i read trying to assess if it's more or less expressible than rust's current nll or the future polonius and honestly there's nothing there

  • yoklov 3 hours ago
    This is certainly copying off Rust's homework...
    • Fordec 3 hours ago
      Who copied off Haskells homework, so here we are.
      • irishcoffee 3 hours ago
        And cloudflare still somehow shipped a rust binary that crashed half the internet.
        • katdork 2 hours ago
          and I've had Haskell binaries attempt to use infinite quantities of RAM (looking at an old version of dconf2nix here) and thus crash
  • woodruffw 2 hours ago
    Another one?
    • SilentLambda 1 hour ago
      Yes, but remember is the last appendix to a book, and book provides the context for this appendix. So yes, in that sense, it's just another one attempting to address the memory-safety issues of C. At least this one uses C like syntax and doesn't require C programmers to learn some alien syntax. Of course, this is just a spec, Rust is well and truly live in the environment. The book is more interesting than the spec.
    • Gualdrapo 1 hour ago
      Odin's turn to be "the sucessor of C" is due this month