Hi, I should say that for me, the statement:
"Those who favoured Groovy are all saying how wonderful dynamic typing is, that static typing is evil and has killed their productivity for years." Is not true. Here's a statement on the Groovy documentation website about typing: "I'll finish on some words on when and how to use optional typing. Groovy lets you decide whether you use explicit strong typing, or when you use 'def'. I've got a rather simple rule of thumb: whenever the code you're writing is going to be used by others as a public API, you should always favor the use of strong typing, it helps making the contract stronger, avoids possible passed arguments type mistakes, gives better documentation, and also helps the IDE with code completion whenever the code is for your use only, like private methods, or when the IDE can easily infer the type, then you're more free to decide when to type or not." http://groovy.codehaus.org/Groovy+style+and+language+feature+guidelines+for+Java+developers Rakesh On 30 July 2012 11:24, Kevin Wright <[email protected]> wrote: > I definitely see a lot of frustration from people over Java's type system. > Can't say I blame 'em, to be honest. > > The only way out is to move to another language. We had an exodus of > people moving to Ruby a while back, but nowadays the favoured route seems > to be staying on the platform (that way you get to keep the libraries). > We're even seeing the Rubyists be pulled back into the fold via JRuby. > > It's interesting to see the various reactions... > > > - Those who favoured Groovy are all saying how wonderful dynamic > typing is, that static typing is evil and has killed their productivity for > years. > > - Those who favoured Clojure are saying the same thing, but also > loving their functional programming and homoiconicity. > > - Those who favoured Scala are saying that, actually, it's not static > typing that's the problem, it's just the way that Java does it. Add > inference and type classes, then you can get all of the benefits with very > little of the pain and boilerplate. It's also helps if you make the > language properly object-oriented, get variance right, and throw in a large > dose of functional as well. > > - Haskell users, incidentally, say much the same thing. Except for > the part about object-oriented, because who wants/needs subclassing when > you have type classes? > > > > The common message from all of these groups is not that "dynamic typing > is better", it's that "Java's implementation of static typing is painful". > Sure, you gain by dropping that with Groovy, but it's not because static > typing per-se is a productivity killer. > > > > On 30 July 2012 11:06, Fabrizio Giudici <[email protected]>wrote: > >> On Mon, 30 Jul 2012 11:51:45 +0200, Rakesh <[email protected]> >> wrote: >> >> I am saying, that in practice, this check at not happening at compile >>> time, >>> based on my personal experience, has not been a show stopper. At all. >>> >>> Unit testing definitely made this a non-issue for me. That may not be the >>> only solution. >>> >>> I seem to have stumbled into a 'religious' issue here and there's not >>> much >>> I can say to convince you that static compilation hasn't prevented me >>> from >>> being way more productive than before. >>> >>> >> Rakesh, this is not only religious but I think that people have many >> points here. Kevin just pointed out that unit testing can't be complete. It >> would be complete only if one submitted to any piece of code all the >> possible combinations of inputs. Of course, this is theory: in practice, it >> would suffice to submit all the practical combinations of inputs. This can >> be quite large. The fact that you didn't experience problems so far is not >> necessarily a strong point: see the inductivist turkey argument by Russel / >> Popper. In practice, you might feel strong for a lot of time, until you get >> burned. Of course, this is still theory, and in practice I'd say that >> personal experience, given that we have a sufficient bunch of data, is an >> indicator... for that person. >> >> Let's put this in another way. I think it's a very strong point to say >> that without static typing you loose lots of benefits. Now, we can afford >> to lose something in change of something more interesting. What's the >> benefit you get with Groovy. When I answered in the previous mail exchange, >> my point was that with my experience with Groovy I didn't get much in >> return: just writing a few less line of code is not enough, and if it was a >> very important point to me I'd rather consider alternatives such as Scala, >> which allows less lines of code and it's static. >> >> -- You received this message because you are subscribed to the Google Groups "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.
