As a "Scala Evangelist?"  I totally understand the love of the Java language
and the wish to see it get better.  I feel the same way about Scala.   I
don't really think this thread will change anyone's mind at this point.
I'd rather just continue to make awesome software and if it attracts folks
to Scala, GREAT!

In any case, I think we should all focus on our common ground: we all share
the Java standard library, let's focus on the important points:   Fix the
D**** Date API!!!!   That's something that can happen with or without
closure support in JDK 7.  (P.S. I haven't followed the state of the JSR,
are they still asking for assistance?).

The unfortunate side-effect of Scala 2.8.0 is that I don't think many Scala
users will care much about the Java collections libraries, besides for
interoperability reasons.   The new Scala collections provide a lot of
power, and will also take some time to get "tuned" and be up to speed,
however the programming benefit is pretty astounding.    Closure also has a
great set of immutable collections that you can use within closure.
Collections are my most common import in *ANY* project I work on (at google,
I do a lot of C++/javascript).   Most of the JVM languages "wrap" the Java
Collection library.   They do this to add their language-specific idioms on
top of the java collection API and partly for great interoperability with
Java APIs.

Why do I mention all this?   Fragmentation could hurt the overall community
to favor one or another.   My call for the future of Scala is that it's
going to go down its own path in defining useful, fast, efficient,
potentially immutable data structures.   The work done into automagical
fork-join collection operations was done using the Scala collections API and
would be hard or difficult to use in Java.    How many of these types of
innovations are happening in Clojure or Groovy or JRuby or Fantom in such a
way that Java (or other languages) cannot make use of them?

The Java community is large, but with the fragmentation happening, it would
be good to see a strong leader keep that community together through
innovation and modern ideas.   I know in particular I'm a big fan or
Functional Reactive Programming.    I'm rather frustrated that .NET has
support for this currently and the JVM is lagging (although some Scala folks
are working on that).

So anyway, let's stop bickering about which one is better, and treat it more
like a C#/F# pairing (except we have Groovy, which makes us infinitely more
cool).   Let's make our platform the best.

- Josh




On Sat, Aug 28, 2010 at 3:19 PM, Kevin Wright <[email protected]>wrote:

> Python/Jython, Groovy and Clojure are all truly great languages, with
> Clojure being my favourite of the three.
>
> The only problem for me as that they're dynamically typed, which is the
> programming equivalent of doing physics without any sort of dimensional
> analysis (http://en.wikipedia.org/wiki/Dimensional_analysis), or perhaps
> like having unprotected sex (so, yes, it can be fun too!)
>
>
> With good inference, static typing really doesn't have to be painful.  Plus
> you get to keep all the well known benefits in refactoring, etc...
>
> We can actually go one step better than this though, just consider what's
> even now being achieved with type classes:
>
> The List type has a sum() method; which does the obvious thing
> This method will work for any list of Numeric values
> It's even possible to define your own type such that it's recognised as
> being Numeric (e.g. complex numbers)
> if you attempt to use the sum method on anything except a list of some
> Numeric type, it will fail
> and it will fail statically, the compiler will throw an error
> and yes, all this still happens even in the presence of type erasure (which
> Scala needs for Java compatibility)
>
> Try *that* with Java 7 :)
>
>
>
> On 28 August 2010 19:29, Russel Winder <[email protected]> wrote:
>
>> On Sat, 2010-08-28 at 09:55 -0700, Cédric Beust ♔ wrote:
>> >
>> >
>> > On Sat, Aug 28, 2010 at 9:09 AM, Kevin Wright
>> > <[email protected]> wrote:
>> >         surely you mean "without taking away all the extra baggage
>> >         that Scala removes"?
>> >
>> > Scala certainly removes some extra baggage but it adds quite a bit of
>> > its own.
>> >
>> > For what it's worth, I think Python is actually a better language to
>> > begin because of its lack of compilation and very low syntactic noise.
>>
>> Having tried Pascal, C, C++, Scheme, Miranda, Java, Groovy and Python as
>> introductory programming languages over the years, I can say that of the
>> languages today for today's audiences Groovy and Python win hands down.
>>
>> As a second language though C++, D, and Scala are strong contenders.
>>
>> Python and C/C++/Cython are a very natural combination;
>> Groovy/Scala/Clojure/Java are a very natural combination.
>>
>> --
>> Russel.
>>
>> =============================================================================
>> Dr Russel Winder      t: +44 20 7585 2200   voip:
>> sip:[email protected] <sip%[email protected]>
>> 41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
>> London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
>>
>
>
>
> --
> Kevin Wright
>
> mail/google talk: [email protected]
> wave: [email protected]
> skype: kev.lee.wright
> twitter: @thecoda
>
>  --
> 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]<javaposse%[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.

Reply via email to