Hacker News new | past | comments | ask | show | jobs | submit login
Scala At Yammer (Official position on Scala) (yammer.com)
134 points by swah on Dec 1, 2011 | hide | past | favorite | 62 comments



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.


Absolutely. His blog is sparse but excellent, which seems to be one of the main characteristics of excellent blogs.


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


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


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.


PR bs summary: "I said scala sucks, but I only said it to that one person, I didn't mean everyone to know that I think scala sucks, so yes, we love scala (but in private we think it sucks)".


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-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...

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.


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


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.


[deleted]


I don't blog actively right now, although I'm tempted to start after all this. All my input can be found in the comments sections of Stephen's two EJB2 posts and in other hacker news threads.


I misread, I didn't know you posted in the comments section. I assumed you posted on a blog.


My opinion of Scala is fairly neutral, and I was still annoyed by the smug told-ya-so attitude of Colebourne's posts.


When a "journalist" says "there is a rumor that X", is it even false? After all, once a journalist said it, the rumor exists. Bad PR is easy to generate and if media consumers are stupid and lazy enough, they'll buy it.

The Potterverse is a tale of what happens when there are no adults in the world at all - when all people behave like twelve year olds all the time. Annihilation of all life on Earth is prevented by authorial fiat.


Thank you, great overview.


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?


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.


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.


Same. I really, really like Scala, but I found it kind of strange that they felt obligated to go "wait wait wait, we like Scala, really...!"


It was him trying to end all of the stories floating around caused by the private but public email.

He didn't want the last word to be Yammer hates Scala and need's to jump ship. He thought it necessary to give a more balanced overview and provide subtext to the original message. I think he succeeded in doing this.


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.


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.


TL;DR: The article has no information about their position.


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.


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.


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.


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?


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.


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?


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.


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...


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.


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



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


Coda wrote the email. Sent to some friends for review. Friends of friends of friends got hold of it and it's leaked.


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.


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..


It's an allusion to the phrase 'the right tool for the job'.

In this case you can replace 'tools' with 'programming languages', that's what he means.


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


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


...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.


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.


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/


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.


I don't plan on losing any sleep about Coda's position about HN. I've got better things to do with my time.

But at the same time, I don't blame people on HN for being a bit angry and venting on the subject. That's what people tend to do when they've been insulted. I was even a bit peeved (albeit for about 2 minutes). Does this serve any practical purpose? Absolutely not. But human beings will be human beings: dumb, dramatic, emotional apes who take offense when people insult them.


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.


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


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)


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).


Actually, I like bcrypt because tptacek yelled about it.


> What are you trying to prove?

What are you?

Seems like every comment I see from you the last couple weeks is exceedingly angry rants, and half of them constitute the very metadrama you're calling "dumb". What's going on with you?


This is a forum that can't even talk about putting Scala into production without personalizing it and turning it into drama.

So, trying something new: not being cool about it.

Maybe it won't work out over the long term and I'll relax a bit. I'll figure that out for myself, though.


I'm not trying to put anyone in their place. In a way, that kind of dominance-hierarchy BS is exactly what I'm objecting to. The point here is that this new response from Coda doesn't even address the technical debate. It doesn't make one new point in that area. It's entirely about smoothing ruffled feathers, so responses about the ruffling and smoothing of feathers are completely fair game.

Furthermore, this kind of "reputation management" (or whatever you want to call it) really does matter, and I think there are important lessons the HN audience can take away from it. Being conciliatory toward one person or group just isn't very convincing if you're almost simultaneously trying just as hard as ever to alienate others. The mixed messages, even though they're supposedly addressed to different people, make even the conciliatory part seem insincere. If I were in Donald's or Martin's position, I'd be wondering how long the constructive tone - and the original letter was very constructive - will last before the inevitable reversion to form. The lesson is that if you want to claim the moral high ground you have to stand on it for a while. Stephen was wrong to publish what should have remained private correspondence, but calling him out like that only ensures that the controversy will continue. The urge to bare teeth and show dominance overwhelmed the rational choice to let this whole thing fade into a natural and well deserved obscurity.

What was called for was de-escalation, and anybody else who finds themselves in a similar situation (many of us have or will BTW) would do well to watch how this one plays out.


I don't think you're following me. You can't correct Coda. He doesn't care. All you can do is take the thread in one direction or another. I think this is a bad direction for our threads to go.

Also: I don't think you can talk about "de-escalation" when you brought the issue up on the thread.


"You can't correct Coda. He doesn't care."

I know that. What I might be able to do, though, is explain why his example might be a bad one to follow. Or maybe it's a good one, for those of the "no publicity is bad publicity" mindset. In any case, I think it's worth it to express my view. These things do affect businesses and livelihoods. Maybe it's too "meta" for some people, but - unlike some - I won't tell people who disagree that they should remain silent.

"I think this is a bad direction for our threads to go"

It's not only a bad direction for "our" threads to go; it's a bad direction for the broader discussion - across here, Twitter, various blogs, etc. - to go. That's my point. HN isn't an island. I've seen quite a few people who disable comments on their blog posts and explicitly direct readers to the corresponding post here for discussion. The real damage to real reputations is being done elsewhere, and condemning those who point it out here seems counterproductive.

"I don't think you can talk about "de-escalation""

Ad hominem, pure and simple. I'm not one of the principals here. I have nothing to do with the companies or communities involved. As a mere commentator, nothing I say affects those relationships one way or another, so de/escalation is an inoperative concept. If you want to disagree with me fine, but please stop finding new ways to tell me I shouldn't even have an opinion.


In that my argument is entirely about calling you out for poisoning the thread, yes, I think it's fair to call it ad hominem.


"nerd slapfights" iirc.


What trouble?


Coda was obviously not thrilled that @jodastephen apparently (from updates written at the top of his post) decided to

(1) widely publish personal correspondence that wasn't meant to be sent to him,

(2) mirrored it when Coda removed his copy from the net,

(3) insinuated it was a public statement by yammer, whereas it was private thoughts from Coda, and

(4) wasn't even classy enough to contact Coda before publishing it.

Maybe I'm particularly sensitive to (3) because an jerk on HN insinuated that my posts here were representative of the company I worked at, but none of those four things are particularly nice on @jodastephen's part. Note also that, depending on your employer, (3) can get you in quite a bit of trouble. @jodastephen claims he found the email on HN or twitter, but that doesn't mean he has to repost it. Just like when you see accidental tits photos sent from someone's phone, you can either close the tab or repost it to spread it to the world.

That said, it's obviously interesting that the build situation for larger projects seems to be a shitshow, but still, an email to Coda before posting wouldn't have hurt.

The context also matters -- as Coda mentioned, this email was only in regards to the negatives with scala and doesn't mention any of the positives.


I understand and agree with everything you said. Coda has every right to be angry with Stephen. He might even have the right to sue Stephen. Nonetheless, swearing in public like that was simply not the way to deal with the situation. Think about it in purely strategic terms. What outcome might Coda or Yammer want from this? Perhaps for it to fade away, perhaps for Stephen to apologize, perhaps something else. Does snarling at Stephen bring any of those outcomes closer? Did the swipe at HN? If Stephen or anybody else - I suppose some might think that includes me - harbored any ill will, wouldn't this just give them even more opportunity to do some damage?

Sometimes the right thing to do when you're wronged is to let it pass, no matter how much it sticks in your craw, for strategic reasons. Sometimes giving in to that moral-outrage addiction simply does more harm than good, no matter how justified the outrage might be. And yes, I've very much been in that position myself. It sucks, but I've learned that it sucks even more to have a self-inflicted wound on top of the one I got from someone else.


Lesson number one:

drafts of emails at startups get LEAKED!

DUH!


YAWN




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: