文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Scala学习系列(一)——Scala为什么是大数据第一高薪语言

2020-10-19 06:03

关注

Scala学习系列(一)——Scala为什么是大数据第一高薪语言

为什么是Scala

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

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

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

file

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

file

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

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

这恐怕是源于Scala的特点:

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

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

file

什么是Scala

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

file

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

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 JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

Scala主要特性如下:

1、运行于JVM和JavaScript之上

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

file

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

2、静态类型

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

动态语言和静态语言

强类型语言与弱类型语言

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

file

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

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

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

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

sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect
4、复杂的类型系统

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

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

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

6、可扩展的架构

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

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

file

Scala与Java关系

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

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

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

file

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯