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.

Reply via email to