Is there something wrong with trying to encourage them to fix these problems and make Scala all the better for it?
Just yesterday I had an interview for a developer position with a hedge fund where the partners used M$ Excel, M$ SQL Server, M$ VBA macros and a bunch of Bloomberg terminals for the datafeed. I had prepared a presentation that advocated Scala as the primary toolset, Hadoop on the backend & a couple of DCOM hooks ( JIntegra ) that got data in & out of the Bloomberg & the rest of M$ world without getting all tangled up in M$ land.
Must say I didn't get very far. "Seems too cutting edge, no commercial support, we only have few 1000 rows so why not just use a SQL Server, what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala, we'll use Scala when an IB starts using Scala " were some of the concerns I got.
They haven't said no, but I have a feeling they'll end up hiring a dotNet veteran who'll happily code VBA macros till the end of time instead of taking a chance on a platform that'll genuinely change the nature of s/w development as we know it.
Its amazing to see people happily betting the farm on CDS defaults of XYZ company, where they stand to lose a couple hundred million dollars if the bet goes wrong. But the same folks won't bet on a promising new technology because its too new & has no commercial support, preferring instead to stick with 30 year old M$ tech due to comfort level. The chance of a loss here is several orders of magnitude lesser, yet they don't get it.
I've been rewriting most of my financial analytics code in Scala & its a genuine pleasure to see code sizes reduce 5-6 times...
What did you write your analytics code in before?! Most quants use R, Matlab, q/kdb+, OCaml, Python, etc. I can't imagine an analyst would ever use a language like Java or C++ for research.
M$ Excel, M$ SQL Server, M$ VBA macros
Also known as: what most of Wall Street uses. Are you sure you want a career in this industry?
what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala
All of which are legitimate concerns. Did you bother to address any of those?
As the others have mentioned, banks aren't looking for "fast" or even "productive"; they're looking for "reliable". Wall Street doesn't chase technology the same way Silicon Valley does. Remember the FourSquare outage (MongoDB) or the numerous issues with Twitter back in the day (Ruby on Rails)? Banks need to have better uptime than that.
So does the "M$" spelling...
Other than reporting ( you really can't compete with SAP/Crystal Reports on that front), solutions in Scala address the rest of your legitimate concerns using DCOM hooks to pre-existing C libraries & DLLs. Why reinvent the wheel ?
I don't see why you are getting so worked up about my "inexperienced rant". I simply described a real-life situation I encountered which I felt was funny viz. highly risk-taking alpha personalities getting hugely risk-averse when it comes to something quite innocent like language adoption.
obj.( (a, b) => a + "." + b)
obj.(_ + "." + _)
obj { (a,b) => a + "." + b }
Seems to me that's syntactic sugar. The flexibility of Scala is the source of my love/hate relationship with the language. That being said, it's still my favorite thing to code in when I get the opportunity...Red Hat & VMWare would seem to be the most obvious bidders for Typesafe as they both offer Java-based stacks with enterprise support that Scala & Akka would fit in very well with.
"Over the next versions, we plan to gradually merge Akka with scala.actors"
Martin Odersky - http://groups.google.com/group/scala-user/browse_thread/thre...
Is there a "killer app" for the Scala/Akka stack that I'm missing?
Many people don't like to maintain polyglots. Scala is expressive enough to write your frontend code in, but fast enough to also handle your backend code.
A world leading company which hasn't launched...
While we're at it, what web framework are you guys using in your Scala webapps? Lift? Wicket? Play?