My comments made it up on the blog this time, but as promised I thought I 
would throw them in here as well for further pondering. It's a long one, 
and not quite the same as the first posts I made (since I couldn't remember 
exactly how I had worded them), but it's about the same in spirit.

As the guy who represented Scala in the scripting bowl at JavaOne, as well 
as a Scala practitioner for over 3 years working on real world projects for 
which Scala is an ideal match, I feel the necessity to weigh in on the 
discussion.

Firstly, comparing Scala to EJB 2 is, of course, an attention getter, as it 
is supposed to be, but as several people have pointed out here, falls apart 
on anything greater than a casual glance (from the comments, even the Scala 
detractors don't seem to agree with that one). If you are going for 
headlines, Stephen, you have them, but the risk with statements like this 
is that they will reflect more poorly on you than on your subject, and may 
even perversely boost the interest in the subject. 

I share the sentiment with several other people in the discussion that I 
would like to know what, and how much, experience you have with Scala to 
make these kind of judgement calls. If you are telling the world not to use 
Scala (which it sounds like you are, and with which I have a whole other 
set of issues), at least that position should be backed up by some kind of 
description of real world experience you have had trying to use it. I would 
not comment negatively on Fantom since I have only dabbled with it, I don't 
believe it has enough to interest me or make me want to invest the time 
into learning it more deeply, but then I certainly wouldn't tell other 
people how much I dislike it or recommend that they don't use it.

Coming back to that subject, I am also confused by your aim here. Are you 
attempting to just tell the world you don't like Scala, or are you trying 
to discourage the rest of the world from even trying it out? Surely if you 
have the courage of your convictions, your position would be the same as 
mine: why not give Scala a try for yourself and see what you think. After 
all, people should care less about what you or I think and more about 
making up their own minds. I did, three years ago, and I am very happy with 
the decision to use Scala as my primary development language. At the same 
time I do not feel the need to put down other languages with negative 
comments and glib comparisons to technologies that really bear little 
resemblance.

In fact I was unable to make it to your Fantom is light years ahead of 
Scala talk at Devoxx, because I was talking about a subject that matters to 
me: Courage in software development. The core messages behind that talk are 
that people should care less about what "celebrities" think, and should do 
more thinking for themselves, also to get out of their comfort zone a 
little more.

If someone tells me a technology should not be learned, my natural reaction 
is to move that technology further up my interest list. If it's bad, I can 
eliminate it quickly enough, but I was raised to think for myself rather 
than to take someone (anyone) else's word for something that might interest 
me.

You started the article on a negative note as well, practically challenging 
the Scala community to deluge you with negative comments (really, why all 
the negativity?). In reading the comments, I would say in my opinion that 
the negativity scales are tipped more to the Scala detractors than the 
Scala fans.

I also read Richard Vowles comment that "Scala tied the scripting superbowl 
this year by trying its very best to not be like Scala". As the Scala 
representative in the scripting bowl, I can tell you I did nothing of the 
sort.

The clue here is in the name of the panel: the Scripting bowl. Clearly I am 
not going to dive into a discussion of higher kinded types in 5 minutes of 
scripting bowl time, but what I demonstrated was three different and very 
relevant aspects of the Scala language and platform that are useful to 
developers right now. 

The first was interactively scripting a real world project (actually the 
code base I work on every day) to try out ideas in the Scala shell. I 
demonstrated talking to a third party API (confluence), reading data, and 
parsing the XML out using only the standard scala libraries. I used a for 
comprehension, the xpath XML features and more.

The second was a demonstration of Kojo, a scripting and learning 
environment for kids. I did this to take on the notion that Scala was 
inherently over-complicated (thanks to the numerous comments from Scala 
detractors for the idea by the way, it made it really easy to choose a 
theme). Kojo is like Logo but in Scala, and is used by several people I 
know for teaching programming to high-schoolers. It is *absolutely* 
standard Scala, you define methods and use custom control structures and 
not a type system concept to be seen in the process. Just because it 
doesn't fit with your idea that Scala is to complicated, Richard, it 
doesn't mean you can just throw out there that it isn't real Scala. It is.

Finally I demonstrated the real crowd pleaser, a DSL that literally takes:

A long time ago in a galaxy far far away

and returns a String result. This is a reasonably advanced domain specific 
language, and again needed nothing more complex than string types and a 
single object to write.

Back to Stephen: in short, I am glad you seem confident enough in your 
opinions to share them in blog posting, but are you confident enough in 
them to invite people to try it out for themselves? I am! Please, if you 
are reading this, don't believe either of us but give it a go yourself. 
Learning Scala will not taint you in some indescribable way that will 
prevent you from ever programming again. Indeed, if you are interested in 
the coming crop of languages like Ceylon and Kotlin, Scala will introduce 
you to many of the concepts you will see in those languages so you can get 
a head-start on learning them. Chances are though, some of you will like 
Scala and continue to use it.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/javaposse/-/hIvSv-oifzEJ.
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