4 ms·
There's value in being able to tell the system "I do not want to do X. If I seem to be doing X, it's a mistake, so please stop me." People really do make mistak
by prodigal_erik 17y ago
There's value in being able to tell the system "I do not want to do X. If I seem to be doing X, it's a mistake, so please stop me." People really do make mistakes, and there's nothing condescending about building a system to accommodate that. That's why my car's steering wheel has an airbag rather than a punji stick.
- timwiseman 17y agoYou are right and I agree with you, but I believe the point of the blog post was about the language designer saying "You cannot do this because it is too dangerous." That is different than an application designer saying "Within the confines of this application, I will never do this so flag and prevent if it seems like it is."
- Retric 17y agoI don't think that's really valid. How many recent languages expose raw memory access? The trick to building a great computer system / language is exposing the aspects that are most useful while hiding everything else.
- bodhi 17y agoBut the aspects that are most useful to you are different to the aspects that are most useful to me. Recently I've been trying to write a wrapper for a C library in a couple of different languages, and raw memory access would have made my life much easier. But the languages didn't have it, making my work more difficult. I think the (paraphrased) aphorism "Make the common, simple. Make the hard, possible" is apt.
- Retric 17y agothe aspects that are most useful to you are different to the aspects that are most useful to me. Which is why we have so many languages. Also, we don't really need another C or Pearl at this point, but new domains do show up. Such as GPU's with insane amounts of parallelism.
- jorgem 17y agoTaking the car analogy further: Plenty of people buy cars that will go faster than they will ever need to go. The car designer ALLOWS you to do it, even if it's not usually safe. The happy customer knows it's there if he needs it.
- patio11 17y agoThere's value in being able to tell the system "I do not want to do X. If I seem to be doing X, it's a mistake, so please stop me." Frequently in the real world this sounds like "I am about to call out to code written at our valued partners in India. JVM, please make sure that the most they can do is touch the object I'm about to pass them. I can test the object for correctness when I get it back, I don't want to have to check to see if they redefined Array#sort as well.") A lot of the things that irk skilled programmers about Java (I know what I want to do, why do you persist in stopping me?!) make a lot of sense when you're working with a geographically dispersed team of dozens, many with sharply disparate skill levels.