Arguments are passed by ref, not by val. Good luck with recursion!
Joker_vDyesterday at 10:11 PM
Surprisingly, the most irritating nitpick for me is the choice of the file extension â surely that should've been ".cu", not ".co"? If I were developing an e.g. Iron programming language (hypothetically â although perhaps so named a language already exists), I'd pick ".fe" in a heartbeat.
Then again, I'm the kind of person who've chosen $'.\U0001F9CC' (that is, $'.\xF0\x9F\xA7\x8C') for a file extension of my own toy language so...
gorgoileryesterday at 8:46 PM
Itâs nice they tried with a more fleshed out exemplar. Polymorphism (âgenericsâ) and interfaces (âOOPâ) would have been even better to see, especially across any kind of visibility boundary enforced by the language (packages, and the like.)
Programming to an abstract interface â and in large codebases, enforced visibility controls â represent the middle ground everyone wants, in my experience, between âOOPâ and âsir, this is Câ.
ricardobeatyesterday at 6:27 PM
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?
bogdanoff_2last Friday at 7:09 PM
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.
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!
if every `=` is always a copy of reference, are we losing some "rvalue" optimizations? (I think Stateful Objects / Stateless Objects are basically lvalue / rvalue, respectively) For example, if a struct is small enough, even smaller than a pointer, and we know its address is never taken, wouldn't it be more profitable to just copy by values to avoid another pointer dereference? Furthermore, if only a single struct field (or attribute) is used, wouldn't it be more profitable to just pass that field value instead of passing around the reference to that struct, assuming there is no ABI issue? (the classic scalar replace of aggregate)
nireiyesterday at 6:53 PM
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?
sinuhe69yesterday at 6:39 PM
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.
deletedtoday at 3:02 AM
DenisMyesterday at 4:17 PM
Garbage collected? Couldnât tell from the docs.
skybrianyesterday at 4:25 PM
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:
What about binding to external C ABI? I can haz Vulkan?
digitaltreesyesterday at 8:21 PM
Seems really interesting
desireco42yesterday at 9:02 PM
Really hard to make opinion based on few small examples but I can say I like what I see, Ruby like syntax definitely doesn't hurt language.
Multiple return values are kind of weird, but maybe it is just me. Overall this is something I will give a try.
Vishal_Maxyesterday at 5:42 PM
The simplicity is appreciated.
mwkaufmayesterday at 6:41 PM
"Copper is a programming language that I use as a replacement to C."
That's used... to make what?
analog8374yesterday at 4:55 PM
This might be my new favorite language. Deeply sane.
jdw64yesterday at 3:41 PM
Itâs similar to Python syntax.
Panzerschrektoday at 5:07 AM
Is it memory safe? Or is it yet another "better C"?
blenser4today at 8:07 AM
[dead]
railmaniactoday at 4:52 AM
[dead]
ihateaisloptoday at 6:42 AM
AI slop
Fervicusyesterday at 7:18 PM
This seems to have a lot of potential, but there are important details missing. Hopefully the feedback from this thread will result in those questions getting answered by the author soon.
small_modelyesterday at 6:58 PM
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.