4 ms·
I'm reluctant to consider shoddy or noncompliant implementations as counting against a technology. If I did, then it'd follow that there's no such thing as a go
by Clamchop 3y ago
I'm reluctant to consider shoddy or noncompliant implementations as counting against a technology. If I did, then it'd follow that there's no such thing as a good idea, and I could only agree with that if I were having a bad episode of ennui.
- palata 3y ago> I'm reluctant to consider shoddy or noncompliant implementations as counting against a technology. I find it interesting that it is typically done with programming languages. "This programming languages allows people to write complicated, unreadable code, hence the language is bad".
- bigstrat2003 3y agoIn fairness there are plenty of people who think one should not consider it a language flaw if you can shoot yourself in the foot. See: basically every C programmer.
- palata 3y agoThat's my point: where do you put the limit? A gun allows you to shoot yourself in the foot. Does that make it a bad gun? I think most of us would agree here: if you are at high risk of shooting yourself in the foot, you should not be given a gun. Nobody ever says "oh, this laptop is bad, because if you take it in the bath you will probably break it". But for some reason, for professional programmers, we consider it is absolutely unbearable to request that they know their tool.
- bigstrat2003 3y agoWell, my point is that not everybody thinks that it's unbearable to require programmers to be careful with their tool. So I'm not sure if your point really works as a result. But that said, I personally am one who thinks we should try to do better with programming languages, so I'll give you my $.02 for what little it's worth. The difference between something like a gun being able to blow your foot off, and the C programming language being able to metaphorically blow your foot off, is the complexity of avoiding the failure state. With a gun, even the most beginner gun handler understands that whatever the gun is aimed at will have a bad time when you fire it. They therefore can very easily know the answer to "when I fire this, will I shoot my own foot" is "no, because I'm not aiming at my foot". With C, it's more like "the gun will shoot your foot if you aim directly at it - but also it'll shoot your foot without aiming at it if it's the third Tuesday of the month, or if Venus is in conjunction with Saturn, or if your aim is tilted exactly 1.4 degrees off target". That is, the ways you can hurt yourself in C are vastly more complicated, and include plenty of situations where even an experienced practitioner may not realize that they're in for a bad time. I think that is why you see a push to eliminate sharp edges with programming languages that you don't see elsewhere. If it were readily obvious when you're in for some pain with programming languages, people wouldn't object so much.
- palata 3y ago> Well, my point is that not everybody thinks that it's unbearable to require programmers to be careful with their tool. So I'm not sure if your point really works as a result. Oh, I had misunderstood it, sorry (I thought it was a criticism of "those weird C people"). > With a gun, even the most beginner gun handler understands that whatever the gun is aimed at will have a bad time when you fire it. They therefore can very easily know the answer to "when I fire this, will I shoot my own foot" is "no, because I'm not aiming at my foot". I tend to disagree: usually people do spend some time learning how to use their gun before we give them the responsibility of carrying one. There are many rules to follow, and still there are accidents (even from professionals). I wouldn't say that a gun is "fool-proof". I wouldn't give an assault rifle to somebody, let them fire a few rounds, and then bring the rifle in my car while I'm driving without checking anything. Actually I would pay attention to everything they do and I would check that the gun is unloaded myself. Sure, getting a loaded gun, removing the safety and firing is easy. Carrying and using a gun correctly is not. To compare that to C, copy-pasting a `main` function and running it is easy. Writing good C code is not. But writing good Rust or Kotlin code is not easy either. That's what it takes to be a professional: you have to learn to use your tools.