4 ms·
This isn't a gripe directed at you specifically. I've noticed that when somebody says they like a growing language (Rust, Zig, ...) for this or that feature, p
by rackjack 5y ago
This isn't a gripe directed at you specifically.
I've noticed that when somebody says they like a growing language (Rust, Zig, ...) for this or that feature, people often come out of the woodwork to claim that it isn't unique, that some research project did it 5 years ago, etc. etc.
First, that's not even what they were saying. They like a feature of the language, they weren't making a claim about the novelty of it.
Second, even if they did erroneously make a claim about the feature's novelty, I think the theory type of people dismiss these sorts of languages too readily. Yes, somebody did it before. But it is usually very hard to bring these features into the mainstream or even adjacent to it.
It's just annoying when we're appreciating a language and the work that went into it and somebody pops their head in and says "Ackshually, Joe Gringoff published a paper in '95 detailing that exact thing, so it isn't anything new." Like I'm trying to enjoy "Samson and Delilah", I'm not really thinking about who did that kind of lighting first, so why are you using the lack of novelty to diminish the effort put into the lighting? If you want to say, "Fun fact, Giorno Capucelli was the first one to popularize that kind of lighting!" Then that's cool, but instead these people always use these facts to diminish something else instead of enhancing it. Just let me enjoy their handiwork!
- Findecanor 5y agoComments like that provide context that you could use as search terms for finding more documents from which you could learn learn more about the feature. If you're interested in programming languages in particular, the earlier papers could tell you about the philosophy and rationale about how and why the feature came about in the first place.
- Mathnerd314 5y agoI argue to the contrary that it's quite disappointing to see features developed without referencing previous work. The annoying "Actually, so-and-so" is really just a symptom of the general lack of citations. Maybe it's possible to design a language de novo without being aware of previous designs in the space, as Zig seems to be doing, but it seems quite dangerous - one wrong step and you've locked in a bad design. Whereas using proven designs (as Rust claims to be doing in their FAQ) is at least making use of some form of validation.
- openfuture 5y agoand what was the proof of these existing designs? peer review? There is nothing new under the sun. What matters is what is /useful/ and that seems to be the focus for Zig, to be useful. The proven design it tries to improve on is C.
- Mathnerd314 5y agoReally? You're using the Bible to argue with me? Computing is still a young field, only 80 or so at this point. There are many areas that haven't been explored. For example polyhedral optimization only became a thing in the past 20 years. Zig only gets away with being shallow because LLVM does all the heavy lifting. If you follow LLVM you will find a steady flow of academic papers (it even started as an academic project).
- mftb 5y agoI'm going to bring it back to the comment you are responding to. It's saving grace, is that it introduces to the thread the idea, "it's basically what dependently typed languages do". That has a couple of benefits, the commenter he's responding to can find out if that's true - https://en.wikipedia.org/wiki/Category:Dependently_typed_languages https://en.wikipedia.org/wiki/Category:Dependently_typed_lan... (Zig isn't on there, I see other's are debating the point). If it does turn out to be true, the person might find a whole class of languages that share a feature he seems to really like. So while I kinda get your frustration, at least in this case it seems useful.
- rahimiali 5y agoWhen someone says "I like feature F in system S", I for one appreciate the response "F is actually called F' and exists in a purer form in system S'". It broadens my view of F in two ways! There might be nicer ways to phrase the response (along with links, maybe), but I for one appreciated the direct and very googleable approach the comment you're responding to took.
- lmm 5y ago> Second, even if they did erroneously make a claim about the feature's novelty, I think the theory type of people dismiss these sorts of languages too readily. Yes, somebody did it before. But it is usually very hard to bring these features into the mainstream or even adjacent to it. It is, because people are unwilling to use them in existing languages. So it's extremely frustrating when what feels like the same people who've been trashing Haskell for ten years get all excited about how their new trendy language has this brilliant new feature... that is the same thing they were complaining about being pointless academic complication when Haskell did it.
- naasking 5y agoWhile I understand your reaction, I wasn't really diminishing anything. The OP I was responding to was saying other languages should do generics like Zig, and I basically just replied that other languages have done it that way (or rather, that Zig did it their way), and also pointed out some common pitfalls. Zig may of course have found a better set of tradeoffs to make this feature more ergonomic, but I think this is more due to comptime than generics specifically. comptime would restrict the expressiveness that would normally lead to undecidability when reifying types as values, if I understand its semantics correctly.