On 31 Jan 2013, at 13:14, Manik Surtani wrote:

On 31 Jan 2013, at 12:47, Bela Ban <bban@redhat.com> wrote:


On 1/31/13 1:37 PM, Manik Surtani wrote:

On 31 Jan 2013, at 12:35, Mircea Markus <mmarkus@redhat.com 
<mailto:mmarkus@redhat.com>> wrote:

I don't think that encouraging scala code is good purely for 
maintenance reasons. If there's a choice, it should be java. Not 
saying that learning a new language is not cool - but in practice 
people are a bit put off by maintaining Scala code. Its not only 
about what the writer of the code prefers as a language: it's more 
important what the maintainers of the code
will has to work with.

Would such maintainers also be put off by new language features 
(lambdas) in Java 8 when we (eventually) baseline to it?  :-)

I don't think so. First, this will be a few years off anyway.

Sooner than you think - according to schedule, it is feature-complete (as of today) and targeted for GA in September.

http://openjdk.java.net/projects/jdk8/
http://www.infoq.com/news/2012/04/jdk-8-milestone-release-dates

Java 6 is EOL from next month and Java 7 will be EOL by July 2014.  Oracle's being pretty aggressive with moving Java forward.

http://www.oracle.com/technetwork/java/eol-135779.html


Second, 
this will not pose cross-language debugging problems. And third, even 
Java+closures is still Java.

What does that mean?  It makes an imperative programming language more functional in style.  So yes, while it still has the Java brand, I'd argue that it is becoming more than that.  Best practices, paradigms and patterns will change and give way to even better ways of doing things.  It is, effectively, learning a new language (as opposed to just a new API).

I don't think the step from learning Java7 -> Java8 is comparable to Java6->Scala, but I really don't think that's the thing to be discussed*.
People seem to be reluctant to debug Scala code in ISPN - and that's a productivity issue more than anything else. 

*Also as a java developer you have the general option of not learning Scala, but you don't really have the option of not keeping up with Java8.

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)