

Offbeat: Scala by the end of 2011 – No Drama but Frustration is Growing - michaelty
http://gridgaintech.wordpress.com/2011/12/11/offbeat-scala-by-the-end-of-2011-no-drama-but-frustration-is-growing/

======
nadam
My general feeling is that there is a business-model problem in the tech
industry. The most important technolgies are underfunded. They are created by
smart people in their free time, or by companies who do not have enough money.
For example I've looked at Scala's Eclipse plugin: it was a horror. It is just
question of money (hiring a bunch of good developers) to create IDE support
which is not totally buggy and not horribly slow.

If 1/100th of the VC money going into social startups would go into actual
technology companies, if it were an accpeted business model to sell (maybe
read-only open source) technology for money, then the tech landscape would be
totally different.

TL;DR: to replace Java, a lot of directed professional development effort
would be needed: money would help a lot.

~~~
_delirium
If you compare to where the previous generation of solid PLs and
infrastructure research/development came from, I think what's missing
currently is well-funded industrial research labs where such developers used
to be able to park themselves while still releasing their languages/compilers
for free, sidestepping the business-model question.

Not all languages came that way, but some of the major ones did: C was Bell
Labs, C++ was also Bell Labs, Smalltalk was Xerox PARC. The main contemporary
example in that vein is probably Go coming out of Google, though it remains to
be seen how mature and widely used it'll get. For compiler projects, V8 coming
out of Google and LLVM now being funded by Apple are two examples. Java is an
example developed by a company with an eye towards product/monetization rather
than as a research project, but is probably these days seen as a cautionary
tale of why _not_ to approach PLs as a business opportunity, because Sun
pretty convincingly failed to monetize it.

~~~
jules
Microsoft works that way with C#, VB and F#. And they even fund Haskell
research. Judging by the quality of their output, it seems to be working very
well.

~~~
_delirium
True, those are also good examples, though with the non-Haskell examples it's
a bit closer to the Eiffel model, where a company develops a high-quality
proprietary compiler/environment to sell.

~~~
nickik
The market has in big parts shown that the kind of development we have know
wins out. Sure there are some people left who can make money developing
languages but most that did this died.

------
cfontes
Again, Scala is just another tool it's evolving and it's a very nice tool to
know...

Of course Java will always be around because it's easy to learn(I earn my
money with it BTW) and it protects you from all kinds of stupid errors that
newcomers could do in C , C++ or Javascript (memory management, Static Typed,
etc...) but Scala provides a very flexible way to code a way that most Java
devs are not used to, and therefor it takes a while to learn, but when you do
learn it's a Joy I am a proof of that I really like coding in Scala while java
is like my work horse, scala is what I use for my fun coding.

BUT... as an young language it have some major drawbacks, like lack of a
proper IDE, slow compiling time, lack of Frameworks, lack of documentation and
so on... but I am really happy to see Typesafe writing the problems down and
fixing them when possible, it will take a while but when it's done it's going
to be a very good language to know, and they are slowly I agree but fixing it.

~~~
Maro
I downvoted you because your 2nd sentence consists of 107 words.

~~~
cfontes
I was missing a goal to pratice my Scala so I wrote a script to find if you
follow your rule, I stopped after getting something bigger than 107 words in
order to not hurt HN.

After several 90+ words paragraphs I found this 138 words beauty :D.

" Maro 321 days ago | link | parent | on: "Nothing like this will be built
again": a tour of...

When I was getting my degree is Physics we had a lab in the "student reactor",
which was still in a large building of its own. As part of the lab we got to
sit down to the control console of the reactor and control it, on our own. I
remember I was turning one knob increasing the power output when suddenly
there was a loud noise, everything shook, and the power output went to zero.
Turned out it was the failsafe (I think cadmium rods dropped into the core) as
I was too agressive with the controls --- it was a normal occurence for
students. (All modern reactors are designed in a way that you can't overdrive
them, they'll automatically shut down.) It was great fun and a story I'll be
telling for the rest of my life. "

P.S: I didn't count the --- as a word !

~~~
sp332
Maro complained about a single sentence, not a whole paragraph.

~~~
cfontes
Point taken, maybe I could rewrite the script :D. Just kidding. I just wanted
to show that a constructive argument like the one you made is appreciated and
if you down vote me with that I will be glad, but the point that he gave was
not useful to make my sentence skills better :D

------
socratic
Would it be wrong to think of Scala and Clojure as the F# of the JVM?

I had been thinking of Scala as though it was Java++ (in analogy to C vs C++):
a language that adds a few features on top of Java for better abstractions,
but regular Java programmers can basically program Java in it (and read it as
though it was Java). However, it seems like truly idiomatic Scala code
involves heavy use of advanced functional and type system concepts that cannot
simply be glossed over.

Will Scala and/or Clojure end up as languages in the JVM used by a small
number of senior developers to be more efficient on particular problems (like
F# on the CLR) rather than the next big language used by everyone (like C++
superseding C for most problems)? And, is that an accurate portrayal of how F#
is currently being used?

~~~
nickik
I would say yes. From C to C++ you can use the same tools and everything. Java
to Scala is still a new language.

------
mgkimsal
Interesting that they feel this way. As a Groovy enthusiast, it feels to me
like Scala's gotten all the press/mindshare over the last year, while Groovy
is potentially doomed to sideline status. Lift gets some praise, and Play! and
Roo are the new hotness, while Groovy/Grails doesn't get the love I'd like it
to.

Probably all "alt.java" tech will remain somewhat fringe, simply due to
inertia. And although I wasn't in the Groovy community at the beginning, I do
think that Groovy, in some small part, helped further along the "non Java on
the JVM" story, giving people solid examples of using alt.java languages
without having to leave the JVM altogether.

~~~
TylerE
It's Groovy still, like, slower than Ruby? That was always the big attraction
with Scala - all the fun stuff, but less than a 5% performance penalty over
vanilla java.

~~~
mgkimsal
It's faster than it was a couple years ago, but doesn't win all the benchmarks
out there, no.

That said, I've got Grails apps running in production just fine, and to
whatever degree _noticeable_ speed is an issue, it's almost always down to
database indexing.

As Hamlet said, I don't think execution speed is the primary reason people
aren't using Groovy. Personally, I think all the "alt.java" languages are
fighting for attention from the few people left in the Java/JVM arena who are
truly interested in exploring new ideas/techniques. Many Java devs who were
interested in getting better years ago left for other platforms, (and many of
_those_ people will likely jump to new platforms every few years out of
curiosity more than anything else).

~~~
TylerE
You're assuming that the only people interested in these languages are only
people locked in to Java-the-platform. That defiantly isn't the case,
especially for Scala and Clojure, as they offer combinations of features and
language traits that aren't really available elsewhere.

------
philjackson
I don't really know much about Scala or its ecosystem but I'm curious, what do
they mean by:

    
    
        "Ridicule about parallel collections in 2.9 (one of its major new features)"

~~~
pvillega
To sum it up (feel free to add corrections) one guy put a blog post saying
that Parallel collections had many issues, etc etc... and the reality was that
he misunderstood them somehow.

As one guy put it, the collections do nice work but you have to know what you
are doing (not all work can be broken into fragments that can be computed in
parallel). He was kind of expecting otherwise.

Not saying they are perfect, just what happened (more or less)

~~~
jebberjeb
I used them a bit with some image processing. Was awesome to see all 8 cores
pegged w/ one line of code!

~~~
eternalban
Java or Scala?

    
    
        list.par().map(f);

~~~
dxbydt
I've found that if the list is very large, using list.par.map(...) hits the
memory limit & then simply hangs.

I process upwards of a million facilities ( a facility is the exposure on a
commercial loan a bank makes to a client ), trying to forecast their expected
loss over 12 future quarters.

I rewrote my code like so :

val facs:List[Facility] = ...populated via jdbc query ///

val N = 1000

facs.grouped(N).foreach( group => {

    
    
       group.par.map( fac => expectedloss(fac)
    

})

Now the outer loop is sequential but the inner loop is parallel. It chugs
along, and processes the entire million plus facilities! I get some control
via the N. Currently my N is 1000 and all 8 cores running at 100% capacity,
but I can slow down the workload with smaller N.

------
pvillega
Given the amount of comments on Scala (positive or negative, that's
irrelevant) I'm not so sure it will be a fringe language for long. It must be
somehow relevant for so many people to spend so much time talking about it...

~~~
mgkimsal
I disagree that the positive/negative is irrelevant. Much of the discussion
around Scala has been around how complicated it is, and ensuing discussions
about how the person who thinks it's confusing is not smart enough, and how
Scala is the "right way" to do things, because it's elegant, etc.

Having a lot of those sorts of comments I don't think will guarantee future
success.

~~~
michaels0620
I am a half step above a blub, but I've been doing some work in Scala and
generally enjoy it. I do, however, think the Scala community needs to have a
more convincing reply to the complexity argument than "You aren't smart enough
to see its brilliance".

My fear is that if things don't change, Scala will fall into a perl-like
situation where it won't be able to shake its reputation and people will
reject the language out of hand before taking a look at what it has to offer.

~~~
jebberjeb
It's too late for that. Scala's community has been branded as a bunch of
condescending intellectuals. Just like Ruby's community was branded as a bunch
of pierced, macbook users in 2005. Neither are really true -- but first
impressions mean everything.

~~~
latchkey
Comments like that always remind me of this image...

[http://www.picshag.com/show.php?f=pics/112010/java-c-php-
rub...](http://www.picshag.com/show.php?f=pics/112010/java-c-php-ruby-as-seen-
by-fanboys-big.jpg)

------
tutysara
I like Scala, sad to see that it is not gaining the required momentum. There
are many people complaining about Scala and we don't see many people who are
using it successfully talk about its abilities and elegance, I would love to
see the scala experts/Typesafe respond with something that demonstrates the
usefulness/applicability of Scala to the masses, and may be Typesafe/Partners
can offer an easy to follow video tutorial?. I am also a little bothered when
the Scala community answers these criticism with - "You are wrong.You haven't
learned it properly" instead of trying to help.

~~~
felipehummel
I also would really like to read more about successful use of Scala in various
companies. Twitter uses it, but is it happy with Scala?

~~~
tutysara
that is the point, we should also think on how much of their software stack is
built on Scala.

------
DannoHung
The problem with Scala is that you end up having to use lost of Java
libraries.

And those were not written to be used with Scala.

