sent from my Droid On Mar 27, 2011 11:53 PM, "Kevin Wright" <[email protected]> wrote: > 2011/3/28 Cédric Beust ♔ <[email protected]> > >> >> >> 2011/3/27 Kevin Wright <[email protected]> >> >>> >>> >> >> >>> >> >> Haskell doesn't have this issue, nor does Coq or Agda, all of them >>> being far more Nannyish than Java is ways that actually have some proven >>> benefit as to improving the quality of your programming >>> >> > >>> >> > >>> >> > I think you just beat a new record in the area of unproven, >>> unfalsifiable and frankly ludicrous claims. >>> >> > >>> >> >>> >> Which part is ludicrous? The claim that these languages are more >>> restrictive than Java, or the claim that stronger typing improves quality. >>> > >>> > You didn't make any of these claims in the paragraph I quoted. >>> > >>> > You did say that all these languages have "proven benefit as to >>> improving the quality of your programming". >>> > >>> > Calling this "ludicrous" is being nice. >>> > >>> >>> So: >>> - Checked exceptions are stronger typing (I disagree) >>> >>> - Stronger typing does not probably improve the quality of your >>> programming (I believe it does) >>> >>> - Yet you are in favour of checked exceptions, believing they do so >>> improve quality (I believe they subvert static typing, and so reduce it) >>> >>> I'm sure I've missed some nuance here, because it's fairly obvious that >>> you must have a coherent opinion, and there's a good chance that we actually >>> agree on the vast majority of points raised. When you appear to be >>> self-contradictory, it's almost certain that any response I give will be to >>> my own misunderstanding of your viewpoint, instead of to your actual >>> beliefs. >>> >> >> And again, you are writing a wall of text that has absolutely *nothing* to >> do with what we were discussing. I'm requoting above the entire thing just >> so you can see for yourself, and here, again, are your own words, which I >> called ludicrous: >> >> Haskell doesn't have this issue, nor does Coq or Agda, all of them being >> far more Nannyish than Java is ways that actually have some proven benefit >> as to improving the quality of your programming >> >> >> Now tell me, how what you wrote above related in any way to this? It >> doesn't. It sounds like some knee jerk reaction to something completely >> unrelated. >> >> I know you have a hard time keeping your mind focused on a single thing, so >> I made a point of quoting only three lines of your original email, so that >> it would be obvious to you what I was responding to. You still missed it by >> a mile once, and then missed it by another mile a second time with this >> email. >> >> I think it's just impossible to have a rational discussion with you, at >> least not until you learn how to read what you're responding to and then >> learn how to stay focused on a topic. >> >> -- >> Cédric >> >> > With director's commentary then: > > > Haskell doesn't have this issue *[this issue = checked exceptions arising as > a result of strong typing]* , nor does Coq or Agda, all of them being far > more Nannyish than Java is *[Haskell, for example, forces all side-effects > to be handled via specialised monads]* in ways that actually have some > proven benefit *[via case studies, academic research, and statistical > analysis]* as to improving the quality of your programming *[i.e. making it > less prone to some classes of error, by making such errors invalid within > the type system]* > > > I'm arguing that checked exceptions are *not* correctly viewed as a form of > strong typing when compared to unchecked exceptions. Rather, they're a > particularly weak (and easily subverted) form of typing when compared to > equivalent behaviour expressed directly in the return type of a method. > > By way of contrast, I'm further arguing that extra static typing is a good, > safe, thing in a great many scenarios and should not be held to blame for > the inadequacy of checked exceptions. These only give a facade of offering > stronger static typing, which in turn leads all too easily to a false sense > of security - it's the weakness of typing and ease of subversion that then > makes them such a rich source of anti-patterns. > > Something like Scala's Either type instead forces you to deal with an > alternate return type (including exceptions) directly, without the potential > for vanishing from the method signature once you pass through remoting (or > another similar layer where some form of marshalling may be involved), > and without being wrapped. > > This encoding of an error condition as a first class citizen in the return > type of a method is far less prone to abuse and is impossible to lose in > translation, thus making it a safer design pattern. > > > -- > Kevin Wright > > gtalk / msn : [email protected] > <[email protected]>mail: [email protected] > vibe / skype: kev.lee.wright > quora: http://www.quora.com/Kevin-Wright > twitter: @thecoda > > "My point today is that, if we wish to count lines of code, we should not > regard them as "lines produced" but as "lines spent": the current > conventional wisdom is so foolish as to book that count on the wrong side of > the ledger" ~ Dijkstra > > -- > You received this message because you are subscribed to the Google Groups "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to [email protected]. > For more options, visit this group at http://groups.google.com/group/javaposse?hl=en. >
-- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
