

Scala At Yammer (Official position on Scala) - swah
http://eng.yammer.com/blog/2011/11/30/scala-at-yammer.html

======
sreque
I wonder if Stephen Colebourne or Alex Blewitt will write a news story or blog
post about this response. They've certainly not hesitated to spew out the
following garbage, all in the past week:

[http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and-
othe...](http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and-other.html)

<http://blog.joda.org/2011/11/scala-ejb-2-feedback.html>

<http://blog.joda.org/search/label/scala>

<http://www.infoq.com/news/2011/11/scala-ejb2>

<http://www.infoq.com/news/2011/11/yammer-scala>

In his first article, Alex even had the gall to reference himself twice
without mentioning the fact, all while still writing in a voice that pretended
to unbiased reporting. That seems very unprofessional to me!

<http://alblue.bandlem.com/2009/08/modularity-for-scala.html>

[http://alblue.bandlem.com/2009/10/scala-is-still-not-
enterpr...](http://alblue.bandlem.com/2009/10/scala-is-still-not-enterprise-
ready.html)

No, actually, I don't wonder at all. When I read the Harry Potter series, its
portrayal of media as corrupt and sensationalist irked me as unrealistic
hyperbole. No one could be that biased in their reporting, could they? Yet the
conduct of these two lately conjures up in my head an image of Rita Skeeter
sneaking about, spreading rumors and twisting truths into half-lies. At least
they've made their irrational anti-Scala bias clearly manifest, so the rest of
us can ignore them now.

~~~
verroq
Your posts reeks of fanboyism, instead of addressing their points, you ignore
them by claiming the posts are garbage.

~~~
sreque
If you've been paying attention, I addressed most of Stephen's points in the
comments sections of his first two blog posts, and Alex's "news stories" are
just a rehash of those posts. I've also made comments in one of the other
Hacker news threads about the Yammer email. Finally, I know Scala has flaws
and admitted to them in other places. I may be a fanboy, but I consider myself
one that listens to reason, at least.

My last comment, however, has nothing to do with technology and everything to
do with the human side of things. Stephen and Alex are playing dirty, and I'm
calling them out for it.

------
tptacek
Apropos nothing else: Coda Hale is pretty great writer. Most of this content
was fairly predictable given the last two Yammer/Scala stories; even so, this
held my attention start to finish. INTERCAL. Heh.

~~~
groovy2shoes
I agree completely. All content aside, he's captivating -- absolutely
gripping. I can't wait for the sequel!

~~~
brazzy
Seriously? Seemed like absolutely boring, predictable PR damage control with
no actual content whatsoever.

~~~
tptacek
That's actually my point: it's not a particularly interesting release, but it
was still fun to read.

That said, let's remember here that Yammer has no real "damage" to "control"
here. I'm guessing 99.9999999% of their customers could not care less whether
they build things in Java or Scala or INTERCAL. The kinds of people that do
care about stuff like that are disproportionally likely to sh!tc#ck about
Yammer being "a dumb Twitter clone" instead of buying.

------
socratic
Have these two follow-up posts changed anyone's mind about the first?

Yammer's productivity gains from Scala were apparently not greater than the
losses due to poor tooling and the impedance mismatch between Java/JVM and
Scala. Therefore, the engineers all thought it was better to just go back to
Java.

That seems like a useful data point, but certainly others' experiences might
vary. Have these other posts added any extra information?

~~~
brown9-2
I don't think they were intended to really change anyone's perspectives, but
rather just clarify a private conversation accidentally made public.

If anything, I just find it really odd that a company feels the need to have
an official statement on what programming language they use/will use/might
use.

~~~
csmt
I think Coda did a good job in posting Yammer's official position clarifying
the situation and it's a captivating blog post.

Many people (including some people on HN) started criticizing Yammer because
they decided to go back to Java. This blog post was in some sense necessary
for Yammer.

------
karterk
TL;DR: Yammer uses a number of languages and every one of them have their
strengths and shortcomings. They are getting back to work, and not argue about
tools. No "official" word on whether they are actually moving away from Scala.

~~~
DanielRibeiro
Actually the line _we were moving some components from Scala to Java_ suggests
that they are not completely moving away from Scala. Which is pretty
reasonable.

------
verroq
Personally, Scala's multiple ways of solving the same problem is a major
concern to me, it's language with bipolar disorder.

For example. Iterating through a container.

1\. list.foreach(anonmyous function) 2\. for (i <= list) 3\. while loop.

Throw in both scala.collections.immutable/mutable, and java.util collections.

Scala wants you to use functional programming styles to solve problems. Thus
do everything list.foreach() way. But it's backed on top of jvm which isn't
the most functional programming friendly virtual machine. All the functional
programming end up being syntaxical sugar and a burden if you want any
performance at all. So for performance you are forced to write things the java
way, which terrible because the language is designed to lean towards solving
problems functionally, so you shoot yourself in the foot either way.

~~~
zohebv
This is a familiar pattern in any language, not just scala. If you doubt me
just check out the source code for memcpy.c. Witness the loop unrolling, the
byte fiddling the register level manipulations and the several hundreds, if
not thousands, of lines of code required to implement the function. Wouldn't a
simple for loop be enough?

High performance code anywhere will force you to drop down to the lowest level
possible and work from there. The rationale of functional programming is that
you can work largely at a high level and drop down to low level techniques in
the 1-10% of the code that really matter for performance. One measure of the
success of Scala is that it is being benchmarked against Java unlike
Python/Ruby/Groovy etc. It is a reasonably high level language, yet the
benchmark comparisons are always against Java. If necessary the performance
required can be had by writing your while loops to avoid the object allocation
required to build a closure. I don't see this as a disadvantage at all, as I
can use the high level techniques in the remaining 90% of the code.

~~~
verroq
But Scala doesn't let that happen nicely does it? It doesn't go down without a
bit of fighting. Scala's quirks make writing lower level code more difficult.
Interfacing with Java collections feels just awkward.

~~~
zohebv
EDIT: Quoting, as OP updated his comment as I responded.

>But Scala doesn't let that happen nicely does it? Interfacing with Java
collections feels just awkward.

Awkward? The Scala interface is better than the native Java interface itself.
I can perform a map, reduce, filter on the Java array in Scala, something that
is impossible in Java. How can it be more awkward than Java itself?

~~~
verroq
What I'm saying is, if you decided to say, use a Java HashMap in one part of
your code for performance reasons. You'll have to live with that with the rest
of your code. Half of the classes in the scala library doesn't like it because
it doesn't implement the required traits and as far as I can tell there is no
nice way of converting between collections.

~~~
zohebv
import scala.collection.JavaConverters._

Scala doesn't provide a built in for your specific case but

import scala.collection.breakOut

and you can convert mutable Java hash map to immutable scala map

b = a.asScala.map(p => p)(breakOut)

where b : scala.collection.immutable.HashMap[java.lang.String,Int]

and a : java.util.HashMap[String,Int]

Not too bad at all. Moreover, why would you want to convert a Java map to
Scala if you specifically used the Java map to improve performance? How is
this any worse than coding in Java itself?

------
hackada
I don't really get what all the fuzz is about. I think this guy is losing the
point or trying to excuse himself for what he thinks. You wrote your thoughts
about scala, the email accidentally (or whatever) leaked and somebody
referenced your thoughts. The point is not that you wrote those thoughts in
private or whatever the point is that you wrote that java suits you better
than scala. And that's got referenced. Nobody said Yammer publicly announces
that scala doesn't suit them. Whether your thoughts were intended for the
public or for just one person is irrelevant. What a politician says when his
mic is on while he is thinking is off the air, and everyone accidentally hears
it, is still true. The fact that it was not intended for everyone to hear
doesn't automatically make it false.

~~~
ananthrk
_Nobody said Yammer said publicly announces that scala doesn't suit them._

Actually, someone did. The original post that `leaked` this email says
something to that effect [http://blog.joda.org/2011/11/real-life-scala-
feedback-from-y...](http://blog.joda.org/2011/11/real-life-scala-feedback-
from-yammer.html)

~~~
hackada
The point I was trying to make is that it's not important whether it was a
public announcement or not. It is quite clear from the posted email what their
thoughts are on scala. The email talks about developers at Yammer and gives
specficic reasons and examples. The point is made clear and loud.

Now they realise it might not be good for PR and try to "fix" the situation
appealing to the fact that the email was not meant to be public which is both
ineffective and unelegant.

------
8ig8
Just curious: Is there any information about how an email from one executive
to two others is 'leaked'? That seems like a bigger concern.

~~~
leftnode
<http://codahale.com/the-rest-of-the-story/>

~~~
8ig8
Thanks. That helps a lot. I didn't realize this whole backstory was public.

------
darklajid
I loved the tone of the article.

That said, help a non native english speaker:

"... none of that will go any faster if we sit around here arguing about
tools"

Is tools in this context a subtle(?) reference to some persons out there or
are we talking about things and stuff only?

Love it either way..

~~~
pangram
I'm pretty sure it refers to development tools, not people.

------
salimmadjd
The damage has already been done! The private email, made some rather valid
point which after looking through Scala are pretty evident now. So unless you
have an existing founding team that is rather versed in Scala, it probably you
should be avoided.

------
schukin
I would imagine a new language would be twice as deadly at a company that has
zero QA personnel.

------
CPlatypus
...and of course, the professional tone of the blog entry is ruined by the
thoroughly unprofessional tone of the accompanying tweet:

"That, @jodastephen, is a fucking announcement by Yammer about Scala."
<http://twitter.com/coda/status/142047850426146816>

Ah, so much better than those "slapfights" we have here at HN, isn't it?
Protip: backpedaling and fence-mending don't work if you go right back to the
kind of public behavior that got you in trouble in the first place.

~~~
tptacek
Who do you think you're putting in their place with a comment like this? It's
clear Coda could give a shit† what "HN" thinks about him or his messages. Do
you think your comment is going to influence him in any way?

Because really the only parties that your comment is going to influence are
the subset of HN readers that are actually interested in Yammer's use of
Scala, who instead have to watch a pretend trial play out on HN about Coda's
"professionalism".

(I'm happy to delete this comment if you delete yours, just for whatever
that's worth.)

† _Really. I'm not trying to be snippy; I'm just saying it frankly._

~~~
j_baker
Why would someone who doesn't give a shit say something like

"I’d rather suck a dog’s nose dry than lend a hand to the nerd slapfights on
Hacker News."[1]

That sounds like the attitude of someone who very much _does_ give a shit
about HN enough to not like it.

And besides that, while I may agree with what you're saying in principle, in
practice it's bad business to go around insulting such a large number of
potential clients/employees/partners. It's better to keep your mouth shut if
you don't have anything nice to say.

[1] <http://codahale.com/the-rest-of-the-story/>

~~~
tptacek
Keep telling yourself that. Most of the time these days when people talk about
HN like that, it's because they've become accustomed to pointing at it and
laughing amongst their friends.

Meanwhile, the rest of your comment: due respect (really), but who cares? He
doesn't. What are you trying to prove? Who are you trying to convince? Let's
definitely keep burning thread space on this dumb metadrama, now that we've
started.

~~~
Confusion
Well, I don't get that people 'talk about HN like that' and I think it's worth
understanding. A conclusion from that may be that you want try and explain the
value of HN. It would be a win if someone like Coda Hale would sometimes
participate in discussions here.

~~~
tptacek
Yeah, comments like the one rooting this thread sure seem like a great way to
get people like Coda conversing on HN.

~~~
CPlatypus
As you yourself said, it ain't gonna happen anyway. Therefore, this thread
isn't "spoiling" anything that would have happened otherwise. At least try to
be consistent, instead of trying to silence everyone who doesn't share your
opinion of an author you obviously idolize.

<http://news.ycombinator.com/item?id=1998819>
<http://news.ycombinator.org/item?id=2083997>
<http://news.ycombinator.com/item?id=2688984> (includes bonus downvote threat
against any who disagree)

~~~
tptacek
If I had to guess, you got downvoted to the greys for suggesting that I yell
about bcrypt because I like Coda Hale (he is dreamy, though).

~~~
codahale
Actually, I like bcrypt because tptacek yelled about it.

------
shareme
Lesson number one:

drafts of emails at startups get LEAKED!

DUH!

------
spaznode
YAWN

