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.
