- About Scala
- In the Enterprise
- Scala Community
- Language Research
- In the Press
- The Scala Team
- Scala's Prehistory
- Contact Us
- Learning Scala
- Tour of Scala
- Scala API
- Setup & Getting Started
- Programming Guides
- Other Guides
- Code Examples
- Scala Developers
How to get people to adopt Scala
This seems to be the place to discuss how Scala can be made more
appealing to the enterprise. Scala Days today had a discussion on this
that I feel did not adequately address the issue. The panelists
addressed plenty of peripheral issues, but I don't think they touched
upon the crux of the issue.
First, let me state that I am a big fan of Scala. It is a thing of
beauty. It has many features that I am able to appreciate because I
have some background in programming language theory. The papers on it
make fascinating weekend reading. The trouble is that, while it is a
better language than Java, making our argument for it in terms of
language features is not an effective way to go about it. Most people
just don't care.
My opinion is that Scala needs a killer application, something that is
so compelling that developers simply cannot go without using it.
Consider the following popular languages.
* Objective-C is popular, because if a developer writes an app in it,
it can go into the Apple App Store and make lots of money.
* C was basically a scripting language for the Unix operating system.
* Java promised write-once-run-anywhere. This is certainly why my
employer decided to use it 9 years ago.
I don't think a killer feature or application exists right now though
I can foresee that Scala might be the language of choice for parallel
programming. So I would like to throw this out to the community for
ideas. The magnitude of this application has to be as large as, say,
the MapReduce framework, which is controversial in some circles but
is nonetheless a compelling, killer feature.
On a side note, I do not accept that developers who use Scala are
smarter than other developers. Yes, spending your time learning new
languages like Scala is one way to use your time. Another way to spend
your time, for example, is submitting patches to the Linux kernel or
writing an application server, both things that may involve using an
Hope this generates some thoughtful discussion!