关于Scala的前景 | |
近些年,基于JVM语言的发展风起云涌,Scala语言尤为抢眼。我们不妨从以下几个方面来介绍下Scala语言的发展前景: Scala语言的起源 Scala语言源自瑞士洛桑联邦理工学院,由奥德...
| |
近些年,基于JVM语言的发展风起云涌, Scala语言尤为抢眼。我们不妨从以下几个方面来介绍下Scala语言的发展前景: Scala语言的起源 Scala语言源自瑞士洛桑联邦理工学院,由奥德斯基教授2001年带领小组致力于Scala语言、标准库和编译器的开发。这里透露一个小花絮,奥德斯基教授创建Scala语言的一个主要原因是不满Java语言相对复杂的语法。 Scala语言的发展现状 Scala语言最直接的好处是兼容Java,这就意味着可以无缝使用所有Java的类库和框架。Scala程序会被编译成JVM可执行的字节码。Scala虽然是静态语言,但Scala支持函数式编程和类型推断(Type Inference),它的哲学是结合面向对象和面向过程并保证代码的简洁。 Scala语言在生产环境和公司的普及度非常高:
使用Scala的公司非常多,详情见Scala in the Enterprise列表。//如下英文部分 与此同时,Scala语言也有强大的社区作为后盾,Scala官方网站为不同的角色(初学者、有经验者、专家)提供了学习资源分享、邮件列表订阅、加入google groups、加入开放项目等方式,使得每个人都可以共享Scala的信息并将所学知识回馈到社区中去。 业界专家对Scala的评价 Java之父James Gosling在一个社区会议上,有人问James Gosling,除了Java,你还使用哪些构建在JVM上的语言? James回答:Scala Groovy创始人James Strachan于2009年James Strachan就在博客上写道,如果我早点看介绍Scala的那本书,就不会创立Groovy这门语言了(大家应该知道,Groovy也是门优秀的构建在JVM上的语言) Scala语言的优雅和简洁,大家可以通过官方网站的例子一一体会。 其他JVM语言的发展现状
Scala语言学习&&展望 Scala开发工具非常成熟,初学者可以轻松学习Scala
Scala语言的发展路线可以总结为两点: 第一,Scala语言旨在成为最为普及的JVM语言(这点已经做到),并不断完善语言特性加强语言的生产力。 第二,Scala语言会涉足其他非JVM平台,使得非Java程序员也可以体验Scala的优雅,比如Scala已经可以在.Net上运行。 相信Scala语言会在未来给我们不断的惊喜!
Scala in the Enterprise Scala is being used by many more organisations and steadily moving into mainstream business critical applications. Scala's use has grown by a factor of 10 over the last year and it has matured into a solid production language. Scala long term support both in research and commercial terms is now assured. EPFL will continue to fund programming language research that so often results in features for Scala and the Scala team recently won an ERC 5 year grant for 2.3 million Euros, nearly doubling the group size, to tackle the multi-core "Parallel Programming Challenge" using Scala as the basis. On the commercial front Scala Solutions, a well financed company, has been founded to provide essential commercial support service directly and through a world-wide network of Partners. This covers such things as Scala Training Courses, consulting, Scala development tools and Certified Builds for old versions of Scala.
The LinkedIn Web site was launched in 2003 and is now the largest professional networking site in the world with more than 65 million members, representing 200 countries and executives from every Fortune 500 company. Chris Conrad, Engineering Manager, a part of the Search, Network and Analytics team at LinkedIn presented Scala based Norbert at ScalaDays 2010. Chris works on the LinkedIn Social Graph represented by some 65+ million nodes, 680+ million edges and 250+ million request per day and he describes LinkedIns experiences with Scala here. In this interview by InfoQ Alejandro Crosa, Chris Conrad and Jay Kreps describe the overall architecture and how they benefit from Scala.
Électricité de France Trading
Électricité de France (EDF) is the largest French energy company. EDF Trading (EDFT) is the subsidiary of EDF that operates on the energy market: when the energy markets were liberalized, power became a tradable commodity, and it became possible to buy and sell future capacity just like other financial instruments. More in general, EDFT operates "to source, supply, transport, store, blend, and convert physical commodities across the wholesale energy markets". Over the past few years their development team, including Alex McGuire, and Lee Momtahan have replaced a substancial part of their 300,000 lines of Java code for energy derivatives trading and pricing with Scala code. EDFT has seen a significant increase in development productivity and much improved interfaces for their users, the Power traders. In an interview with Alex McGuire he says, that in this mission critical business application, Scala plays an important part in the implementation and is impressed by Scala. Alex, a mathematician and former options trader, has over 15 years of development experience creating financial trading applications. Alex has left EDFT and is now running his own company providing scala consulting to financial and trading organisations. Lee Momtahan says, "We're using Scala for real work in a business critical situation and there is a lot of money at stake if we get it wrong. There are risks, but we have had no problems [with Scala]. For me, a developer working at the coal face, the productivity improvements are massive." Lee presented at the Commercial Users of Functional Programming meeting, CUFP 2009 in Edinburgh, You can find a summary of his talk here, his slides here and a video of the actual presentation here.
Twitter provides an extremely popular real-time messaging service, which allows friends, family, and co-workers to stay in touch. Some 70 million people tweet worldwide. Alex Payne, API Lead at Twitter, gave a fascinating presentation at Web 2.0 Expo San Francisco, 01 April 2009 about why Twitter uses Scala. He explains why they like the language, how they have gained performance with it and the difficulties they encountered on the way. You may like to take a look at his presentation slides or read reports on the talk by: Kate Greene from Technology Review, Nicole Ferraro from Internet Evolution, or Cade Metz from The Register. Robey Pointer at Twitter has moved their main message queue from Ruby to Scala for improved performance. He explains the concepts behind the Twitter Kestrel project on his live journal and the more concise 1500 lines of Scala code can be seen as open source project here. Bill Venners from Artima, had the opportunity to talk to three of the Twitter developers, Steve Jenson, Alex Payne and Robey Pointer. They have created and upgraded one of the fastest growing social messaging services in the world. You can learn what they think of Scala, how they use it, and understand about some of the benefits they have gained from their move.
Novell
Novell recently announced Pulse, an exciting and much anticipated cloud-based, real-time collaboration platform for the enterprise. It provides a collaboration environment that is secure and draws on the best of instant messaging, document sharing, social connections, real-time co-editing and enterprise controls. At Pulses heart beats Lift 1.0, a Scala based WebFramework that has been used to provide all of the web services for the project. Daniel Spiewak,Developer and member of the "breakout" team that developed Pulse, talks about the project here. A very professional Pulse demo was given at Novell BrainShare 2010 or more can be learnt about the product and service on the Pulse web pages. The Guardian
On the 20th May the Guardian announced that their "Open Platform", an API to access the vast repository of Guardian media with over a million articles, video clips, photographs and audio tracks, was "open for business". With 36 million people making regular use of the repository, the Open Platform was created to service the rapidly growing demand and provide a high performance interface for media application developers. Over 2000 of them registered to use the API and 200 application products built to use it during the Beta evaluation phase. This exciting API was implemented in Scala using Lucene/Solr for media storage. Graham Tackley, the Web Platform Development Team Lead for the guardian.co.uk explains here, how they were able to cut indexing times from 20 hours to one and the presentation here describes the success they had moving from Java to Scala.
Xebia
Xebia, a highly successful international IT consultancy and project development organization, sees a bright future in Scala. With an annual turnover exceeding 20M$, Xebia now has an organisation of over 180 professionals focussed on Enterprise Java technology, Agile development methods and outsourcing services. They are often regarded as the defacto standard for Scrum and are seen as a leader in the Agile methodology. Guido Schoonheim, CTO talked at QCon London 2009 on how Xebia achieves "hyperperformance", 5 times the industry average, with Fully Distributed Scrum. Urs Peter, senior consultant at Xebia says: "More and more companies are looking for simple and concise solutions. Scala not only offers them an improvement in productivity but is also cost effective as companies can still use their existing middle-ware and infrastructure," and that "Scala enables developers to stay very close to the business logic and thus omit various meta blocks. This results in neatness and a structure that is easy to maintain."
Xerox
XMPie is a business unit of Xerox Corporation offering a full range of software solutions for variable-data publishing including the award-winning product PersonalEffect. The Xerox ICE project, used XMPie and Scala to improve the Xerox (UK) customer experience. The ICE project provides a full cross-media invitation experience for visitors to the Xerox UK showrooms. In an interview, Timothy Perrett, Technical Specialist for XMPie Europe, Middle East and Africa, the project leader, explains the background to the project, its benefits and his impressions of using Scala at Xerox.
FourSquare
Foursquare is a fast growing service that back in July 2009 both the Washington Post and Mashable were tipping as a potential "breakout hit" or "next Twitter". Foursquare provides a cross between a friend-finder, a social city-guide and a game that rewards you for doing interesting things. It aims to keep you up with the places your friends go, and encourage you to discover new places and explore your neighborhood. Ever more people are enjoying the discovery experience. With a rapidly growing base of hundreds of thousands of users Harry Heymann at Foursquare decided to move all the services to Scala/Lift based servers. Recently he announced to the Lift community that this high profile, heavy duty web server application had successfully ported to the Scala/Lift web framework. He explained that the conversion took a surprisingly short time, just 3 months. The Foursquare website, a mobile website (m.foursquare.com) and a simple(but growing!) REST api (api.foursquare.com) all now run on Lift. Harry says that they found Lift's view-first architecture well suited to interactive, AJAX-infused pages and an easy transition to make. He say of the Scala/Lift community, "they've built a really great framework, and I look forward to using it and seeing it grow for many years to come."
Sony
Sony Pictures Imageworks is a proven industry leader in the creation of award-winning character animation and is renowned for expertise in the highly specialized work of creating photo-real CG characters. Imageworks is also where Sony Pictures Animation has made its all-CG animated features. Recognizing the value of the Open Source Software products that they have used, are entering into the same spirit by releasing five of their own projects as Open Source. One of these, Scala Migrations, is a library that manages updates, rollbacks and changes to data base schemas. "The Scala Migrations library is written in Scala and makes use of the clean Scala language to write easy to understand migrations, which are also written in Scala. Scala Migrations provides a database abstraction layer that allows migrations to target any supported database vendor." The source code is available here.
Siemens
Siemens boosts productivity with ESME. On March 4, 2009, Siemens announced the availability of Enterprise Social Messaging Experiment (ESME), an application based on the Lift WebFramework and Scala. ESME is an Open Source tool designed by Siemens IT Solutions and Services together with SAP Community specialists. The product is aimed at boosting productivity in enterprises with efficient social networks. Richard Hirsch, project manager for ESME at Siemens says "ESME helps to build communities and thus fosters efficient, company-wide communication between employees". Darren Hague, SAP Mentor and ESME team lead briefly explains here why the team chose Lift and Scala as the basis of this application. You can learn more about the project background and the teams technical architectural decisions here. You may like to try a version of the ESME user interface here or see the Siemens desktop implementation here. In an interview Vassil Dichev, one of the community of programmers dedicated to developing ESME, talks about his experiences with Scala.
Thatcham
Thatcham Motor Insurance Repair Research Centre provides data to vehicle manufacturers with the aim of containing or reducing the cost of motor insurance claims, whilst maintaining safety and quality standards. They research efficient, safe, cost effective repair of vehicles, and work with manufacturers to influence the design of new vehicles. Ross McDonald, Web Technologies Lead Architect, explains in his article why the company moved to Scala for both their research work and their Web site. He summarises their experience by saying "With Scala we can simply do more with less code, and we can do it better."
OPOWER
OPOWER is an energy efficiency and Smart Grid software company that helps utilities meet their efficiency goals through effective customer engagement. OPOWER uses cutting edge software, combined with behavioral science and patent-pending energy usage algorithms to deliver actionable insights about energy usage to millions of homes across the country. Dave Copeland, an engineering lead at OPOWER, recognised the efficiency benefits Scala could bring to the company. However, the OPOWER developers are a very successful JAVA shop and rightfully cautious about adopting a new language. In his presentation at ScalaDays 2010 he explained how he chose to introduced Scala in a controlled low risk way by simplifying the creation of the company's Web site test suite using Scala. Based on their experience he suggests ways in which development groups can reduce their learning curve to more rapidly reap the benefits of bringing Scala into the development culture.
GridGain
GridGain, founder and CEO - Nikita Ivanov, has the vision of making a product that will make grid computing an everyday tool for the enterprise application developer. GridGain has already become popular among many commercial users and this capability to use it so simply with Scala will make it even more accessible.
You can see a short, get you started, example in Nikita's tutorial article "A Scala-based DSL for Cloud Computing" on his blog. Or you may like to see his presentation on GridGain or see how it can be used, for example, with the JBOSS cache for map-reduce applications. Gridgain has shown how easy Cloud computing in Scala has become.
AppJet
Appjet was recently acquired by Google to boost the development of Wave. AppJet developed the highly successful EtherPad and its underlying AppJet web framework using Scala. EtherPad is the only web-based word processor that allows people to work together in really real-time. You can see how Scala has contributed to the project by looking at the source code now made available as an Open Source Project. The acquistition recognizes their success, much deserved by the design and delivery of a product their customers enjoy. See their customer testimonials here.
Reaktor
Reaktor is a Finnish software company, employing 150 people, providing software development and software development consulting services to many of the large Finnish companies. Their software services are mostly targeted at Finnish market although the products are often deployed around the world and used by millions of people. The cornerstones of the company are unparalleled technological expertise, the best experts in the field, high quality products and services and the drive to always succeed. Reaktor, an exciting and progressive company, was ranked the best workplace in Finland and number two in Europe in 2009. At Reaktor, people always come first. In the last two years developers at Reaktor have become enthusiastic about Scala, started introducing the language into new development projects and now recommend the technology to their customers. In one case, Scala was chosen as a solution for a mobile game logic DSL, in a system now deployed around the world. The top level Scala script bundled together more fundamental elements. The resulting package has been used more extensively since. In another, Scala was used to implement a Web based home security system. Scala's xml API was particularly effective for interacting with a third party provided xml-over-http service. According to Hannu Terävä, Chief Technology Officer, "Ultimately the client decides what technologies we use; I believe that we will see more and more Scala projects in the future."
Others We have received many reports about Scala in the enterprise, in particular we heard news about EBay, LinkedIn and Office Depot adopting Scala as well; we are in the process of obtaining more information. Meanwhile, please find below some of the Scala deployments we heard about; we are unable to verify all of them at this time, but we will update the list as we receive more precise information. Scala is also being used in the scientific publishing group Nature, for building various restful APIs. The contact is Peter Kovac, who also reports that some of their new online products are also going to be Scala-based. http://www.nature.com/
|