10 ms·
This is awesome. Clojure has had similar frameworks for a while, but Clojure has a fairly steep learning curve. Really excited to try this in Scala. Wonder if t
by rusbus 9y ago
This is awesome. Clojure has had similar frameworks for a while, but Clojure has a fairly steep learning curve. Really excited to try this in Scala. Wonder if this will be a new trend away from the totally separate webapp + rest API model...
- alextheparrot 9y agoI use Scala daily and have never used Clojure - what creates the steep learning curve? Scala also has a lot of features between “Beginner” and “Advanced” which can really add to the learning curve (Implicits being a good example).
- briankelly 9y agoI haven't tried Clojure yet, but compared to Common Lisp, Scala let's you ease into the advanced features but lisps demand an immediate shift in thinking. You can basically write Java with Scala without much friction.
- alextheparrot 9y agoIt lets you ease into it insofar as you don’t use libraries that heavily rely on more advanced features. Trying to understand how Circe is actually serialiazing your case classes (Or why it is failing) can be quite difficult without understanding Shapeless.
- threeseed 9y agoIt took me weeks to get Circe working on my project. But this compiler plugin makes it infinitely easier: https://github.com/tek/splain https://github.com/tek/splain
- alextheparrot 9y agoWow going to plug this into a project and try it out tonight, might be worth adding as a default plugin to projects - looks good on the surface.
- briankelly 9y agoFair enough but I still think avoiding those libraries is very doable. Personally I used play-json without the rest of the play framework and it is robust and easy to grok.
- dominotw 9y agoOh man I had the misfortune of starting scala with a framework( akka http) that used magnet pattern. Turned me off from scala forever till I rediscovered it again.
- threeseed 9y agoI am very much in the minority but I can't stand most of Akka. It's overly engineered with too much clever magic and hence is very reminiscent of frameworks like J2EE Spring which is why people left Java to begin with.
- deleted 9y ago[deleted]
- vijaykiran 9y agoFrom my non-substantial experience in Clojure and Scala, I'd say that Clojure is simpler and faster to learn and get productive quickly than Scala. Scala has lot more syntax and concepts that you need to grok compared to simplicity of Clojure. I'm curious why you say Clojure has a steep learning curve.
- threeseed 9y agoClojure has a steep learning curve because it's purely functional. Most programmers grow up with learning OOP and so throwing all of that out and asking you brain to do everything in reverse is challenging. I know having worked with a dozen J2EE developers in their transition to Clojure. It took at least 3 months to just be productive. Scala for many people is just Java with a sprinkling of functional and they never really bother to learn the internals or the more complex areas like generic programming e.g. Shapeless/Cats.
- deleted 9y ago[deleted]
- jrs95 9y agoIMO it's just the syntax that comes across as really bizarre. Scala is much more complex than Clojure aside from the initial hurdle of getting used to that syntax. Personally I think it's less about FP vs OOP -- even if the OO parts of Scala are familiar, you're going to encounter FP code in Scala, and in general there is a lot more to learn with Scala as a language just to be able to read other people's code effectively.
- dustingetz 9y agoClojure has the easiest learning curve I've ever experienced, it took 3 days to bring my co-founder (a Scala dev) up to speed. I am also a former scala dev, I flatMapped that shit, etc. That Scala coolaid tasted far better going down as a starry eyed 20-something than it did on the way back up ... Scala's own source code is incomprehensible, let alone the emergent monstrosities built by well meaning humans that aren't in the top 1000 scala experts on the planet... Scala, fundamentally, simply doesn't make any sense at all, it was a bad idea, you can't fuse OOP and FP without violent and polarized flamewars and fracturing the community into incompatible sects. The experiment failed.
- dsabanin 9y agoI think what has failed is in fact Clojure's experiment of doing FP without a type system, now that they have to bolt it on with runtime type checking. OOP + FP is actually doing quite well, look at Swift, ReasonML (essentially OCaml, which is also doing fine by itself).
- grzm 9y ago> "now that they have to bolt it on with runtime type checking." I think that's definitely in the eye of the beholder. The overwhelming opinion I've heard from those in the community is that they greatly prefer having the option, but wouldn't want it required. And that's exactly what spec provides. The language isn't perfect (and honestly, what language is, for every purpose?) but calling it a failure is quite hyperbolic.
- virtualwhys 9y ago> but calling it a failure is quite hyperbolic. as is claiming that Scala is a failure. If adoption and widespread use across industries (big data, hardware, server, web, etc.) is any indicator of success, Scala is just that. The reality is that both languages are excellent; if you work in either for the day job you're fortunate -- there are far worse languages out there.
- 9y ago