On 8 August 2010 01:19, Alexey <[email protected]> wrote:

> Something about the recent (not just this particular discussion)
> debates about Scala and Java has been bothering me.  Something isn't
> sitting right.  I think I may have figured it out.  Scala is being
> advertised as a functional language.  That's all fine and good, except
> one can't really compare it to languages like Erlang.  Why?  Because
> the real functional benefits Erlang is famous for do not extend to
> Scala, as far as I know.  I may be wrong here, but given the fact that
> Scala compiles into standard JVM bytecode and interoperates with
> normal Java API (bidirectionally) tells me that even though one
> programs in Scala in a functional manner, it's actually run the same
> way as any other bytecode-based software on the JVM -- imperatively.
>

well even languages like Erlang must compile down to imperative machine code
( see also Turing Machines:
http://plato.stanford.edu/entries/turing-machine/ )
so just because a language can be translated into an imperative form doesn't
mean that the original language isn't functional


> Just like we have to be careful about distinguishing between Java-the-
> language and Java-the-virtual-machine, we need to understand the
> reality of what "functional" means when it relates to Scala.  I have
> yet to see easy parallelism solutions coming from Scala out of the
> box.


http://akkasource.org/ springs to mind as an interesting approach to
parallelism,
although I'm sure there are others - it builds on top of Scala/Java so it's
not quite
"out-of-the-box", but it does aim to make concurrency easier

 Yes, we get to use lambda-oriented syntax and an arguably better
> type system, but we're not really talking about a total shift in
> thinking.  Some people have already mentioned how familiarity with
> Scala made them better Java programmers as they were able to bring
> some of the good concepts/patterns into their Java code.  It's
> possible to program in a kind-of sort-of functional style in Java.
> Plain and simple.  And rightfully people say that doesn't make it a
> real functional language.  Scala seems nice and I want to invest time
> into it for my own personal betterment and maybe use it in the "real
> world" as I better understand its strengths, but it's not a functional
> language.  At best, it's a functional mask on top of the same old
> imperative bytecode-driven VM with the same old runtime advantages and
> hiccups we've come to expect from Java code.  At worst, it's a bunch
> of performance sacrifice in order to achieve the above.
>
> I fully admit that as a longtime Java developer, having achieved a
> good level of proficiency, I can be intellectually lazy when
> considering becoming a near-total newbie with a new language.  But
> that's not everything.  I also am cautious about mixing up buzzwords
> with facts and getting swept up in emotionally charged debates over
> technology.  On the one hand, emotions are important because sometimes
> they are symptoms of real arguments we're not yet able to articulate
> properly.  On the other hand, there's evidence that sometimes people
> are less than forthright when evangelizing technology (the recent Go!
> article seems like a prime example of this).  Complexity of a language
> seems like a pretty tough thing to try to quantify.  The best I could
> do I think is to provide real-world examples like Dick's.  Then people
> can debate how well those examples fit their circumstances and whether
> the way they were solves was indeed the simplest/fastest/best/whatever
> way.  Otherwise, we're just kind of pissing in the wind, if you pardon
> the expression.
>
> On Aug 6, 6:07 pm, Kevin Wright <[email protected]> wrote:
> > You can't claim that the numbers I posted are subjective, I counted
> > them fair and square!
> > *this* post however, will be subjective.
> >
> > The idea that all kids go to "high school" and have a "grade 11" is
> > also subjective :)
> > I give you... Kojo!http://netbeans.dzone.com/learn-scala-with-kojo
> >
> > It's also subjective to simply discredit any methodology that happens
> > to disagree with your gut feelings.
> >
> > Incidentally, the "few object-oriented features" in Scala amount to a
> > more complete/purer OO language than the entirety of Java.
> > i.e.
> > all values are objects (no primitives)
> > all members are defined on an *instance* of some class, and are
> > capable of inheritance/overriding (no statics)
> >
> > The way I see it is that Scala = Java
> > - the non-OO bits
> > - other boilerplate
> > - frustrating restrictions
> > + FP
> > + a world class type system
> >
> > and yes, that's subjective.  At least until someone comes up with
> > measurable criteria for "frustrating restrictions" :)
> >
> > On 06/08/2010, ADRA <[email protected]> wrote:
> >
> >
> >
> > > This whole topic is by its nature subjective. Its not like Scala and
> > > Java are exact language fits for one another. As I see it, Scala is a
> > > functional language that has some object oriented features. Java is an
> > > object oriented language with a few procedural features (baggage) and
> > > will eventually have a few functional features. If you want to ask
> > > which one is easier, ask yourself if you like Wrox or Head start
> > > books. Each book conveys the information to you in the end, but each
> > > person reading them will have wildly different takes on each style of
> > > presenting the content.
> >
> > > If you really want a quantifiable result, then get a pilot program
> > > with two high school grade 11 classes and teach one class Java and the
> > > other Scala. Personally, I find Java vastly simpler understand and use
> > > vs Scala, but I come from a solid procedural foundation long before I
> > > touched java. To forget the educational background of the person in
> > > question is a horrible mistake to make in this topic.
> >
> > > --
> > > 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.
> >
> > --
> > 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.
>

-- 
Cheers, Stuart

-- 
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