Arc Forumnew | comments | leaders | submitlogin
1 point by akkartik 3782 days ago | link | parent

Hmm, what are some examples of languages with design holes, or language mechanisms that help programmers manage design holes? Lower down you suggest that an error when adding a string to a non-string is a design hole. The creators of Java would disagree. Any language designer would say that at least some of his errors are 'designed in'. So what's the subset of error messages you're getting at?

Like I said privately, I disagree that exceptions are always discouraged. They're encouraged in python. It sounds like they're discouraged in javascript. But I'm not sure you can generalize to other languages, or to 'error mechanisms' in general. Javascript doesn't seem to have any problem throwing syntax errors on the console.



2 points by rocketnia 3782 days ago | link

"Hmm, what are some examples of languages with design holes, or language mechanisms that help programmers manage design holes?"

Design holes are one part of a venn diagram: They're not a part of the program's design, and yet it's possible to encounter them in the program's behavior.

If a specification document says a behavior is unspecified--I think the C spec is notorious for this--then that's where you'll find a concrete example of a design hole. The design is concrete, and any implementation is concrete, so their difference is concrete.

Personally, I see design holes whenever I want to run my program without finishing it. The unfinished parts are gaping holes.

---

"Lower down you suggest that an error when adding a string to a non-string is a design hole."

It's an example of a design hole if the designer doesn't care what happens.

---

"Any language designer would say that at least some of his errors are 'designed in'."

I'd say if the language designer really wants people to avoid a certain design hole, they can put a little fence around it. The fence is part of the design, but on the other side, there's still a hole.

---

"Like I said privately, I disagree that exceptions are always discouraged."

Inasmuch as they're not discouraged, they don't count as an error mechanism. This a gray area.

I know this is a slippery response to give, but this is about the way I set up my terminology, rather than the purposes I have for talking this way.

-----