4 ms·
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 lang
by mynegation 13y ago
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
- TylerE 13y agoMight want to take a look at Nimrod (http://nimrod-lang.org/ 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)
- kvtrew76557 13y agoI'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).
- rz2k 13y agoAre you aware of the follow-on course? https://www.coursera.org/course/reactive https://www.coursera.org/course/reactive
- mynegation 13y agoYes, I am following that course, thank you! Although due to crunch at work I am not doing assignments for this one.