4 ms·
Why is there so much hostility toward Joel here? He writes interesting and popular articles and half the comments just attack him for not being substantive or
by rkts 19y ago
Why is there so much hostility toward Joel here? He writes interesting and popular articles and half the comments just attack him for not being substantive or serious enough.
- dcurtis 19y agoBecause his stuff is not substantive or serious enough. His article even cuts off at the end and moves into an advertisement for his software. Tacky.
- olavk 19y agoJoel have written some really insightful and influential pieces about software development and business strategy. When he started blogging, almost every post were a classic. Of course this were insights he had accumulated through many years, its hard to keep churning out great insights on a regular basis, so I think people just get disappointed. Also, his insights are mostly related to business and high-level decisions. When he writes about coding, his opinions seem slightly curious: exceptions suck, Hungarian notation rules and so on.
- rkts 19y ago> exceptions suck, Hungarian notation rules and so on. Have you actually read his article on this? I think it's very good. http://www.joelonsoftware.com/articles/Wrong.html http://www.joelonsoftware.com/articles/Wrong.html Joel doesn't say that you should prefix integer variables with 'i' or use -1 as an error code (he prefers returning multiple values). He only says that every line of code should indicate as clearly as possible what it's doing so that you can still understand it six months later. Exceptions eliminate one problem (a function can only return one value) but introduce another: it's impossible to tell by looking at a block of code where it will exit. If a series of statements might get interrupted halfway through, there needs to be an indication of this or else it's very easy to create bugs. I know this from experience.
- olavk 19y agoRegarding Hungarian notation, it's really a kind of type system with explicit typing, except the type checking is done by the programmer reading the code rather than the compiler. Kind of the worst of the static and dynamic worlds combined. He could solve the tainting problem by just wrapping the unsafe string in an object. This would be safer even in a dynamically typed language. His example is only relevant to very early versions of VBScript that didn't support classes. Regarding exceptions, they are NOT supposed to be used for returning multiple values. They supposed to be used for exceptional results that cannot be handled locally. They don't have to be "invisible", e.g. in Java you have to either explicitly handle an exception or explicitly declare that you may propagate it. Using return values OTOH you may forget to handle a return value, and the compiler will not complain. His complaint is more valid wrt. C# where exceptions are indeed not checked by the compiler. But since he don't even seem to be aware of this difference, I'm pretty sure he knows about neither.
- rkts 19y ago> They supposed to be used for exceptional results that cannot be handled locally. The point is that there is no such thing. Exceptional situations should always be handled locally, and by locally I mean on the very next line. If they can't be, then the program should stop running. Writing code with exceptions is very hard to get right. Not checking return values is just stupid.
- olavk 19y agoAlway handle errors locally? That seem to break both modularity and abstraction. Consider a module that does some IO. The module might be used in different kinds of apps, both GUI apps, services and command line apps. How should this module handle a "disk is full"-error? Should it show a dialog with a warning, or write the message to the console and die? The appropriate action would be completely different depending on the type of app and the context wherein the module is invoked. Exceptions allows the module to delegate the error handling to the right level of abstraction.
- 19y ago
- deleted 19y ago[deleted]