This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-06-13
Channels
- # beginners (36)
- # boot (1)
- # cider (4)
- # cljsrn (2)
- # clojure (137)
- # clojure-brasil (3)
- # clojure-czech (3)
- # clojure-italy (17)
- # clojure-nl (8)
- # clojure-spec (7)
- # clojure-uk (153)
- # clojurescript (84)
- # data-science (2)
- # datascript (13)
- # datomic (30)
- # editors (64)
- # emacs (22)
- # events (6)
- # figwheel (26)
- # fulcro (7)
- # hoplon (5)
- # jobs (5)
- # jobs-discuss (57)
- # keechma (3)
- # leiningen (4)
- # luminus (1)
- # midje (2)
- # off-topic (26)
- # portkey (18)
- # re-frame (4)
- # reagent (10)
- # ring-swagger (3)
- # shadow-cljs (135)
- # spacemacs (5)
- # sql (14)
- # tools-deps (125)
how was the decision made? to switch from scala to clojure
So basically this is a greenfield project, and we had a Gopher, a Haskeller, and a "Just not Python I'm sick of writing Python"-guy. I'm currently the only one on the backend for the project so ultimately I could pick what we went with but I was trying to find a way to not play favorites or irritate anyone so I started with the compromise of using Scala.
But that meant I had to go learn Scala while starting to build out this API. Ultimately it came down to "I'm sick of scala already, why the hell did they invent implicits, and why does everyone wildcard import everything?"
I initially figured "oh I can just port over my haskell knowledge and Scala will be just an ugly haskell." I was wrong.
And we're getting a new CTO who is cool with more esoteric languages because he is of the (I believe correct) opinion that it won't make hiring harder, and in fact can even help since there are more devs who want to work in [haskell|clojure|erlang] than there are jobs for them.
while there are definitely plenty of people who are interested in haskell/clojure/etc jobs, it can be tough finding people with professional experience in those languages
I donāt think thatās true. Every time weāre tried hiring Clojure devs weāve been impressed by the number of experienced folks who respond.
Of course we support fully remote folks so that helps.
which makes having a proper onboarding flow and training much more important
Absolutely, but people language switch all the time anyways. I don't see clojure being particularly difficult to learn (especially if you already have the basics of FP from some other experience)
While I was stubbing my toes on all of scala's language features I went and chatted with my friend who's really deep in to scala and was basically like "Am I getting dumber as I get older or is scala way harder to learn than haskell or clojure?" and he basically agreed that the number of features and lack of a super principled approach makes it substantially harder to get up to speed.
Yeah, my exposure to Scala during the 2.7/2.8 cycles (with a couple of brief revisits during the 2.10 cycle) left me mostly frustrated with how complex the language (and tooling) is. And, yeah, implicits are evil.
@seancorfield Iāve wondered if implicits are somewhat like dynamic vars. Do you have thoughts on that?
@slipset I don't see the similarity, to be honest. With dynamic variables, you are using them explicitly and you can easily search for uses of binding
. Scala implicits are... implicit ...so it can be very difficult to spot that they are in play, and their behavior can be very surprising...
Like way down the call stack you suddenly have access to the database without explicitly passing it as a param.
Dynamic variables are still explicit in the code -- you don't magically get access to them without requiring their namespace and directly referencing them. Sure, their contents might change, but you know you're using them.
I ran into a couple instances of "Wait.... this function worked in this file.... but not in this other file...." An implicit had been imported via the import x.y._
convention
I worked on Scala micro-services for one role. Just not the language for me, really feels messy and I don't see many people actually using it in an FP style - it's just Java with a different syntax and more problems like the mentioned implicits.
@the2bears Well, to be fair, Scala is primarily marketed as a "better Java" to get existing Java shops to adopt it -- and for a while (maybe even still?) there were recommended subsets of Scala for initial adoption by Java developers. There is (or was?) a fairly vocal minority community that advocates fairly full-on FP-style Scala (the ScalaZ folks, for example) but at that point I think I'd rather be writing Haskell...
https://www.scala-lang.org/old/node/8610 and https://www.scala-lang.org/old/node/9873
Writing Haskell in 2018 is really nice actually š
Also, if you need to stay on the JVM, thereās eta: https://eta-lang.org/
A lot of the Eta site won't render in Microsoft Edge or IE11... I couldn't find a simple guide to show how to write just a small library in Eta and use it from another JVM language (if someone has a URL for such a guide, I'd be interested).
"Avoid success at all costs" -- Eta's "Basics" for Java Interop says: You must have a basic understanding of sequenceables/monads to understand the rest of the section.
And Haskell folks wonder why no one wants to learn their language? š
> And Haskell folks wonder why no one wants to learn their language? More to the point, thatās a pretty sweeping generalization to make both about āHaskell folksā as well as no one wanting to learn the languageā¦the Clojure community certainly has a lot of issues with good documentation, but I think it would be pretty uncharitable to then make such a statement about Clojure
as it stands Iāve found less and less reason to hang out and communicate on the Clojure reddit or slack because Iāve generally felt like any comments that donāt toe the party line--especially when it comes to talking about stuff like static typing or other ideas prominent in Haskell-land--arenāt given much of a listen. Itās really ironic to me because the reason I found Haskell in the first place was because of Clojure, and Haskell and Clojure share a ton of DNA. I find it incredibly disappointing
sorry, just realized I was in #jobs-discuss and not #off-topic or #other-languages š
will shut up now
@ddellacosta actually thank you for your comment, I totally agree with it, and I share the feeling about the general sentiment about Haskell in the air. I do embrace both Clojure and Haskell, and totally cannot see why there should be a dichotomy or friction between the communities. Both languages have their space.
Scala has its unique strengths as well!
Might be, Iām not knowledgeable enough about it to be able to make comments š
Sorry, I should have put a smiley face on that /cc @ddellacosta -- anyone who knows me also knows that I've had a love/hate relationship with Haskell effectively since it appeared -- it was the culmination of work that many of us in academia in the 80's and early had all been working on in various ways. It is frustrating that many parts of Haskell's overall community seem to sabotage any of it's potential for popularity.
(my PhD work was on the design and implementation of functional programming languages and, like most researchers prior to Haskell, I created "yet another FP language" for my university, because we had not yet formed a common lingua franca for such work!)
There are some good efforts to teach Typed FP and Haskell in particular: http://haskellbook.com/ Tooling is still rather poor and could be much improved.
Yes, I admire Chris's approach with that (extremely) comprehensive book.
> It is frustrating that many parts of Haskellās overall community seem to sabotage any of itās potential for popularity. ā¦just like itās frustrating that many members of the Clojure community are unwilling to have nuanced and good-faith conversations about topics like static typing and other prominent features of Haskell ĀÆ\(ć)/ĀÆ
and this is exactly why I donāt care to talk about it--you couldnāt respond without slipping in a knock on the community. Anyways, Iāll stop there
@seancorfield chrisās and julieās
@ddellacosta @nilrecurring that sadly doesnāt seem to be the prevalent attitude in either of the communities ā¦
I have had a number of discussions on #haskell on freenode and on reddit where folks have commented on good and bad aspects of Clojure, as they see them--and even address good points Rich Hickey has made about problems with static typing. There is some ādynamic typing is garbageā dismissiveness to be sure, but in general I find people in that community more open to nuanced discussion
the second comment here is case in point. Note that the first comment, while dismissive, is more a reaction to Richās attitude--which I think is fair to characterize as uncharitable toward static typing--vs. actually talking shit about Clojure. Whereas the second comment actually takes his comments very seriously and acknowledges problems. https://www.reddit.com/r/haskell/comments/763su7/in_which_rich_hickey_questions_the_value_of/
@ddellacosta +1, I share the same observations about the folks on r/haskell and in real-life
I do think that Richās talk would have been much better without the whole business of trying to prove static typing wrong (also I got the feeling he didnāt write enough production Haskell to properly appreciate the power of the type system, but Iād like to be proven wrong)
I agree on all points. I think spec would be far more compelling to me if he tried harder to consider how using a language like Haskell or OCaml would change the approach, vs. the kind of absolutist rhetoric he seems to favor. I think there is a very interesting comparison to be made there that would really highlight the pros and cons of both approaches--but you have to start by acknowledging that there are, in fact, pros and cons to both approaches
good discussion but feels like #other-languages ^_^
@dev964 youāre totally right! I tried to keep it to this thread at least
Chiming in just to say I agree with @ddellacosta and @nilrecurring āŗļø
@seancorfield agreed re:Scala, there's a place for it (a large place?) and to be fair most I see are fairly happy using it. But once I added FP to my way of thinking I wanted to get as far away from my Java days as I could! š