> 1. Conciseness :  You can always have bad code regardless of conciseness,
> see Perl or APL for good examples.  I don't buy this argument at all. Good
> Java development can produce very concise code already.  This is not a
> winning argument

Of course you can write awful code regardless of the language.
Nevertheless conciseness can be a winning factor especially in the
long terms. The cost to maintain a software is directly proportional
to the number of its LOCs.

> 2. Productivity: The argument of individual productivity is completely
> irrelevant. You have to look a teams and indeed whole firms on this point

Productivity is the real winning point of Scala if you use it in the
right way. A few examples to justify this statement:

a. The most important part of any meaningful application is its
business model. Try to leverage the Scala features in order to write a
small DSL implementing that business model and let the other guys of
your team to use your DSL. The result will be an higher productivity
and an easier to read and to maintain source code.
b. Scala is the most extensible language I know. It allows to abstract
the most common patterns you use in your code and to define your own
keywords and constructs. In turns that allows you to reduce code
repetitions (conciseness) and to avoid to reinvent the wheel day by
day (productivity).
c. The actor model, when you master it, is less error prone and more
productive than the multithreading features (based on synchronization)
natively provided by Java.

> 3. Complexity:  Java is less complex this is a plus point fact.

Yes, Scala is more powerful and then more complex than Java. In my
opinion this is a pro. If I didn't like complexity I'd program in
VisualBasic :)

> 4: Open Source momentum:  Even though you have interop the opensource Java
> Libraries will all feel more natural in the pure Java world.

Java is around from 15 years and has millions of developers. Of course
you have more tools and libraries in Java than in Scala. Anyway some
of those libraries are there only to overcome some Java limitations
(mine, lambdaj, is a valid example of that) and others could be more
powerful and easier to be used thanks to better Scala extensibility.
The wonderful Akka project ( http://akkasource.org/ ) is a good
example of that. It is just a matter of time and in the meanwhile you
can still use the Java libraries with a not so big effort.

> 5. Functional Programming:  Most developers see this as a big plus point but
> one must keep asking why, as functional programming has been around for
> donkeys years, has it still had little impact to date?

Why do object oriented vs functional programming discussions often
sound so similar to catholics vs muslims ones? Scala is the
demonstration that the two programming models can coexist in the same
language.

Why does functional programming still has a so little impact? Well,
probably for the same reasons why Windows is still far more used than
Unix-based operating systems:

a. It is less powerful and then less complex. People are lazy and
don't want to put their brain at work. But we, as developers, should
let our brains working.
b. It is easily available. The biggest part of the pc are sell with
Windows already installed. In the same way managers and companies ask
for Java developer since they are easier to be sell.
c. For some reason, especially in our field, the best technology is
rarely the winning one.

Bye,
Mario Fusco
twitter: @mariofusco

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