Kuhn's "The Structure of Scientific Revolutions" has to do with people
denying *the truth* when there are radical paradigm shifts in knowledge. I
hardly think Scala qualifies for this analogy. Most of what Scala does has
already been done in one form or another. What it represents is the
application of long-existing knowledge from universities to *industrial*
problems. As did Java.

I do not deny that Scala is better than Java in terms of its abstract
approach to a variety of problems that Java doesn't and probably never will
solve well (and these are problems that I am excited to see solved). What I
am saying, however, is that your idea that it's going to get widespread
adoption is very naive regarding the contexts where it would need to be
applied. I think Scala is going to become difficult to follow in the absence
of these magical coding guidelines (which are always bent or ignored) much
more quickly than Java does, which means it is going to prove exceptionally
hard to manage on a large team. Which is going to make it difficult for
managers to chose Scala (they don't want to make their own job harder or
riskier). They have to understand and be comfortable with all these deep and
dangerous features and techniques. Which really means that they have to be
fairly top-flight coders. I don't know about you, but relatively few of my
bosses have been this intellectually adventurous or willing to take on risk
(and for good reason: they are there (unfortunately perhaps) to produce
business results, not technical excellence).

I think Scala's forte is going to be allowing very small teams where
everyone understands all aspects of Scala fairly deeply (i.e., you'd better
understand monads and Scala's type system fully because SOMEONE on your team
will use a feature or technique if it exists!) to produce amazing results
*very* quickly. That is something of a revolution in itself, but I think it
will be a cottage industry relative to the size rest of the software
industry. This is not necessarily a bad thing. If you want to work with
smart people, Scala is going to be a pretty quick way of identifying smart
people! I know this from experience: I can't even understand on several
readings a lot of my friend Greg's posts about Scala and monads and
mathematics. I would need to go back to graduate school in math and I'd
probably need an IQ upgrade to boot.

I know this sounds awfully Dilbert (and maybe that's who I've become), but
at a mid-sized or large company (which is where most people work), what you
want in a language is something that protects you from your co-workers. In
my experience, even the "advanced" features of C++ and Java have
consistently been abused and even wrecked whole projects. 

All this said, Scala is probably a god-send to small startups and university
spin-offs. And I think it's an important stake in the ground because it
references a future wider-scale industrial software revolution that
eventually will occur when someone more practical sits down and figures out
how to pack Scala's features (and some things it didn't address) into a
language that's as easy to learn and read and work with as Java. My advice
to you is this: don't get caught up in the politics of technology adoption.
You will only find yourself frustrated and disappointed because at the end
of the day, it's a business world not a technology world. Instead go find
the cool kids and hack away in Scala on some crazy new startup that really
will change the world. Odds are you'll beat the pants off your Java-based
competitors on time-to-market. And if you're wondering why I don't do that,
it's because of all this green paper stuff they keep throwing at me. Maybe I
really have gotten old.

Jon

"Less is more."
http://www.amazon.com/Coding-Software-Process-Jonathan-Locke/dp/0615404820/

-- 
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Scala-Wicket-Help-and-Advice-tp3174601p3181566.html
Sent from the Forum for Wicket Core developers mailing list archive at 
Nabble.com.

Reply via email to