如何抉择相符本人的编制程序语言,技术栈的筛选

图片 1

图片 2

在本文开始之前,先来看看一些案例。今年10月份,知名团购网站Groupon宣布完成了为期1年的工作——将Groupon美国站点从Ruby
on
Rails全面迁移到了Node.js。2010~2013期间,阿里巴巴逐步完成了“去IOE”运动,将“IBM小型机+Oracle数据库+
EMC2存储”架构逐步转向了“MySQL+PC Server”。Twitter将其一些后端服务从Ruby
on Rails迁移到了JVM上。京东商场后台抛弃.NET,使用Java重写。Facebook
iOS客户端使用HTML5重写,后又换回原生应用。……一、这些公司为什么要如此“折腾”关于技术栈的选择和迁移,并不是几个简单的原因就能说清楚的,也并不是说新的技术栈就比老的技术栈要优秀很多,其实每种技术都有存在的理由,并在特定领域内有其强大的优势的,当然也有缺点,比如
C的性能很高,但是开发效率较低;Java的功能强大,但是没有Ruby简单灵活。那么这些公司为什么要如此折腾呢?下面以一些公司的实际案例,仅列出一些主要、常见的原因。1.
速度、可维护性——Groupon从Rails转向Node.js
为什么要放弃原有技术栈?Groupon目前在全球共有两套站点——美国网站和欧洲网站,其美国网站前端最初是一个单一的Rails代码库。对于为什么会选择Rails来开发最初的网站,Groupon开发人员表示,Rails非常适合小型团队快速开发,可以让网站快速启动并运行起来,这对于初期功能不断变化的Groupon来说,是个非常不错的选择。随着Groupon的发展和新产品不断推出,这个代码库越来越大,有太多的开发者在同一个代码库工作,他们很难在本地运行并测试产品,如果有问题需要回滚,那么每个人的工作都前功尽弃了。Groupon团队决定将原有的单一Rails库分割成小的、独立的、更易于管理的库。为什么选择Node.js?Groupon团队评估了不同的软件栈,想寻找一个能够解决这些问题的方案——有效处理大量传入的HTTP请求、使并行API请求服务于每一个HTTP请求、将结果渲染为HTML5,并可以有效实现监控、部署和支持。该团队使用不同的软件栈开发了原型,并测试了它们,总体来说,发现Node.js是个非常适合的解决方案。如何迁移?Groupon团队使用Node.js重建了网站页面的每个主要部分,将它们作为一个独立的Node.js应用程序,然后重建了基础设施,使所有独立的应用程序可以一起工作。迁移之后,Groupon成为了全球最大的Node.js部署产品之一。迁移带来的好处之前单个Rails前端代码库被分割成了20个独立的应用程序,其带来了如下的好处:页面加载更快——快了50%与之前相比,处理相同的流量所使用的硬件资源更少团队可以独立地更改、部署各自负责的模块网站功能和设计实现可以快速迭代更详细的信息可参阅
Groupon开发团队的博客。2.
原有技术栈已无法满足如今的规模——Twitter部分服务从Rails迁移到了JVM
Twitter在2006创建初期也是基于Ruby
on
Rails开发的,其架构设计也是完全可以应付当时的访问量。但是随着Twitter的快速发展,在每秒上万访问量的处理上,原有架构开始出现各种性能问题,比如Twitter开源负责人Chris
Aniszczyk称,在2010年世界杯期间,球员进了一个球或者得到红黄牌,网站就宕机了。为了解决这个问题,Twitter急需开发一个全新的架构,以应付现在越来越大的访问量。对于Twitter为什么从Rails转向JVM语言,来看看Ruby创始人松本行弘是如何说的。引用Twitter刚开始开发的时候不可能考虑到会有现在这样大的访问量,可以说现在的Twitter发展到当初在设计上的极限了。
一个网站在遇到设计极限的时候,有很多解决方法,比如重写架构、换其他语言等等,他们的工程师想要挑战一些新的东西,就提出要改用Scala,因为Scala是编译型语言,性能也不错,正好适合编写新的架构,我觉得这样也不错。
在我看来,在网站所提供的服务还没有完全成型的时候,最重要的是能够对需求的变化做出快速的反应,这个时候就需要Ruby这样灵活性比较高的语言;而在网站获得成功之后,遇到了设计瓶颈,用一种新的语言,比如Scala,来编写一个新的架构,以节约一定的资源,我认为这也是很好的一个结果。Twitter转向Scala还只是在其核心部分,而在Web前端和一些内部工具上还有很多地方在用Ruby。此外Twitter还将一些后端服务使用Java和
Clojure进行了重写,其基础设施也采用了一些开源项目。迁移后,Twitter在美国总统竞选期间没有出现宕机。目前Twitter每秒处理约6000条消息,加起来每天处理超过5亿或每周35亿条消息。3.
技术上更可控,规模上更易扩展——淘宝去IOE
2010~2013期间,阿里巴巴逐步完成了“去IOE”运动,将“IBM小型机+Oracle数据库+EMC2存储”架构逐步转向了“MySQL+PC
Server”。至于阿里巴巴为什么要“去IOE”,阿里技术保障部DBA负责人周宝方表示主要从以下几个因素考虑:集中式的严重制约:集中式强大单点远远满足不了阿里特别是当时淘宝爆炸式业务增长应用的模式,这里可分为三个方面,稳定性、跨IDC容灾切换、快速扩容;技术面临失控,创新潜力受限;专用设备规模化场景下诸多限制;成本;安全“去IOE”之后,阿里的技术架构非常灵活,支撑了业务的快速发展,比如在双十一,阿里可以很淡定地做业务扩展;其次是阿里掌握了技术自主可控操作;另外还包括基础工程技术和人才的积累、技术的沉淀、成本、安全性的提升等等。详细信息可参阅《
阿里周宝方谈“去IOE”战略及实施》。4.
快速开发需要——PayPal使用Node.js重写其支付系统
PayPal 公司长期存在着“
非我所创 ”的文化,这导致 PayPal
采用新技术的态度很消极,项目开发进度也极其缓慢。正是由于 PayPal
行动缓慢,其他支付服务商 Stripe 和 Square 趁机成长,逐渐撼动 PayPal
的市场地位。同时,PayPal
当时的开发技术也已经无法满足快速开发的需求,因为当时的开发基本全是
Java,不需要用 Java 来实现的也会用 Java 完成。2012年4月,David
Marcuss成为 PayPal
的总裁后,任命工程师团队重写支付系统,最终,工程师团队用了8周时间完成了该项任务,他们选择了Node.js和一些开源项目对系统进行重新开发,最终他们将这一技术栈整合成了一个
快速开发框架——Kraken,以实现公司其他产品的快速开发。5.
追随潮流,但这是有代价的——转向HTML5
HTML5
是应用开发领域的未来趋势,由于其跨平台性,一些企业也开始将应用使用HTML5重写。比如Facebook和LinkedIn采用HTML5重写其iOS客户端。但是他们也付出了一定的代价——由于用户的网络环境并没有预想的那么好,结果导致应用启动、浏览信息流、打开图片都比较慢,因此他们后来又放弃该技术,转而使用苹果的iOS
SDK重新构建,由于是本地应用,速度提升非常明显。当然,这并不是说HTML5不好,而是时机还未成熟。6.
成本考虑——选择开源软件
由于昂贵的成本,开源软件往往是小型初创公司的首选。比如服务器方面:单从系统的性能和吞吐量来讲,Windows
Server也不差,但是Windows在管理和部署方面没有Linux方便;Windows服务器的授权费用使架构规模的横向扩展成本偏高;一些高端的服务器软件只有UNIX/Linux版本一些优化、缓存、数据库解决方案只针对Linux。7.
更换技术团队或CTO
有这样一种情况存在,比如原有代码库相关开发者大部分都离职了,且相关工作没有交接好,文档又不全,导致现有的开发人员难以维护,或者现有开发人员认为原有代码“坏味道”太多,不愿意维护,所以团队一拍即合,重写架构。也有可能公司更换CTO后,公司的原有架构不是新CTO所熟悉的,而且他认为原有架构有一定的问题。8.
被迫选择
如果公司正使用的某些产品的原开发者不再提供支持,那么只能寻找其他替代品。还有就是在特定平台上,你只能选择某个技术栈,比如iOS开发,你只能选择Objective-C。二、大公司是如何做的在技术栈的选择和迁移上,大公司会非常慎重,不仅要考虑新的技术栈是否能解决现有的问题,还需要从公司战略、技术发展局势方面考虑。1.
不断尝试新技术栈——Groupon
迁移现有架构或技术栈,需要大量的人力和其他资源,此外,为一个线上产品更换底层设施需要非常高的技术,比如有人将淘宝去IOE比喻成在公路上为一个高速行驶的汽车更换轮胎。一些公司的开发团队会尝试不同的技术栈,制作出原型并进行测试,以此来看是否满足需求。除了做好预备工作外,开发团队还会选择先迁移部分应用或服务,小步前进,并在此过程中,快速验证新技术栈的适用性,并及时反馈,以便能够发现问题后快速回滚。2.
优化原有技术栈——Facebook
当然,也有一些公司不愿放弃原有的技术栈,比如
Facebook,转而在原有技术栈的基础上进行优化。Facebook的前台主要使用PHP编写,尽管PHP编程效率高,能够支持产品的快速迭代,但是与传统的编译语言相比,脚本语言在CPU和内存使用率上不够好,随着Ajax技术的广泛采用,加上SNS对动态要求较高,这些缺点更显得突出。自2007年以来,Facebook尝试使用多种不同方法解决这一问题,比如使用另一种语言重写Facebook、重写PHP的核心部分Zend引擎,但最终还是没有获得所需的性能。于是HipHop
for
PHP诞生了,该项目由一个PHP到C++的转换程序、一个重新实现的PHP运行库和许多常用PHP扩展的重写版本构成,可大大加速和优化PHP应用。据悉,由于HipHop,Facebook
Web服务器上的CPU使用率平均减少了50%。3.
也有失败案例
当然,在技术栈迁移过程中,也有失败的案例,比如5173网站从.NET转向Java以失败告终。详细信息可见范凯
《对.NET系统架构改造的一点经验和教训》。三、如何选择技术栈选择技术栈需要参考的因素有很多,一些基本因素如下:产品预期上市时间开发团队和生产力情况可维护性可扩展性使用环境社区和许可情况对于实际上该如何选择,华为开源支持平台专家庄表伟给出了他的建议。庄表伟认为:在快速原型的阶段,就可以选择快速开发的语言,而在实用的阶段,就应该选择更加实用的语言。而在一些极端的领域,效率至上与实用至上可以毫不相干,各自有所追求,前期追求效率的开发产品,由于成本极低,大多是可以随时抛弃的。而真正的困难在于想要兼得。常见的与架构相关的两种痛苦:一种是,刚开始为了追求快速开发,在技术选型上怎么快怎么来,结果系统越来越大,越来越复杂,等到想要考虑架
构优化,想要重构的时候,却已经积重难返,改起架构来伤筋动骨;另一种是一开始想得太多,架构做得太复杂,杀鸡用牛刀的技术用得太多,往往还没有等到系统开发完成,就已经Game
Over了。庄表伟认为想要兼得鱼和熊掌的确困难,但是并非没有可能,我们可以找到一些优秀的、可选的技术集合,对于技术选型的判断,需要考虑理论情况与实际情况:考虑效率技术复杂度:学习并掌握一组技术栈,需要了解多复杂的技术;相应的,当我们掌握了这门技术,它可以在多少地方复用?技术友好度:在开发的过程中,会不会有各种莫名其妙的陷阱,会不会让我纠缠于各种莫名其妙的细节?考虑实用业务复杂度:随着业务的复杂,我们的代码会不会最终无法驾驭?无法维护?无人能懂?性能提升度:随着业务的增长,压力的提升,我们会不会最终被迫放弃现有的技术架构,重头开始?详细信息可参阅《
技术选型:效率至上与实用至上》。四、看顶尖互联网企业的技术选型下面来看看大型互联网公司的产品是如何选择技术栈的。该数据来自
维基百科,这是根据网站的HTTP头信息和文件类型所统计的。网站前端后端数据库Google.comJavaScriptC、C++、Go、Java、Python、PHPBigTableFacebook.comJavaScriptPHP、C++、Java、Python、FBML,Ajax,Erlang、D、XhpMySQLYouTube.comFlash、JavaScriptC、Python、JavaMySQLYahooJavaScriptPHPMySQLLive.comJavaScriptASP.NETMicrosoft
SQL ServerMSN.comJavaScriptASP.NETMicrosoft SQL
ServerWikipedia.orgJavaScriptPHPMySQL,MariaDBBloggerJavaScriptPythonBigTableBingJavaScriptASP.NETMicrosoft
SQL ServerTwitter.comJavaScriptC++、Java、Scala
Wordpress.comJavaScriptPHPMySQLAmazon.comJavaScriptJava、J2EE、C++、Perl
eBay.comJavaScriptJavaOracle DatabaseLinkedin.comJavaScriptJava、Scala
五、写在最后技术栈是产品的根基,是产品功能和用户体验的保障。每种编程语言和技术都有存在的理由,且这些技术栈都经过了时间和大型项目的验证,但这并不代表别人能用你就也能用,还需要根据产品、团队、市场等因素选择最适合的技术栈。所以,在技术栈的选择上,可以说没有最好,只有最适合。希望本文列举的这些公司的案例能够为你带来一些参考。

编程语言(programming
language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

学习一种新的编程语言不仅可以提升你的专业能力、处理信息和分析数据的能力,也能让你走上一条新的职业道路。甚至你还可以将在学习语言时学到的计算思维能力和解决问题的能力应用到各个领域。

然而,选择编程语言不仅要看个人兴趣,还要考虑这个语言是否与目标职业岗位匹配等众多因素。那么,你应该如何选择适合自己的编程语言呢?

1.PHP

PHP是目前最流行的编程语言之一,也是一门非常适合初学者的语言
,同时它也为有经验的程序员提供了很多高级功能。

图片 3

PHP可以实现多任务并行处理,它可以生成动态页面内容,同时,也可以对服务器上的所有文件进行创建(create)、打开(open)、读取(read)、输入(write)、关闭(close)等操作。

使用理由

如果你打算写一个网页,并且有像Laravel, Symphony 2, Zend, CodeIgniter,
CakePHP这样的框架以及各种支持工具,用PHP就再适合不过了。

和其他语言相比,PHP能更快速地执行动态网页,而且随着不断的改进,它变得越来越容易部署。

由于PHP被广泛使用,所以世界各地都有大量的PHP用户。而如果你想了解更多关于PHP的知识,可以加入当地的PHP群组。

使用公司

很多服务器提供商都使用PHP服务器,它为超过2000万个网站服务,并被很多公司使用,比如:Facebook;Etsy;Drupal;WordPress;Whatsapp;Tumblr;SnapChat;Hootsuite;Nokia等。

使用岗位

PHP开发人员;软件工程师;全栈开发人员;前端开发人员。

2.Java

Java这几年来越来越流行。它是一门基于原型、函数先行的语言,也是一门多范式的语言。

图片 4

它支持面向对象编程,命令式编程,以及函数式编程,被开发人员结合着HTML和CSS广泛使用。

使用理由

Java
可以被认为是网页的行为端,它嵌入在大多数浏览器中,用于网页广告、网页分析和网页窗口小部件的制作。

Java也可以用来建立网站上的自动完成功能、解决布局问题和增强HTML框,这样可以让用户自行预设,添加文本。

Java既可以用于后台脚本,也可以用于前端脚本,现在很难找到一个不运行js的设备,它几乎无处不在。

Java也是一种快速、灵活且富有表现力的编程语言,它有Angular和React等这些流行框架,你可以用它来编写可重用的组件,这些组件可以插入到应用程序中,从而控制一个“坚固”的框架。比如,开源平台Node.js,它就是建立在Chrome
的 Java运行时刻上的,对于创建快速的、可扩展的网络app非常便利。

使用公司

Airbnb;Yahoo;Snapchat;LinkedIn;FitBit;Opsview;Adstream;PaySafe;Sky;Eurostar;HSBC;Thomas
Cook等。基本上使用网站的公司都使用Java。

使用岗位

Java开发人员;前端开发人员;Web开发人员;软件开发人员;Web技术分析师;全栈Java开发人员(Full
Stack Java Developer)

3.Java

尽管名字相似,但Java与Java没有任何关系。

Java自1995年开始被使用,是关于网站开发最早的编程语言之一,它到现在仍然非常流行,在TIOBE编程语言排行榜中连续两年都排名靠前。

图片 5

Java是一门非常灵活的语言,它可用于开发Web应用程序、桌面程序和移动应用程序,还可应用于制作网络游戏、上传照片、参与虚拟旅行和使用交互式地图等。

使用理由

Java可以说是Android的基础,它推动着Android应用程序的开发,所以对那些想进入移动开发行业的人来说,Java是一个很好的选择。

由于Java这门语言历史悠久,所以它有大量的图书和大量的文件可供你在学习时查阅参考。

并且Java软件有一个开源版本的Java编译器,程序员可以在Java平台上的开源应用上交流合作。

Java语言还有优良的工具,而且它为了让初学者学起Java来更容易,正在进行进一步改良。

使用公司

从Lloyds Bank Group, Credit Suisse, Financial Times, HSBC, Deutsche
Bank, Goldman Sachs等金融银行到Facebook, Ebay, Netflix, Uber,
DigitasLBi, BBC, Sky和Right move等知名网站,Java被大量的企业所使用。

使用岗位

Java开发人员;软件开发人员;后端开发工程师;Java软件架构师等。

4.Objective-C

和Java一样,Objective-C可以用来编写桌面软件和移动应用程序。

它是一种基于C语言的面向对象编程语言,被苹果开发人员用于开发iOS和Mac
OS的移动应用程序。

图片 6

使用理由

在Swift出现之前, Objective-C是iPhone原生应用程序的首选语言。

它有强大的界面生成器,支持泛型编程如Java,Scala 或 C#。

如果你想进入苹果公司,肯定需要学习Objective-C。

使用公司

Apple;Instagram;Uber;Slack;Snapchat;9gag;TimeHop;Zillow;Weebly;FitBit;Luminosity等

使用岗位

全栈开发人员;软件开发人员;Objective-C开发人员;软件架构师;后端开发人员;IOS开发人员;应用程序开发人员;移动应用程序开发人员等

5.Swift

Swift于2014被引进,用来部分替代Objective-C。从Mac、iPad和iPhone到Apple
Watch和Apple TV应用程序,Swift几乎参与了所有苹果产品的开发。

图片 7

如果你想从事苹果技术开发岗位,需要同时学习Objective-C
和Swift,因为这两种语言通常被应用于同一个应用程序。

使用原因

和Objective-C一样,
Swift也是苹果认可的语言。它被认为是一种新的创新型编程语言。它的源代码的开放性和易用性,旨在给开发人员提供更多的自由。

Swift支持推断类型(inferred
types),这使得代码得到简化,而且因为这一语言中嵌入了强大的错误处理工具,所以在使用它的过程中不易犯错。

使用公司

Apple;Artsy;Lyft;DeloitteUK;Microsoft;Shazam;TransferWise;First
Utility;On the Beach;BBC;comparethemarket.com;Amazon等

使用岗位

iOS开发人员;软件开发人员;iOS应用开发人员;移动应用开发人员;前端开发人员等

6.Python

Python和PHP一样是服务器端和非编译动态编程语言,它可以单独使用,也可以作为另一个框架的一部分使用。由于它是一种通用语言,所以它几乎可以用于从服务器自动化到数据科学和机器学习等各个领域。

图片 8

大多数公司现在开始在他们的数据团队中引入机器学习,这意味着Python将成为实现高级算法的最常用的语言。而且该语言还扩展到创建移动应用程序——建立网站、软件和游戏,帮助研究人员破解相关数据并提供数据库访问。

Python和PHP的区别在于:python与PHP使用的堆栈类型不同。而且python的应用范围很广,你可以根据自己的兴趣有选择性地学习,比如:如果你只是想做网站建设,只要学习了web部分,你就能在浏览器中完成基本的建站工作了。

使用原因

对于初学者来说,Python是很好的入门语言,因为它易于阅读和理解,可以减轻初学者初学语言时的语法学习压力。

Python因为它简易的语法和可读性强的代码而备受推崇,同时它能处理大量复杂问题,所以使用者在使用Python时可以专注于学习编程概念而不必担心细节。

而且Python以其拥有大量的可用图书和大型社区而有名——它有第五大的堆栈溢出社区(5th
largest Stack Overflow community )和第三大的Meetup社区(3rd largest
Meetup community ),这些可以为你提供很多向其他开发者学习的机会。

使用公司

Instagram;Google;Vine;Snapchat;PayPal;DropBox;Pinterest;Netflix;Uber;Spotify;Reddit等。

从金融科技银行和金融公司(用于定价、风险管理和贸易管理的平台)到建立和维护零售网站的电子商务公司,都在使用Python。

使用岗位

Python开发人员;软件开发人员;后端开发人员;全栈开发人员;数据库管理员;数据科学家;解决方案架构师;运维工程师等

7.Ruby和Ruby on Rails

Ruby是一种服务器端解释型、非编译的动态编程语言。Ruby on Rails
是一个可以使开发、部署、维护 web 应用程序变得简单的框架,没有Ruby on
Rails,Ruby是没用的。

图片 9

Ruby可以使用命令式编程和函数式编程,这一语言是Perl, SmallTalk, Eiffel,
Ada and Lisp等语言的融合。

Ruby被广泛应用于初创公司和大型公司,用于构建模型和Web应用程序。同时Ruby
on Rails可以使用户轻松高效的构建Web应用程序和网站。

使用原因

Ruby可以快速开发,而且它是有着强大单行命令的编程友好的语言。

Ruby on Rails是高度可移植的,而且它可以应用于UNIX,Max OS X和Windows
95到2000,DOS,BeOS等多种桌面环境。一些大的网站都是使用Ruby on
Rails构建的,如Airbnb、Groupon和Kickstarter等。

而且它是一种功能强大的开源语言,涵盖前端和后端编程,这让你可以轻松地开发整个Web应用程序。

同时它也有一个蓬勃发展的社区,其中有很多适合初学者参加的会议和聚会。

使用公司

GitHub;Twitter;Snapchat;Tumbl;Kickstarter;GoPro;Airbnb;On the
Beach;Citizens Advice;Deliver;Amazon等

使用岗位

Ruby on
Rails开发人员;软件工程师;Ruby应用程序开发人员;前端开发人员;运维工程师;网站开发人员等

8.Perl

Perl是一种通用的编程语言,最初用于文本处理,但现在它已被广泛应用于Web开发、网络编程、GUI开发、生物信息学、系统管理、测试等各个方面。

近年来,Perl的普及率基本上已经恢复到20年前的水平。

图片 10

使用原因

Perl是开源的,代码简洁而有效,而且它既有趣又容易使用,所以也非常适合初学者学习。

因为巨大的第三方代码库CPAN收集了大量的有用的、可重复使用的Perl模块,所以初学者可以参考图书库和简化编写代码。而且如果你学会了这门语言,那么你学其他语言,比如:Python,Ruby,PHP,java,.net时就不会有什么问题。

Perl有资源丰富的社区。Perl程序员热爱他们的语言,并且广泛地记录Perl的相关知识,所以在这里你可以很容易就找到关于Perl问题的答案。

使用公司

Snapchat;Booking.com;C.V.Library;Zoopla;cPanel;NET-A-PORTER;Deutsche
Bank;XS4ALL;Amazon;LoveFilm等

使用岗位

Perl开发人员;Perl脚本编写员;Perl程序员;软件工程师;软件开发人员等

9.C#

“C-Sharp”是微软开发的一种面向对象的编程语言,它借用了与Java有类似功能的C++的语法。

图片 11

由于它的灵活性,从提供大数据服务器软件到创建Web应用程序,C
#几乎可以用于任何地方。它最初被用于微软.NET框架,这一框架有一个很大的关于预生成代码类的库。

使用原因

因为C
#对于Windows平台的.NET能提供很大的支持,因此,当创建Windows桌面应用程序时,C
#已经成为开发人员的首选语言。C
#是在集合了在C++和Java语言中的优良元素的基础上创建的,并且它也打算发展成通用型语言。

C
#是一种强类型语言,让初学者容易找到bug并消除bug,使初学者更容易养成用最优解编码的习惯。

如果你是C #的新手,你可以从微软找到很多可用的资源和教程。

使用公司

Microsoft;Huddle;StackOverflow;ASOS;BloombergLP;Moonpig.com;NextPLC;Hays;Natural
History Museume等

使用岗位

C #开发者;.NET开发人员;软件架构师;测试开发人员;全栈开发者等

10.Scala

Scala 是一种可扩展的语言,这意味着它可以随着你的学习而成长改变。

你可以使用Scala随便键入一行表达式,看看结果会发生什么变化;也可以使用Scala构建大型的关键系统,像Twitter和LinkedIn这样的大公司就是使用Scala来构建大型的关键系统。

图片 12

以灵活性著称的Scala 语言可用于面向对象编程、脚本或其内部的功能范型。

Scala 也是一个JVM语言,它可以用来生成运行在Java虚拟机的软件。

使用原因

Scala是开源的,它语法简洁,对一些人来说它就像是一种脚本语言。

Scala的类型系统相当复杂,但是它的REPL(解释器)为初学者学习编程语言提供了很大的帮助。

Scala擅长解决函数问题,并且有很多巨大的库可以参考,而且它可以提供不同的方法来解决同样的问题。

使用公司

LinkedIn;EDFT;Twitter;Novell;theGuardian;Xebia;Xerox;FourSquare;Sony;Siemens;Thatcham;OPower;GridGain;AppJet;Reaktor等

使用岗位

软件工程师;Scala开发人员;数据科学家;JVM开发人员;数据工程师;Dev
Ops架构师;大数据开发人员;Scala工程师等。

不同行业不同编程语言的受欢迎程度不同,其实这主要是由编程语言本身适合干什么工作决定的,开发者对编程语言
应无好恶之心,只有适合不适合。

所以一个语言能不能发展,甚至存活主要还是要看它适不适合市场应用。

虽然如此,我们还是能看出一些特点:综合来看,但无论哪个行业,Java,Python,JavaScript,C/C
++都是开发人员的比较喜欢的编程语言。所以开发者掌握这几张语言是有必要的。想要学会适合自己的编程语言,欢迎报名合肥达内Java编程课程,合肥达内每月Java编程免费试听课程开始预约,全程大咖级讲师亲授,为你解析Java编程行业发展趋势,就业前景,解决你的一切疑问!

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。