Scala At Yammer (Official position on Scala)
eng.yammer.com
eng.yammer.com
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.
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.
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.
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.
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?
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.
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.
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.
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.
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? 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?
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?
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...
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.
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..
In this case you can replace 'tools' with 'programming languages', that's what he means.
"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.
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.
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.
Also: I don't think you can talk about "de-escalation" when you brought the issue up on the thread.
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.
"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.
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.
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.
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?
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.
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)
(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.
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.
drafts of emails at startups get LEAKED!
DUH!