Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Coming from CS and computational math background, I used mostly C++ for production and Python for prototyping and data analysis. I wanted to learn some new language for JVM, Clojure and Scala being the main (if not the only) contenders. I may learn Clojure anyway, but what tipped the scale to learning Scala first was wonderful Coursera course in functional programming by Martin Odersky, using Scala as a language, obviously.

A very short summary of my impressions from Scala: * It is beautiful, I felt the half-forgotten beauty of functional programming once again

* Scala worksheets (quick scratch to evaluate whole code snippets with immediate feedback) are awesome. I love them even more than REPL (Then again, I love IPython notebook more than Python REPL too)

* Scala seems a bit heavy in terms of number of concepts

* Scala can be terse and very expressive, but pretty verbose if you need it to be

* Compilation of large programs is slow and eats gobs of memory

* tail-call optimize everything



Are you aware of the follow-on course?

https://www.coursera.org/course/reactive


Yes, I am following that course, thank you! Although due to crunch at work I am not doing assignments for this one.


Might want to take a look at Nimrod (http://nimrod-lang.org/)

* (Mostly) Python-ic syntax (indentation-based)

* Type inferance

* OOP (but only when you want it)

* Good expressivity

* Compiles via c (FAST, easy linking with C libs, no runtime required, prodoces standalone binaries)

* Lean core (Not a "kitchen sink" language, but has good support for FP and OOP)


I'm rather excited about Nimrod, it actually looks a bit like Scala (pascal-style declarations). Scala has a lot of appeal for (most) organizations where the JVM is very widely used. I guess I tend to look at things from the position of a software engineer rather than from a teaching perspective. I'm really hoping that Nimrod gets a lot of traction (don't want it turning into a D).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: