`
13146489
  • 浏览: 251516 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

选择scala A Business Case for New Languages

阅读更多
原文地址:http://www.artima.com/scalazine/articles/a_business_case_for_new_languages.html
Scalazine
A Business Case for New Languages
The Benefits of Adopting Scala over Java
by Dianne Marsh
April 15, 2011
ADVERTISEMENT

Summary
Unsure about when to adopt a new technology? Do you think your old technology is "safer"? Maybe ... or perhaps sticking with it offers risks of its own. This article discusses some of the benefits of adopting Scala rather than staying with Java.
At SRT Solutions, we promote the use of new technologies and languages with many of our customers. One question that business decision makers often ask is, "Why should my developers learn and use a new technology? We have a language that works. They all know it, and we're delivering on that platform. Why waste time and money having them learn a new language?"

It's true. You do have a language that works, one that you know and are comfortable with. Why not keep using it?

Let's make some analogies with automotive manufacturing. I am from Michigan, after all!

Java was first introduced over fifteen years ago. Many applications are still built using these languages. They're shiny, new applications. But they are held back by decades-old decisions. The styling is a bit outdated, as is the way that you interact with them.

Automotive manufacturers could choose to build cars using decades-old engines and transmissions, cigarette lighters and other things that seemed important in the past. But, much like your software program, the car would be shiny and new, but with 90's styling and (worse yet) bad fuel efficiencies. To follow our analogy a bit further, we would also restrict them to the tools that they could buy in the 90's, allowing for updates only where the new tools would also work on the old systems.

The automotive manufacturers don't build cars like that, and we shouldn't build software with decades-old programming languages either. Innovations that didn't worry about backward compatibility have given us hybrids as well as electric-only cars. We're seeing fuel efficiencies that were claimed impossible ten years ago. And manufacturers are using tools for building cars that allow them to get the cars to market faster, and less expensively than they could in the past.

That same magnitude of innovation is available in software. By choosing a modern programming language, like Scala, your developers can deliver your application sooner and at less cost. Concise languages like Scala allow programmers to focus on the core logic, leaving out the boilerplate. Less code makes the intent of the programmer more obvious, and the resulting code is easier to understand. Clearer, cleaner code is easier to debug, and makes it easier to avoid errors in the first place.

Combining Scala with modern testing tools, like ScalaTest, provides more clarity around what the program does, reducing the likelihood for discovering problems in production. The language runs on a familiar platform (the Java Virtual Machine), much like the cars of today run on our highway system.

If you're worried about your existing investment in Java, don't. Scala and Java can co-exist. You can call your existing Java libraries from Scala, and the new Scala that you write can call the new code that you're going to write in Scala.

But wait, what about Java 7? Yes, Java 7 is due to release this year. But Scala already provides most of what will be provided in Java 7 along with many other enhancements. There's no reason to wait. Choose Scala now, and view Java 7 as a maintenance release for code already written.

Another concern, often raised by the business folks, is about the development team and their ability to learn a new language. If you have a self-motivated team, they're probably already excited about learning a new language. And, while they're transitioning, they will be able to write Java-like code using Scala. So, let's move on and write new code in Scala and reap the benefits of writing less code and delivering more software.

Share your opinion

Have a question or opinion about using Scala in your company? Discuss this article in the Articles Forum topic, A Business Case for New Languages.

Resources

Scala can be found at:
http://www.scala-lang.org/

ScalaTest can be found at:
http://www.scalatest.org/

SRT Solutions can be found at:
http://www.srtsolutions.com/

About the author

Dianne Marsh is co-founder of SRT Solutions, an Ann Arbor, Michigan custom software development firm that specializes in using newer technologies to deliver software effectively, while writing less code. Dianne is also active in CodeMash and various Java user groups. She earned her Master of Science degree in computer science from Michigan Technological University.
分享到:
评论

相关推荐

    2018 Scala for Java Developers: A Practical Primer

    Learn Scala is split into four parts: a tour of Scala, a comparison between Java and Scala, Scala-specific features and functional programming idioms, and finally a discussion about adopting Scala in...

    Scala-IDE(for Eclipse Juno Scala 2.9)

    总的来说,Scala IDE for Eclipse Juno Scala 2.9是为Scala开发者量身定制的一个强大工具,它结合了Eclipse的优秀特性与Scala语言的独特优势,使得开发过程更为顺畅。无论是初学者还是经验丰富的程序员,都能从中...

    Scala and Spark for Big Data Analytics.pdf

    (OOP) paradigm provides a whole new layer of abstraction. In short, this chapter discusses some of the greatest strengths of OOP languages: discoverability, modularity, and extensibility. In ...

    Scala and Spark for Big Data Analytics

    Scala and Spark for Big Data Analytics by Md. Rezaul Karim English | 25 July 2017 | ISBN: 1785280848 | ASIN: B072J4L8FQ | 898 Pages | AZW3 | 20.56 MB Harness the power of Scala to program Spark and ...

    scala for the impatient

    Scala is a modern programming language for the Java Virtual Machine (JVM) that combines the best features of object-oriented and functional programming languages. Using Scala, you can write programs ...

    Scala for the Impatient

    本书《Scala for the Impatient》是为那些对快速学习Scala编程感兴趣但又不愿意阅读长篇大论的读者所写的。作者Cay S. Horstmann假设读者已经有了Java、C#或C++等语言的编程背景,因此不会在变量、循环或类等基础...

    scala for data science

    ### Scala for Data Science #### 一、概述 《Scala for Data Science》是一本专注于使用Scala进行数据科学项目开发的专业书籍。本书由Pascal Bugnion撰写,并于2016年由Packt Publishing出版。该书旨在帮助读者...

    scala-2.11.8.rar

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个"scala-2.11.8.rar"压缩包包含了Scala语言的2.11.8版本的源代码,这对于理解Scala的工作原理、学习高级编程技巧以及进行自定义扩展或...

    Scala for Machine Learning

    **Scala for Machine Learning** Scala是一种强大的、多范式的编程语言,尤其在大数据处理和机器学习领域,它已经逐渐成为首选工具之一。这个标题暗示了本书将深入探讨如何利用Scala的特性来构建高效、可靠的机器...

    scala语言for循环中的模式匹配

    Scala 语言 for 循环中的模式匹配 Scala 语言中的 for 循环提供了强大的模式匹配功能,允许开发者在迭代过程中对数据进行模式匹配和过滤。本文将详细介绍 Scala 语言 for 循环中的六种模式匹配方式:变量模式匹配、...

    scala for the impatient(2017,完全清晰打印版,无水印)

    Scala embraces the functional programming style without abandoning object orienta- tion, giving you an incremental learning path to a new paradigm. The Scala in- terpreter lets you run quick ...

    Functional Programming in Scala

    Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced ...

    Scala for Data Science

    数据科学经典入门教程Scala for Data Science,大数据基础

    scala-2.12.1 for Linux

    标题“scala-2.12.1 for Linux”表明我们讨论的是Scala的特定版本2.12.1,这个版本是为Linux操作系统设计的。Scala的版本号通常遵循主版本号.次要版本号.修订版本号的格式,这里的2.12.1意味着这是一个稳定版本,...

    scala for windows

    在下载并运行此MSI文件后,用户将被引导通过一系列步骤来安装Scala SDK,包括选择安装路径、接受许可协议等。 Scala的版本号如2.11.x表示的是主版本号和次要版本号。在这里,2.11意味着这是Scala的第11个次要版本。...

    Mastering Play Framework for Scala

    Mastering Play Framework for Scala

    Scala for the Impatient 完整版带书签

    ### Scala for the Impatient:快速学习Scala的指南 #### 一、书籍简介 《Scala for the Impatient》是一本由Cay S. Horstmann所著的关于Scala编程语言的入门书籍,它被誉为是快速学习Scala的最佳选择之一,并且...

    scala-2.11.0-M8 for linux

    scala 2.11.0 M8 for linux。 Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and...

Global site tag (gtag.js) - Google Analytics