On 06/14/2011 10:44 AM, Mario Fusco wrote:
Fabrizio,
first of all I really love your definition of the "karma" levels. If
you don't have any copyright on it (in these patent-troll times you
can never know) I'd like to use it to explain why a developer should
try to move to the next level in his karma.
Creative Commons - Attribution ;-) But beware, maybe somebody else holds
a copyright and we get both sued :-)
At the beginning
that could leave the developers disoriented, but I guess we all agree
it could pay in the long-term.
You also "could be" convinced that Scala is in a lower karma-level
than Java. So I believe the same applies for this further level-jump
either: moving from Java to Scala could bring your development team to
the next karma-level and then, in the long-term, increase its
effectiveness and productivity. Don't you see a ROI in that?
Yes. But for doing that jump I need to break that obstacle that you
cited. It's a sort of "potential barrier". It's like that: I could have
an excellent idea that, when developed, would make me rich. But to
develop the idea I need one billion euros. I don't have them, I don't
find a financial partner, and I'm confined into my current karma level.
I'll be potentially rich, and actually poor. :-( I see that Kevin wrote
a few emails ago that the barrier to the adoption of Scala is social,
not technical, and yes, this is the idea that I'm trying to convey since
a few months. That's why discussions that focus on technical points
won't help here.
Of course, I'm not saying that those potential barriers can't be removed
(be Scala or some other language the next Java, there would be similar
issues). Java itself found some barriers. It was more complex than C.
But it was _simpler_ than C++ and this was a huge point. Then,
universities started teaching it in fundamental courses, but this was
also due to the injection of $$$ by Sun. After all, the most successful
languages in the past 15 years are Java and C# and in both cases there
are large corporates pushing them with huge marketing channels.
Another solution would be to split the potential barrier in several,
smaller, incremental steps. Such as to introduce "sub-karma" levels in
the use of Scala. For instance, the first "sub-karma" could be just a
tad better than Java (e.g. closures?) and given that Scala is
multi-faceted, code examples could be modelled so to not depart too much
from the look & feel of Java (beware that since I'm totally ignorant of
Scala, I don't know whether this could be done, but I suspect it could).
This strategy could be implemented first at teaching and documentation
level. For instance, if I had a book "The first karma of Scala", where I
can get to the end and learn a programming style with Scala that is
better, but not that different, I could be more willing to read it. When
I learn it, perhaps the next time I have to run an exercise with a
customer in which we create a prototype - that is probably a throw-away
prototype - I could use that Scala-at-karma-1 with the excuse "i'll be
much faster and get to the points, but it won't be much different than
Java and you can follow me". After all, such a scala-bility in the
introduction of the language should be part of Scala, given its name.
Instead, whenever I find a tutorial, such as the Bruce's one mentioned
in the previous thread, I find that the emphasis is put on how Scala is
much different than Java. I think this approach attracts a minority of
passionate and skilled developers and scares masses.
One last word about the supposed higher complexity of Scala. I admit
that the biggest part of the experienced Java developers found it too
difficult to grasp. But still I think they just confuse complexity
with unfamiliarity. Last december I did a 3 lessons course on Scala at
Università Statale of Milan and in february i repeated the same course
at University of Padua. In both cases there was a low percentage of
people who already knew Java and in both cases I saw that the students
really appreciated the features of the language. I guess that if I
then showed them the equivalent Java code they could find it more
complex than the Scala one. Now I am doing the same experience at work
here in Berlin: I am teaching Scala to a guy who never worked in Java
before and it's impressive how fast he is learning and how productive
he already is.
Working with fresh students can be simpler in many cases, since they're
not used to anything and everything is new. So, evangelizing in
universities is good. The problem is the one cited above, that I don't
think the current bunch of Scala passionate evangelists are a critical
mass for moving something relevant in universities.
--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
java.net/blog/fabriziogiudici - www.tidalwave.it/people
[email protected]
--
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.