3 ms·
Thanks for the comment! I wish this site let initial posts be more than 2000 characters so I could have gone into more detail. The main reason I am hesitant to
by Senkwich 12y ago
Thanks for the comment! I wish this site let initial posts be more than 2000 characters so I could have gone into more detail.
The main reason I am hesitant to work with Scala/SBT is because I've been using Docker to package/deploy a lot of the web applications I've written. Since Docker is a one-or-nothing for each line you execute, I am getting either all of the dependencies installed at once (which takes awhile the first time) or - if something fails - I get none of them. The caching that sbt offers is basically thrown out, which is really frustrating.
There's that, but I also just don't like how much weight there seems to be with Scala because of all of the large jars I have to download to do anything. At least, that's what it feels like for me.
So, I'm not sure what specific language you would recommend. You indicated that Scala/Clojure aren't too bad and offer repls to start playing, but how hard are they to really set up for a decent-sized project? One team that I'm working with has used Clojure for DSL-related work, but mostly use Java for their main application.
Haskell is the language that I've been reading about recently that seems to have more "meat" available each year (from Hackage), which is encouraging. Everyone (including yourself!) claims that it is a beautiful language, and quite a few believe that learning Haskell - and I mean really learning it - has redefined how they approach software development. That kind of change is what I'm hoping to discover if I delve into a functional language in a big way.
I'd forgotten that I had used DrRacket in academia at one point, but not enough to learn much of it. What exactly makes SICP a classic to you?
As for other languages that are beginning to exude some functional... functionality, I've noticed that (with Java 8 and Ruby), but I'm afraid that I'm not really grasping the strengths of said features. I'm trying to jump into a more functional language to really understand why they can be good and hopefully take away something really meaningful.
Thanks for the links! I'll check them out later today!