Live data from Hacker News

Functional Programming Principles in Scala starts today

class.coursera.org

41–50 of 57 posts

Re: Functional Programming Principles in Scala starts today

#41

Curious about something - if you had to do a new project from scratch today on top of the JVM, which language would you choose: clojure, scala, jruby (or anything else). I ask because my brain really cant absorb too many languages, and I want to make some kind of pseudo-optimal choice. I'm not just talking about some shootout here, but about the the next 5 years outlook.

>>I ask because my brain really cant absorb too many languages, and I want to make some kind of pseudo-optimal choice

Am in the same boat. I moved to SF permanently 2 months back, after 15+ years in the east coast. Decided to pick 1 language, immerse myself in it deeply, & then start the interview circuit. The opposite approach would be to pick a bunch of languages ( ruby, python, jquery/coffeescript etc. ) and get a smattering of best practices in everything without knowing anything too deeply. Both approaches have their merit. In SF, I recommend the latter approach - you will find jobs almost instantly if you do that. But still, given my proclivity ( I would rather know everything about 1 thing than something about everything) I chose the former approach. I picked Scala, read every single chapter of Odersky's book, & subjected myself to 19 total interviews at 2 multibillion$ companies using Scala exclusively for a "new project built from scratch".

I got offers at both. Now am debating which one to join.

tl;dr Scala is that pseudo-optimal choice you are looking to make. In SF there are a few very-nice Scala jobs with 6-figure salaries & tons of RSU's thrown in...but only if you can hack it. The questions you will be asked in the interview are definitely esoteric & very academic ( difference between reader monad and writer monad, reverse a list without mutation using a foldLeft, kruskal's algorithm in scala, merging graphs with common edges where each edge is a tuple, etc. ) Its not web apps, its not "software engineering", and its not everybody's cup of tea. But if you like academic CS, Scala will not disappoint you.

Re: Functional Programming Principles in Scala starts today

#42
post #28
post #26

I am kind of discouraged by following post by Guido on scala : http://neopythonic.blogspot.in/2008/11/scala.html?m=1 . but perhaps this course would be sufficiently generic to not get bogged down by scala's peculiarities...

That was interesting, thank you for linking to it. At first he seemed to be reacting more to Odersky's book than to the language. I wonder if he had first opened "Scala For The Impatient" how his reaction would be different. Then he takes the odd tack of complaining about arcana in the Scala typesystem, and then suggests Haskell as a solution. I get the impression that his love of dynamic typing had his mind made up…

"Then he takes the odd tack of complaining about arcana in the Scala typesystem, and then suggests Haskell as a solution."

What's odd about it? He seems to be straightforwardly claiming that Haskell has a less confusing type system than Scala. I don't know whether that's true or false, but certainly don't see anything odd about it.

Re: Functional Programming Principles in Scala starts today

#43
post #24

The "Scala Worksheet" feature of the Scala IDE plugin sounds pretty nice. Apparently it's a multi-line REPL, where changes automatically get compiled & evaluated upon save. I'm having some trouble figuring out how to get it installed in my Eclipse, though. I already had an older version of Scala IDE installed, and apparently this is a fairly new feature. I tried the latest milestone, which is supposed to have it, but…

what do you think of "Scala IDE" vs. other JVM-friendly IDE's with Scala support (like IntelliJ)

Re: Functional Programming Principles in Scala starts today

#44
post #26

I am kind of discouraged by following post by Guido on scala : http://neopythonic.blogspot.in/2008/11/scala.html?m=1 . but perhaps this course would be sufficiently generic to not get bogged down by scala's peculiarities...

Don't be. He's basically thinking out loud about two languages he knows very little about. It's an entirely content-free post, but because he's famous there's evidently a danger that people might take it seriously.

The fact that he clearly knows so little of Haskell is what's most telling - you shouldn't be taken seriously as a language critic if you don't realize that Haskell also has all of those scary things he lists from the Scala table of contents, with the exception of variance annotations (since it's not OO).

Re: Functional Programming Principles in Scala starts today

#45
post #18

Some of the Coursera courses rock. In March I also attended the NLP course. Another course on compilers from Stanford is coming up.

I have a backlog of courses on Coursera. Right now it's this one, the NLP course and Andrew Ng's ML course. I have a project in mind that would benefit greatly from all three. I've started putting it together in small pieces but ML and NLP are tough topics to learn without some sort of instruction. I have a pretty good grasp of Scala but I learned in sort of an ad-hoc fashion and I'm looking forward to learning what…

Andrew Ng's course ideally excellent, he's a very good lecturer.

I'm liking this course too, it's really about functional programming more than Scala. He says in the first lecture that the curriculum is mostly from a well known book on scheme, just with the languages swapped out.

Re: Functional Programming Principles in Scala starts today

#46
I enrolled and have watched the first few videos. So far, I really like Martin's tidy scientific approach to functional programming.

To be transparent I had intended to just take part of the course to get a taste because I am in one other class now and I have a total of three starting in the next few weeks. A combination of Clojure, Ruby, and Java more than suffice to get my work done, but I will probably stick with this class and drop other classes instead.

Re: Functional Programming Principles in Scala starts today

#47
post #41

Curious about something - if you had to do a new project from scratch today on top of the JVM, which language would you choose: clojure, scala, jruby (or anything else). I ask because my brain really cant absorb too many languages, and I want to make some kind of pseudo-optimal choice. I'm not just talking about some shootout here, but about the the next 5 years outlook.

>>I ask because my brain really cant absorb too many languages, and I want to make some kind of pseudo-optimal choice Am in the same boat. I moved to SF permanently 2 months back, after 15+ years in the east coast. Decided to pick 1 language, immerse myself in it deeply, & then start the interview circuit. The opposite approach would be to pick a bunch of languages ( ruby, python, jquery/coffeescript etc. ) and get a…

I wonder why you did not choose to go the Clojure or Jruby (assuming you are not a Ruby guy) route ?

I am not in the valley, but it may be that you picked up on some buzz/conversations in general that lean towards scala. It is quite puzzling since Indeed.com's trends shows a massive lean towards Clojure vs Scala.

http://www.indeed.com/jobtrends?q=scala%2C+clojure%2Cjruby&#...

On an absolute term, Scala still leads the pack (http://www.indeed.com/jobanalytics/jobtrends?q=scala%2C+cloj...)

Re: Functional Programming Principles in Scala starts today

#48

Earlier quoted context omitted.

We moved node.js to Scala and play for our startup. I've programmed in grails (groovy) professionally and don't recommend it. I've heard good this about clojure but you either are a lisp fan or you aren't. As such, I don't think closure is the next big thing. I am not a fan of the required cognitive overhead that scala takes to get started -- reading someone else's code reminds me a lot of C++ and the tooling still n…

I want it to be Scala so much as well, I don't want to start learning Go. (Although I heard great things about it, just after learning Scala, I don't want to learn a new language for a few years now)

Outside of the JVM, and for consumer apps, I am starting to think node.js is going to be the winner. It's not there yet. However, as more and more pages go to client-side apps and significant mobile presences, node is building a good enough ecosystem. Working in a single language is nice, though I think the callback system is clumsy. (That's what async or q is for. though I prefer Scala's actor model)

It wasn't right for us on this project, but I can definitely see going back to it for other projects.

Re: Functional Programming Principles in Scala starts today

#49
post #24

The "Scala Worksheet" feature of the Scala IDE plugin sounds pretty nice. Apparently it's a multi-line REPL, where changes automatically get compiled & evaluated upon save. I'm having some trouble figuring out how to get it installed in my Eclipse, though. I already had an older version of Scala IDE installed, and apparently this is a fairly new feature. I tried the latest milestone, which is supposed to have it, but…

Easiest way is to just download the eclipse+scala ide all in one bundle from typesafe : http://typesafe.com/stack/scala_ide_download

Re: Functional Programming Principles in Scala starts today

#50
post #37

Earlier quoted context omitted.

Unfortunately the Scala IDE doesn't yet work with Eclipse Juno. Eclipse made a breaking API change. It's a shame they can't provide better backward compatibility; every new Eclipse release seems to break a lot of plugins. https://github.com/scala-ide/scala-ide/pull/145

I managed to install on Juno. I tried the following and all worked: http://download.scala-ide.org/ecosystem/dev-milestone-2.9/si... (includes both IDE and the worksheet, which I wouldn't give up on) Also the specific Juno one: http://download.scala-ide.org/releases-juno-29/milestone/sit... but it doesn't have the worksheet feature both worked for me on the latest Juno release p.s. I did have some issues, and uninstal…

Actually the first link didn't work for me on Juno (because of jdt dependency issues). The following update sites worked:

Scala IDE: http://download.scala-ide.org/nightly-update-juno-master-29x Worksheet: http://download.scala-ide.org/nightly-build-worksheet-scalai...

Post reply on HN