I think this may be overstating it. Look at some Scala questions on StackOverflow and you'll find excellent answers. Argumentative forums are argumentative. -----Original Message----- From: Reinier Zwitserloot <[email protected]> Sender: [email protected] Date: Fri, 2 Dec 2011 20:25:09 To: <[email protected]> Reply-To: [email protected] Subject: [The Java Posse] Re: Coda Hale on Scala
I'm a little surprised the discussion has moved to the in my opinion relative strawman of collections API performance. As Dick said, the golden rule of performance optimization is to FIRST make sure you're using the most efficient algorithm possible because that will always outpace whatever performance suckiness you're facing from your language / VM / library (unless you're using a library with a known inefficient algorithm, but, boy, then you really picked a sucky library to roll with!). Even if scala's collection API performance is bad, that can be fixed. What I find far more condemning, in fact, THE 'this is the true essence of why scala sucks, at least for us' line in it, is the scala community. This line is perhaps not exactly fair to the community at large, but it felt like it hit the nail on the head: Quote: As my team navigated these waters, they would occasionally ask things like: "So this one guy says the only way to do this is with a bijective map on a semi-algebra, whatever the hell that is, and this other guy says to use a library which doesn't have docs and didn't exist until last week and that he wrote. The first guy and the second guy seem to hate each other. What's the Scala way of sending an HTTP request to a server?" That. That right there, that's gotta hurt. And to be perfectly honest I think this line of complaining is on to something. The gist is: The community just doesn't work for your average business - they have vastly different concerns, make assumptions about my knowledge of type systems and academic programming arcana that are way, way off, get cocky when it becomes clear I don't have their grasp of terminology and concepts, do not care about the things I care about, I don't care about the things they DO care about, and any foray into google or other search-for-help channels is 90%+ certain to lead in a big headache and no answer to show for it. We gotta fend for ourselves, there's no real way of doing things that is feasible for a business like us to maintain, which means even if somehow seasoned scala developers were beating the door down to our recruitment department, the learning curve for them to get up to speed on our code base will always be far, far larger vs. java. These questions spring to mind. (A) Is this complaint correct? (My guess: Yes, it is, very). (B) If it is, how bad is that for scala's future (My guess: Very bad). (C) Can it be fixed? (My guess: Probably not - I have no idea where to even start). (D) Is this anybody's 'fault' - is there a lesson to be learned here for future languages? (My guess: Oh, I don't even know where to start). To reiterate, I don't think this is just about a few bad apples that are turning droves of would-be enthusiasts AWAY from scala due to their behaviour, i.e. this is not about Tony Morris, Kevin Wright, and a select few other well known let's say, uh, 'enthusiastic' scala supporters. Coda's complaint goes a lot deeper than that. In regards to question D - there's a chance that Scala's kind of complexity is the kind that attracts this community, and it's obvious to me that a community's rough outline is decided by the early adopters. Java doesn't get away scot free here - one very stupid side-effect that's IMO _entirely_ the fault of the java community is badly designed API. Pick any random java library and the API is likely a complete clusterfrak that any half-brained java enthusiast with some common sense and a day or two to think it through can do way, way, better. You know, avoid the FoobarFactoryFactoryGenerator and 25 separate convoluted XML files. Still, no matter how annoying it is to work with this (and I do see this changing, very slowly), you can go out there, ask for help, find examples, figure it out, and move on with your day. Also, even a crappy standard is still a standard and probably beats 15 novel and creative but ultimately vastly different ways of doing 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/-/RAuhHDYZye8J. 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. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. 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.
