

Functional Programming Principles in Scala starts today - pohl
https://class.coursera.org/progfun-2012-001?

======
pohl
So far I'm liking the way the course material is structured. In the first week
Martin is guiding you through call-by-name and call-by-value in the lamda
calculus, but without its syntactic peculiarities and without really
mentioning lamda calculus more than once in passing. I think this is a good
idea, because lambda seems to raise defense mechanisms in students who are
seeing it for the first time. Sneaky.

 _Edit: I found a place where the web-based quiz mechanism used by Coursera
gave me some troubles. In lecture 1.4 there is an exercise to implement
functions and(x,y) and or(x,y) but using neither || nor &&. While I was able
to compile and run functions that produce correct truth-tables in my Eclipse
environment, the web-based form appears to be fairly tempermental with what it
will accept. (Equivalent functions modulo only formatting differences made the
difference between "incorrect" and "correct".) I managed to proceed by asking
myself whether my function was as simple as possible: no newlines, simplest
possible expression, no superfluous characters such as {}_

------
eranation
One nice thing is that the instructor is Martin Odersky (who created the
language).

------
pohl
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 I don't see New --> Scala Worksheet when I try to create one.

Has anybody fought this dragon and won?

 _Edit: I have found my own answer. The trick was to use the following URL as
the "update site" when installing ScalaIDE. When you do, the "Scala Worksheet"
plugin will appear under the list of available software._

[http://download.scala-ide.org/ecosystem/dev-
milestone-2.9/si...](http://download.scala-ide.org/ecosystem/dev-
milestone-2.9/site/)

~~~
nradov
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>

~~~
eranation
I managed to install on Juno. I tried the following and all worked:
[http://download.scala-ide.org/ecosystem/dev-
milestone-2.9/si...](http://download.scala-ide.org/ecosystem/dev-
milestone-2.9/site/) (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...](http://download.scala-ide.org/releases-
juno-29/milestone/site)

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 uninstalling and reinstalling did the trick

~~~
zukhan
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...](http://download.scala-ide.org/nightly-build-worksheet-
scalaide21-29/site/)

------
dkhenry
This looks to be a really good class. I watched part of the first lecture
today and it really is more about functional programming then Scala.

~~~
jzawodn
Good to hear. I signed up a few days ago and expect to start tomorrow.

------
sandGorgon
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.

~~~
dxbydt
>>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.

~~~
sandGorgon
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&#...](http://www.indeed.com/jobtrends?q=scala%2C+clojure%2Cjruby&l=&relative=1)

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

------
mark_l_watson
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.

------
theo
For those in the DC area, the Scala DC meetup group is holding meetups to
watch these lectures and discuss the material over the next few weeks.

<http://www.meetup.com/dc-scala>

~~~
dkhenry
If anyone further North in Delaware wants to hold a meetup I have a group of
about 10 software engineers getting together to watch the assignments.

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

~~~
saryant
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 I imagine will be idiomatic Scala.

~~~
coopdog
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.

------
signa11
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...

~~~
pohl
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
before he even approached it.

~~~
wonderzombie
What does Haskell have to do with dynamic typing? It's about as statically
typed as they come. He's saying that if we really want a static typing system,
maybe Haskell's flexible and powerful type system is the right approach.

~~~
pohl
It doesn't have anything to do with it. I probably phrased it badly because I
was responding to two different paragraphs where Guido was talking about
different things. You would be better served following the link to what he
wrote and reading that directly.

~~~
wonderzombie
I did read it, actually. :) That is why I was puzzled; he suggests Haskell as
an alternative, and I thought that was a classy response, all things
considered.

------
qwertyz
It's a shame the videos don't have subtitles like in the crypto course.

~~~
modersky
Subtitles are being produced. They should be up in a day or two.

~~~
qwertyz
Oh, good to know. As non native english speaker they are of great help.

------
msie
Weird, aside from the first email in August I've had no email notification
that it would start today. The only way I knew about it was through HN.

~~~
brunov
I received an email yesterday and another one this morning.

------
pva
I am unable to submit from the command prompt on Windows (when in sbt). I
completed assignment 1.

I get the below error. > submit login password [error] Not a valid key: submit

What am I missing ?

------
Toshio
Why does your submission get to the front page with 2 points, while mine[1]
doesn't (mine also has 2 points and was submitted earlier)?

[1] <http://news.ycombinator.com/item?id=4537519>

~~~
lectrick
Are you interested in spreading knowledge, or are you interested in karma?

If the former, why do you give a shit?

~~~
lmm
Isn't the whole point of displaying your karma score the way this site does to
make you care about it?

I know it works on me. I don't write the best comments I could, I write the
ones I know will be upvoted.

~~~
exolab
Shame on you.

~~~
liberatus
It's ironic. This is exactly the behavior that the system seems to want to
avoid, but inevitably incentivizes.

So shame on him? I don't know. Major props for being honest.

One could argue you were subconsciously influenced toward posting a shaming
comment because of the karma incentive.

Of course, you may just be joking as well.

It's certainly funny either way.

~~~
exolab
I don't really care about Karma on this site (mine or other people's). If I
did I certainly would have checked this comment earlier ;)

If people post for Karma instead of for content, IMHO it is their problem. It
won't make the site much better, but it won't make it much worse, either.

"Shame on you" was my way of saying "who cares?".

