My company's technical advisory board has required us (the engineering
staff and management) to make a detailed evaluation of the suitability
of Scala (vs. Java, having settled on the JVM as the platform) for our
back-end services before we decide which language to use.
There are two fronts on which the case must be made, technical and
business. I think we (the existing advocates of Scala within the
engineering staff) can handle the technical side, but I would like help
making the business case.
In particular, there is a strong feeling that Scala is high-risk. There
is some concern that the language may be a "toy" (apparently in this
context that means one that people like to play with but which is not
suitable for commercial purposes; only one person claims this, and he
likes C...). A more common concern is that we will hamper our already
painfully slow hiring process. In general, the learning curve combined
with the perceived added difficulty to hire amount to obstacles to our
progress in the face of the very demanding few years of development we
now face.
The technical leadership and the engineers themselves are split on the
matter. The leadership has expressed the feeling that they would be a
lot more comfortable going with Scala and justifying that decision if
they had some case studies of Scala use in large-scale businesses.
Twitter's use is a big positive to them but, to contrast, WelthFront
(as a company that is presumed never to need the scaling up we already
know we must do) is not. They want more examples of big systems using
Scala.
Can people point me to businesses that are using Scala in
mission-critical, large-scale (10e5 users and up, e.g.),
architecturally complex architectures?
Other arguments that an engineering or technology VP or a CTO would
understand would also be welcome.
Randall Schulz
Hi,
My company's technical advisory board has required us (the engineering
staff and management) to make a detailed evaluation of the suitability
of Scala (vs. Java, having settled on the JVM as the platform) for our
back-end services before we decide which language to use.
There are two fronts on which the case must be made, technical and
business. I think we (the existing advocates of Scala within the
engineering staff) can handle the technical side, but I would like help
making the business case.
In particular, there is a strong feeling that Scala is high-risk. There
is some concern that the language may be a "toy" (apparently in this
context that means one that people like to play with but which is not
suitable for commercial purposes; only one person claims this, and he
likes C...).
A more common concern is that we will hamper our already
painfully slow hiring process. In general, the learning curve combined
with the perceived added difficulty to hire amount to obstacles to our
progress in the face of the very demanding few years of development we
now face.
The technical leadership and the engineers themselves are split on the
matter. The leadership has expressed the feeling that they would be a
lot more comfortable going with Scala and justifying that decision if
they had some case studies of Scala use in large-scale businesses.
Twitter's use is a big positive to them but, to contrast, WelthFront
(as a company that is presumed never to need the scaling up we already
know we must do) is not. They want more examples of big systems using
Scala.
Randall Schulz
i'll never understand that kind of concern. the difference between a failed project and a running project is the sum of a lot of things. the choice of language is NOT one of them. as long as you don't pick brainfuck, a completely outdated language (pre-OO) or a domain specific one for the wrong purpose (javascript for 3d rendering), you won't fail because of the language.
has anyone ever heard of a project that failed because the wrong language was chosen? i didn't. achieving such a failure is really, really hard.
>
> Can people point me to businesses that are using Scala in
> mission-critical, large-scale (10e5 users and up, e.g.),
> architecturally complex architectures?
take a random java project and claim it can be converted almost 1:1 into scala. since your claim is true, why isn't that a proof?
The main question is whether you will find your field of candidates whittled down because some great Java devs will have no wish to learn Scala. I think that this is a possibility, sure; but I suspect that these will be more than compensated for by developers who would specifically *not* consider a pure Java shop.
Thanks everyone for the replies, including the private ones.
This has been very helpful.
Randall Schulz
Hi, All,I'm with Randall - any developer who gets through our interview process at Box should be more than capable of becoming productive with Scala rather quickly. I believe the resistance faced by the pro-Scala camp is the perception that:1) The pool of great programmers interested in programming in Java is > 100x larger than the pool of great programmers interested in programming in Scala. This *isn't* a quantity vs. quality issue - we need to hire on a massive scale, and the people we hire need to become productive in whichever language we choose ASAP.
If you make the assumption that job supply is roughly in sync with job demand, and make the additional assumption that Scala appeals particularly to high-end programmers, then even today you should do considerably better than 1 great Scala dev per 100 great Java devs.
Martin -Relevant to this discussion would be percentage of job postings that remain unfilled after a specified time period (e.g. 3 months). If scala jobs are disproportionately hard to fill, then that is ammunition against Scala. If not, then that is an effective riposte to a common argument. Do you have or know of any figures for this?
After all, the growth rate might just be a side effect of old postings staying around because the job is still available (although that's unlikely).
Chris
From: martin....@epfl.ch
Date: Thu, 9 Jun 2011 11:51:11 +0200
Subject: Re: [scala-debate] Re: Help Reqd: Making the Case for Scala in Our EnterpriseOn Wed, Jun 8, 2011 at 7:28 PM, Peter White <pwh...@gmail.com> wrote:
Hi, All,I'm with Randall - any developer who gets through our interview process at Box should be more than capable of becoming productive with Scala rather quickly. I believe the resistance faced by the pro-Scala camp is the perception that:1) The pool of great programmers interested in programming in Java is > 100x larger than the pool of great programmers interested in programming in Scala. This *isn't* a quantity vs. quality issue - we need to hire on a massive scale, and the people we hire need to become productive in whichever language we choose ASAP.
http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+erlang%2C+f%23&l=
The statistics show two things:
1) Scala jobs are growing very fast, and at a steady rate. There's a clear hockey stick curve. This should address any concerns that this is a toy or a fad.
2) In absolute terms, Scala job ads amount to 0.6% of Java jobs ads in the US. In some other markets such as the UK that percentage is closer to 1%.
At current growth rates this would mean ~2.5% of the Java market in 2 years.
That's a low bar - we formed Typesafe with the aim of accelerating that growth rate.
If you make the assumption that job supply is roughly in sync with job demand, and make the additional assumption that Scala appeals particularly to high-end programmers, then even today you should do considerably better than 1 great Scala dev per 100 great Java devs.
Cheers
-- Martin
Any advice on how to best go looking for a Scala job is appreciated, too!
- Steven
PS:
My nationality is German, so US jobs seem to be problematic because of VISA stuff and all that. Nevertheless, I would like to work in the US, preferably Bay Area or NY. But I am pretty flexible in that respect, the most important criterium is the actual job.
for example, i did:
+ 3d engine (youtube, search for "hhexen jmonkey")
+ an online shop (like amazon, just a *little* smaller ;))
+ ftp applet
+ a starcraft bot
+ some more stuff
-------- Original-Nachricht --------
> Datum: Thu, 9 Jun 2011 13:37:25 +0200
> Von: Steven Obua <steve...@googlemail.com>
> An: scala-debate <scala-...@googlegroups.com>
> Betreff: [scala-debate] Looking for Scala Job
-------- Original-Nachricht --------
> Datum: Thu, 9 Jun 2011 14:35:52 +0200
> Von: Goddard Jiri <g0d...@googlemail.com>
> An: Dennis Haupt <h-s...@gmx.de>
> CC: Steven Obua <steve...@googlemail.com>, scala-...@googlegroups.com
> Betreff: Re: [scala-debate] Looking for Scala Job
> <http://www.dredwerkz.cz>code: https://github.com/g0dd4rd
I fully agree, this information is often missing, or not made prominent, which is a bit
surprising given that I look at these job offers from Internet, accessible worldwide.
Of course, I suppose that when not said otherwise, the job offer is not for telecommuting,
ie. it is for local job, but even this information is sometime missing from the job offer,
or you have to go elsewhere on the Web site to find it.
In the case of the job offer on this thread, I had to look attentively to find a location
(US, so not for me...).
Just offering my experience/opinion of foreigner (from non-French PoV) from somebody not
searching very actively, but wanting to find a cool job, preferably in the Scala world
(like lot of us (readers of the ML) not already there, I suppose).
Opportunities in France aren't so numerous, yet, so telecommuting is seductive for
somebody not wanting to expatriate with all the family... :-)
--
Philippe Lhoste
-- (near) Paris -- France
-- http://Phi.Lho.free.fr
-- -- -- -- -- -- -- -- -- -- -- -- -- --
We are still years away IMHO to seeing a nice population of entry-level Scala developers on the market, to address some of that it would be nice to see some schools replace Java with Scala in their curriculum (at least starting the process of fixing what Java hath broken ;-) ). At the entry and mid-levels I would think that you just have to work with the brightest minds you can find and train.
I plan to use Scala in my Programming Languages course this coming fall as a vehicle for talking about various programming language features. The students are mostly experienced with Java (some C and C++ also). While focusing on a single language in a course called “Programming Languages” may seem wrong, I like giving the students enough exposure with a particular language to get them comfortable with it. My experience with the course in the past is that if one just talks about language topics in isolation (not in the context of a single language) the students just don’t get the point.
I’m using Scala because
1) I like it.
2) It offers a rich collection of features in a nicely integrated package.
3) It’s extremely practical in the real world and I believe my students will appreciate that.
I think the last point is very important. My student audience will want to know, “can this help me get a job?” With Scala I feel like I can confidently say, “yes.” In fact I’d like to think having some Scala experience on their resume will set them apart from the Java minions that are out there. Alas the other faculty here mostly roll their eyes and tolerate me when I start talking about Scala. Ah well.
In any case there is definitely some Scala creeping into the college classroom. I’m doing it.
Peter
From: scala-...@googlegroups.com [mailto:scala-...@googlegroups.com] On Behalf Of Justin du coeur
Sent: Thursday, June 09, 2011 12:47
To: Jim Powers
Cc: scala-...@googlegroups.com
Subject: Re: [scala-debate] Re: Help Reqd: Making the Case for Scala in Our Enterprise
On Thu, Jun 9, 2011 at 9:47 AM, Jim Powers <j...@casapowers.com> wrote:
-- Francois ARMAND http://fanf42.blogspot.com http://www.normation.com
The "group at Box.net" (of which I am a member) is where we're trying to
decide whether to take on Scala or Java as our JVM language as our
back-end services language. When the topic addressed acquisition of
talent, my supervisor at Box, Peter White, joined in to describe our
hiring practices.
Randall Schulz
The bottom line from an executive's perspective is whether or not the
programming team can deliver the project on schedule, budget. In
addition, can they maintain the environment and enhance it with the
underlying programming base. There can be NO CONDITIONS under which
the engineering team comes back and says, "hey, we can't get our work
done, because the compiler or tools are screwing us up." Then the
question is who is going to fix this and how much will it cost? And,
then comes the search for a new engineering team!!
There are cases where Scala "won't work"[1] such as generating Java-style enums. Typically this only really matters if there is some Java code-base where you need to supply Java enum values. In the couple of cases where I've encountered this banging out a Java class to get me the enums I need is all it took to get over this hurdle. I'm sure that there are other cases (wacked-out overlaoded class constructors that expose disjoint functionality depending on what constructors are used [I've not encountered such a case, just theorizing], might be another case). But the point really is: if Scala is literally stopping you from moving forward and the greatest minds in the Scala universe cannot get you through this impediment, there still is always plain-old Java to get you back on your way.
enough - Scala can be picked up in ~1-2 months (including, of course,
"proper" Scala development + all esoteric stuff like type programming,
etc.
2. Many large enterprise customers will reject Scala today b/c "my
guys in Bangalore/Beijing" just finally started to produce decent Java
code. No way they are going to throw Scala on them in any foreseeable
future.
-----Original Message-----
From: scala-...@googlegroups.com [mailto:scala-...@googlegroups.com]
On Behalf Of Randall R Schulz
Sent: June-08-11 10:02 AM
To: scala-...@googlegroups.com
Subject: [scala-debate] Help Reqd: Making the Case for Scala in Our
Enterprise