电商信息资讯,更全更新信息实报!
主页 > 人物 > > 正文

乌鸟鸟Scala学习系列(一)

来源:未知 发布时间:2020-11-23 23:25 标签:数据类型语言编程
浏览:

乌鸟鸟Scala学习系列(一)

  虽然在大数据领域Java的使用更普及,Python也有后来居上的势头,但Scala一直有着不可动摇的地位。我们熟悉的Spark,Kafka,Flink都是由Scala完成了其核心代码的开发。

  所以掌握Scala不仅可以学习大数据组件的源码,而且会极大的提升大数据开发的效率。

  这也是Scala的薪资水平一直遥遥领先的原因。

  根据2019年全球编程语言薪资统计,排名前几名的Scala无疑是岗位需求与收入同样优秀的语言。当然收入与地域之间也是有区别的,比如在美国,Scala 的收入最高,可以达到 143k 美元,其次是 Clojure(139k 美元)、Go(136k 美元)、Erlang(135k 美元)、Objective-C(132k 美元)

  该数据根据 Stack Oveflow2019 年关于编程语言薪酬排行开发者调查报告得出

  为什么会有这么高的薪资?

  这恐怕是源于Scala的特点:

  优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

  速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。

  能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。

  这也是为什么很多大数据组件的源码都是Scala开发的原因。

  掌握Scala以后,我们可以飞速的开发Flink,Spark等大数据工程,开发效率得到极大的提高,而且使用函数式编程,代码也会更简洁,炫酷。

  Scala产生于瑞士的洛桑联邦理工学院(EPEL),是“可扩展语言”(Scalable Language)的缩写,Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。你可以使用Scala编写出更加精简的程序,也能用于构建大型复杂系统,还可以访问任何Java类库并且与Java框架进行交互。

  通过官网我们看到对于Scala的描述:

  Scala combines object-oriented and functional programming in one concise, high-level language. Scalas static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

  1、运行于JVM和JavaScript之上

  Scala利用了JVM的高性能,而且也把Java丰富的工具和类库为其所用。不过Scala并不是仅仅支持JVM,Scala-Js已经支持Scala运行于Js之上!

  scala-js是将scala编译成js的编译器,乌鸟鸟目的在于使用scala的众多类库和强类型特征构建出稳定可扩展的js应用。

  2、静态类型

  在Scala语言中,静态类型(static typing)是构建健壮应用系统的一个工具。Scala修正了Java类型系统中的一些缺陷,此外通过类型推演(typeinference)也免除了大量冗余代码。

  动态语言和静态语言

  动态类型语言:是指在运行期才去做数据类型检查的语言。在用动态言语编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言。

  静态类型语言:与动态类型语言刚好相反,它的数据类型检查发生在编译阶段,也就是说在写程序时要声明变量的数据类型。C、C++、C#、Java都是静态类型语言的典型代表。

  强类型语言与弱类型语言

  强类型语言:使之强制数据类型定义的语言。没有强制类型转化前,不允许两种不同类型的变量相互操作。强类型定义语言是类型安全的语言,如Java,C#和Python,比如Java中的“int i=0.0”是无法通过编译的。

  弱类型语言:数据类型可以被忽略的语言。与强类型语言相反,一个变量可以赋不同数据类型的值,允许将一块内存看做多种类型,比如直接将整型变量与字符变量相加。JavaScript,PHP都是弱类型语言。

  注意、强类型语言在速度上逊色于弱类型语言,使用弱类型语言可节省很多代码量,有更高的开发效率。而对于构建大型项目,使用强类型语言可能会比使用弱类型更加规范可靠。

  3、混合式编程范式——面向对象编程,函数式编程

  Scala完全支持面向对象编程(OOP)。引入了特征(trait)改进了Java的对象模型。trait能通过使用混合结构(maxin composition)简洁的实现新的类型。在Scala中,一切都是对象,即使是数值类型。

  Scala也完全的支持函数式编程(FP),函数式编程已经被视为解决并发、大数据以及代码正确性问题的最佳工具。使用不可变值、函数、高阶函数以及函数集合,有助于编写出简洁、强大而又正确的代码。

  函数式编程更关心数据的映射,运用函数式编程,比如用Spark进行WordCount,只需要一行代码

  4、复杂的类型系统

  Scala对Java类型进行了扩展,提供了更灵活的泛型以及一些有助于提高代码正确性的改进。通过使用类型推演。Scala编写的代码能够和动态的类型语言编写的代码一样精简。

  5、简洁、优雅、灵活的语法

  使用Scala之后,Java中冗长的表达式不见了,取而代之的是简洁的Scala方言。Scala提供了一些工具,这些工具可用于构建领域特定语言(DSL),以及对用户友好的API接口。

  6、可扩展的架构

  使用Scala,能编写出简短的解释性脚本,并将其粘合成大型的分布式应用。以下四种语言机制有助于提升系统的扩展性:

  使用trait实现的混合结构

  抽象类型成员和泛型

  嵌套类

  显式自类型(self type)

  Scala与Java有着紧密的关系,可以把Scala看做是Java的升级版,而这些优势也让Scala拥有了巨大竞争优势

  Scala与Java关系

  Scala有着其独特的魅力,在加上大数据,流计算开发的增多,Scala有着越来越丰富的用武之地,所以很难说我们会因为Scala选择了大数据,还是因为大数据选择了Scala。

  下一章,我们将从头开始学习Scala,未完待续~

  更多大数据,实时计算相关博文与科技资讯,欢迎搜索或者扫描下方关注 “实时流式计算”


乌鸟鸟Scala学习系列(一)

上一篇:上一篇:王澜霏长期玩手机的危害有哪些

下一篇:下一篇:没有了

热门文章

  • 雷军“左拥”联想副总裁,“右抱”中兴
    雷军“左拥”联想副总裁,“右抱”中兴

    雷军“左拥”联想副总裁,“右抱”中兴

    2019年1月2号,雷军发布一条微博欢迎卢伟冰,配图是金立手机原总裁卢伟冰与他、黎万强、林斌坐在一起,这边是卢伟冰加入小米的序幕。 尝到了卢伟冰的...

  • 俞渝致信新浪法问:已向法院提交人身安
    俞渝致信新浪法问:已向法院提交人身安

    俞渝致信新浪法问:已向法院提交人身安

    7月9日,《电商报》获悉,今日晚间,俞渝发布了新浪法问的一封回信称,法院已经驳回了她针对李国庆提出的限制令申请,其律师已经再次在北京东城法...

  • 俞渝:2019年是当当加强用数据和智能发展
    俞渝:2019年是当当加强用数据和智能发展

    俞渝:2019年是当当加强用数据和智能发展

    12月9日消息,据新浪财经消息,在2019(第十八届)中国企业领袖年会上,当当网董事长兼CEO、木兰汇常务理事俞渝在发表演讲时表示,2019年是当当加强用...

  • 度小满金融副总裁张旭阳离职,将回归光
    度小满金融副总裁张旭阳离职,将回归光

    度小满金融副总裁张旭阳离职,将回归光

    7月15日消息,据了解,度小满金融对外确认了副总裁张旭阳离职一事。张旭阳未来将回归光大银行并筹建理财子公司。 据《电商报》了解,张旭阳加入百度...

  • “腾讯直播宠粉节”单场直播分享超1.5万
    “腾讯直播宠粉节”单场直播分享超1.5万

    “腾讯直播宠粉节”单场直播分享超1.5万

    今年618,电商直播成为主流消费形式。据腾讯直播披露的数据,6月15日至6月18日 腾讯直播宠粉节活动中,观看人数破万的直播间已逾千场,各品牌及商家卷入超...

人物

更多 >
  • 乌鸟鸟Scala学习系列(一)
    乌鸟鸟Scala学习系列(一)

    虽然在大数据领域Java的使用更普及,Python也有后来居上的势头,但Scala一直有着不可动摇的地位。我们熟悉的Spark,Kafka,Flink都是由Scala完成了其核心代码...

  • 王澜霏长期玩手机的危害有哪些
    王澜霏长期玩手机的危害有哪些

    智能手机已经深深植入我们的生活,甚至有人说手机已经成了我们身体的一个器官,无时无刻不贴着我们,让我们看看这个“新器官”对我们的危害有哪些...

人物娜仁其木格【10w40什么意思】作业帮
人物刘名洋什么是投标一览表?
人物虞文涛想在县城开个小吃店现在卖什么小
人物王菁华五个月的宝宝能吃什么
人物王晖为什么有些人的痣上会长毛?

专题

更多 >