5 ms·
That is good but I have used Scala before and would not recommend it for an enterprise project. It was rather convoluted and had lots of concepts that just woul
by tonetheman 14y ago
That is good but I have used Scala before and would not recommend it for an enterprise project. It was rather convoluted and had lots of concepts that just would not make sense to the java programmers in our company.
There would be teams that could have used it and thrived but overall the complexity of the language seemed to outweigh any reasons I could give to use it.
I wish them the best but I think they will have a hard time getting Scala into the enterprise. For smaller companies it probably would make sense.
Ah well not trying to be a downer. :)
- taligent 14y agoYou are 100% correct. When you give developers a new set of tools they are inevitably going to use them. Some will understand and use them well. The overwhelming majority won't. And in an enterprise environment where you have a higher turnover of developers and tight deadlines it will be the equivalent of a ticking time bomb. And because the framework is centered around Play which has/had a good reputation it won't invoke that suspicious, foreign language feeling in developers that it probably should. I very much suspect that the future of Scala is going to rest in the hands of Guillaume Bort's ability to wrap any of the nastiness.
- batista 14y ago>it won't invoke that suspicious, foreign language feeling in developers that it probably should. The "foreign language feeling" is a good thing in a developer? Who would have thought... Talk about narrow horizons... Reminds me of the Blues Brothers joke: "We play both kinds of music at this bar, country AND western".
- pkolaczk 14y agoComplexity of Scala has been debated many times. Just because a language adds some new concepts and is different than other mainstream languages, is not enough to call it "complex". Before you answer question about whether Scala is complex, try to answer the following questions first: Is JEE complex? Is Spring Framework complex? Is Maven complex? Are webservices complex? Is C# complex? They are, they introduce new concepts and in many ways they have much more rough edges than Scala (remember JEE 2.1?). Somehow all of them have been widely used in enterprise software development in many successful projects. I'm surprised by how much flexibility Scala offers with so few simple concepts. Ok, you have to take some time to learn them. But this is the same as learning just any new API.
- Ygg2 14y agoJust because something is complex doesn't mean it is bad, but something being really really complex (or feature rich), doesn't mean it is good either. Now I might be mistaken, but Scala is one of rare languages that actually has compiler commands that disable parts of it syntax (or there was a plan to do so). To me that yells - Too complex. I'm quite sure it is powerful. But it doesn't look like something I'd enjoy using. My main gripes about Scala is that the trait system is way less elegant than the Smalltalk variant [1], there seems to be a hundred different ways to do a thing (as opposed to a more unified way of doing things) and the overall "automagical" implicit. Not to mention the overall verbosity and ways the different features mesh together. [1]http://www.cs.cmu.edu/~aldrich/courses/819/Scha03aTraits.pdf http://www.cs.cmu.edu/~aldrich/courses/819/Scha03aTraits.pdf
- pkolaczk 14y agoAs far as I know they haven't implemented disabling parts of the syntax in the compiler, yet. There were plans to do it, due to the fact, that for application coding there, the most controversial features are not used very often, and because of the posts like yours, that Scala is too complex. However, these features are essential for library / framework type of code. Scala collections library could not be that easy to use, powerful and clean if these powerful features like implicits were not in the language. Things like Squeryl could not be implemented, without adding special support in language (like in C#). Scala is pretty simple - just a few, very generic, powerful features, instead of thousands of special cases and compiler quirks. As for verbosity: I coded a lot in Python, in Perl and then in Scala, and found Scala code to be sometimes even shorter. Note Scala is statically typed, it is harder for statically typed language to be terse. It does pretty well in this area, for a statically typed language. As for doing things in different ways: in Python they say there should be one obvious way to do it. But it really isn't. Lots of things in Python could be done in different ways. This is inherent to programming, and it is a good thing, making programming more art than craft.
- eta_carinae 14y ago> Complexity of Scala has been debated many times. Just because a language adds some new concepts and is different than other mainstream languages, is not enough to call it "complex". It seems to me that the JVM community has moved on from Scala and is actively looking for a language that offers most of the benefits that Scala offers without the downsides. Kotlin (from JetBrains) and Ceylon (from RedHat) seem to be the first two languages with a really interesting take on this problem. Gosu and Fantom are similar attempts, although I think these two already failed to gain traction.
- thebluesky 14y agoWorks just fine for us, even our college sophomore intern had no trouble figuring it out.
- leothekim 14y agoI think the bigger hurdle to Scala adoption isn't language complexity, but tooling. It's not as mature as Java tooling, and compilation is dreadfully slow. Typesafe is actually putting some effort in improving Scala tooling, so hopefully the additional funding will help them move the ball faster in that area.
- pkolaczk 14y agoYes! Exactly. This is the problem, not Scala being complex. Fortunately they are improving fast. FSC support in Idea is pretty good. If you have a decent processor, compilation is no longer an issue. Scala is really very easy to start for someone who knows mainstream languages like C++ or Java or C# - you just start writing in it like in a better Java, then slowly learn new concepts... For me it took two weeks to feel comfortable with it. Actually much faster than with Python.
- zmmmmm 14y agoYeah, this is ultimately what prevents me from contemplating using Scala in a broader context. I will admit I haven't tried for a while, but every time I've tried out the Scala eclipse plugin it's been incredibly flaky. For the top tier of developers this doesn't matter too much (they can either handle flakiness or do without an IDE at all) but companies specifically do not want to build their systems dependent on constantly having top tier developers to do every little change they need. You can contrast with Groovy which while still not perfect, has an awesome eclipse plugin and SpringSource offers a whole customised eclipse version for working with their stuff.
- flatline 14y agoThis really just amounts to vague hand-waving that language complexity somehow impacts productivity. Do you have any evidence to back up this fear? C# seems to have done reasonably well in the enterprise, and it has much greater complexity than Java. It doesn't have all the flexibility of Scala but for common use cases I think they are actually pretty comparable. Same goes with F#, which is not tailored to everyone's needs but is there out of the box in Visual Studio (it is an ML-based language). I've never seen it be an actual issue for people who are not experienced with e.g. functional programming, to perform maintenance on a program written with a lot of FP constructs. They may need a little guidance at first but every developer I've worked with loves this kind of stuff when they first see it. Bad code can be written in any language and it usually isn't clever people pushing the boundaries who write it.
- tesseractive 14y agoYou don't typically see F# adoption in the enterprise either -- it's in use in specific business domains like finance, but rarely for writing general-purpose line of business apps. Really, the "unsuitability" of Scala for the enterprise says as much about the common problems with enterprise development (What, expect developers to learn something new?) as it does about Scala. I say that as someone who currently does C# work in an enterprise environment in which there is a ban on using "var" to declare variables with type inference. Apparently Dictionary<string,List<string>> dictionary = new Dictionary<string,List<string>>(); makes it really clear what the variable type is, but var dictionary = new Dictionary<string,List<string>>(); makes people's brains hurt. Sigh.
- tonetheman 14y agoI was in fact just being honest. It is not vague hand waving. I showed many peers what Scala had to offer and it was just not a good fit. Everyone of them thought it was complex. I am not alone in that. Scala is just a large leap from Java. It just is. I thought it was ok but the reality was it would hurt productivity. I would say the same thing about Clojure. I like clojure a lot but it would be hard to recommend to a large established biz.
- eweise 14y agoSuch a sad and unfortunately typical attitude of enterprise java developers. No wonder anyone with with any interest in programming avoids java like the plague.
- weego 14y agoAnd seemingly it's the default attitude of people who perpetuate the use of things like Spring as part of their core stack.
- J446 14y agodon't forgot to add Hibernate to that for everyone still living in 2004
- tesseractive 14y agoThe core problem isn't "java", it's "enterprise".
- ExpiredLink 14y ago"I think I've figured Scala out." http://news.ycombinator.com/item?id=3781276 http://news.ycombinator.com/item?id=3781276
- pjmlp 14y agoGuardian, Facebook and Twitter are pretty much enterprise to me.