« Return to Thread: [scala] Risks of using Scala in a large application?

Re: [scala] Risks of using Scala in a large application?

by bearfeeder :: Rate this Message:

Reply to Author | View in Thread



On Tue, May 6, 2008 at 9:33 PM, Ashley Aitken <mrhatken@...> wrote:

Howdy All,

Scala seems to me, from my quick introduction, what Java may be like in 5+ years.

So using Scala can give one a competitive advantage.  However, there is often risk associated with such a decision.  As a result, I've just popped in to ask this question, which is mostly from a business risk angle, but this relates to technical issues regarding Java and Scala.

What are the risks of using Scala in a large Enterprise application?  Mostly I mean in relationship to compatibility with Java, interaction with Java libraries (will Scala limit this) and tools, Java interaction with Scala classes etc.

The low risk situation would be that Java and Scala are completely interchangeable, if I write something now in Scala it won't limit me and I could replace it with Java in the future if need be (e.g. if/when Java catches up and/or Scala doesn't catch on) without any trouble.

I blogged about some of these issues: http://blog.lostlake.org/index.php?/archives/73-For-all-you-know,-its-just-another-Java-library.html
 


Of course there are other risk: finding developers that are competent enough in Scala, IDE tooling for Scala, longevity of Scala, and any discussion of these would also be appreciated.

Finding developers is the single biggest risk factor.  There's a class of "Java Guys" who are staunchly anti-Scala.  In general, I would hire clear poliglots... people who thrive on using many different languages (personally, I like Ruby/Python developers who have had some Java in their background).  In my experience, these are the kind of people who thrive on Scala as Scala blends a bunch of different language concepts elegantly into a unified whole.  This is not the case with many of the Java bolt-ons (Generics, etc.)

I would not worry about the tooling issue.  Much of the existing tooling works very well: debuggers, build systems, deployment systems, etc.  Sitting on top of the JVM infrastructure is a very nice place to sit.

The IDE issue depends on your team.  I tend to hire people who are more productive in text editors than IDEs and have their personal choices (emacs, vi, etc.)  Going with an IDE, one also hitches ones horse to a the configuration baggage that the given IDE brings (i.e., mixing IntelliJ, Eclipse, and NetBeans in a single project is non-trivial.)

You will also likely see some announcements this week (in particular Saturday at the Scala lift off http://scalaliftoff.com ) about commitments different vendors have to supporting the Scala community.  The IDE vendors seem to have woken up to Scala in the last few months.  Vendors like ZeroTurnaround has put a fair amount of testing into JavaRebel to make sure it works as well with Scala as it does with Java.  The list is a growing one.

Thanks,

David

PS -- I started using Scala in November 2006.  The evolution of the language has primarily been one of addition and there have been very few places where things have broken and when they have, it's been at compile time and once I've changed my code to the new syntax, all has been fine.  Martin has publicly committed to avoid breaking changes to the language syntax in the future.  Between lift and the other code bases I maintain, I've got about 40,000 LoC of Scala code across various projects.  To date, I have been extremely happy (blown away actually) at the quality of Scala and the level of support, both on this list and from the Scala team, that I've received.  The Scala team, measured against any commercial ISV, ranks in the top percentile in terms of code quality and responsiveness of any ISV I've dealt with in my 30 years of professional software development.
 


I hope this sort of question is ok for this mailing list.

Cheers,
Ashley.

--
Ashley Aitken
04 1226-8159 (Mb)
08 9368-5505 (Ph)
Perth, Western Australia
Skype/iChat: MrHatken (GMT + 8hrs!)





--
Scala lift off unconference, May 10th 2008, San Francisco http://scalaliftoff.com
lift, the secure, simple, powerful web framework http://liftweb.net
Collaborative Task Management http://much4.us

 « Return to Thread: [scala] Risks of using Scala in a large application?