4 ms·
Scala's creator's course on coursera certainly doesn't encourage complicating things beyond the minimum necessary https://www.coursera.org/course/progfun https
by benwaffle 12y ago
Scala's creator's course on coursera certainly doesn't encourage complicating things beyond the minimum necessary
https://www.coursera.org/course/progfun https://www.coursera.org/course/progfun
- orteipid 12y agoI've used Scala on and off professionally for about 4-5 months and the best advice I could ever give to someone using it for the first time is to try and treat it like Ruby but with type safety. As numerous people before me have said, the language is a mess. Although it offers some benefits, the syntax is so absolutely bloated that you're probably better off taking the time to really consider whether or not you absolutely need it for all of the headaches and unreadability you're going to run into in terms of code. There aren't many Scala developers out there and the learning curve can and likely will punish you when things need to get done, assuming you're bringing in new developers. The open source libraries all generally seem to have glacially slow development processes, which in some cases might be considered acceptable, but when the main Scala team pushes out 2.11.x (and to some degree actively encourages its use) and X framework you're using literally cannot run because library Y is not compiled against it, you end up stuck on Scala 2.9/2.10 which is really unpleasant for you because you're missing out on the speed increases and other quality of life improvements (how many times have you run into the 22 argument limit for case classes on 2.10?). Perhaps I'm asking for too much, but Scala strikes me as a language that's supposed to be moving a bit faster than Java in terms of development, but that doesn't really seem to be the case. All in all, while it has some neat parts, if I never got to work with it again I wouldn't be crying about it.
- _pmf_ 12y agoI resent Scala because it takes up a spot in the JVM ecosystem that I wish a ML family member would occupy. I really hope Java 8 will slow down Scala's growth.
- spopejoy 12y agoI really wonder why we need the JVM at all. For Haskell at least, the GHC runtime is getting pretty good, and seems to have at least basic tools for GC analysis etc. I'm ignorant of MLs so perhaps someone can speak to their status. Of course there's the much-touted "Java Ecosystem" but it's looking crustier than ever methinks. Maven?? Blech! Also, it doesn't seem wise anymore to build a website on Servlets/JSP/SpringMVC etc, esp. if you want to attract devs. Rest APIs maybe. What's the killer feature these days recommending the JVM?
- frowaway001 12y agoReliability, performance, maturity, instrumentation, diagnostics. Just picking one example from the list, performance: How is GHC's runtime dealing with 100GB+ heaps?
- sixbrx 12y agoDo the Oracle or OpenJDK JVMs deal well with heaps that large? I have no interest in other JVMs because my employer would not consider switching and I can't say I blame them.
- kasey_junk 12y agoIt depends on what you mean by "deal well with heaps that large". You can certainly set them that large with no problems. But given your memory patterns they can cause dramatically bad GC times.
- frowaway001 12y agoYes. It's routinely done.
- lmm 12y agoI'm not sure what libraries you could be talking about except the Twitter ones, which yeah, are slow, don't use them. There really are a bunch of new features and a faster development pace than Java; look at the differences between 2.11 and 2.9 (e.g. macros).
- jfb 12y agoI enjoyed Dr Ordersky's course (of course, it's based largely on SICP, which I also enjoyed), but there's a world of difference between the code you write for those exercises and the code you write in the real world. I'm on record as being a Scala skeptic; I've already run into things that the type system seems to encourage but causes headaches, and the size of the language means that no matter how small a subset you write yourself, you can't help but page out when someone else's subset is different than yours. I know that C++ or Perl wizards eventually get to the point where this isn't a problem, and I guess that Scala is positioning itself as Java++, so the same caveats apply.