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.
