大数据编程语言

大数据学习路线图

本文摘自林子雨编著《大数据导论》(访问教材官网

作者:厦门大学计算机科学系 林子雨 博士/副教授 全国高校知名大数据教师

E-mail: ziyulin@xmu.edu.cn

在我国,大数据专业也已经成为一个炙手可热的“新工科”专业。目前,国内高校开设的大数据专业主要包括本科院校设立的“数据科学与大数据技术专业”和高职院校设立的“大数据技术与应用”专业。截至2020年,全国已经有1000余所高校设立了大数据专业。

大数据专业可以选择的编程语言比较丰富,包括C、C++、Java、Python、Scala和R等。

1.C语言
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。C语言在一些编程语言排行榜中长期排在第一的位置。

C语言具有很多优点,主要如下:

(1)它具有现代高级程序设计语言的基本语法特征,并且是编写操作系统的首选语言,与计算机硬件打交道时灵巧且高效,目前几乎所有的操作系统(如Windows、Unix和Linux等)均是由C语言编写的;

(2)常用的面向对象程序设计语言(例如C++和Java),其基本语法源于C语言。C语言甚至是其它编程语言的母语言,比如Java语言就是用C语言编写的。

(3)简洁紧凑,灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,它把高级语言的基本结构和语句与低级语言的实用性结合了起来。

C语言一般作为学习计算机程序设计语言的入门语言。

2.C++
C++是C语言的继承,是一门以C为基础发展而来的、面向对象的高级程序设计语言,它既可以进行C语言的过程化程序设计,又可以进行以继承和多态为特点的面向对象的程序设计。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

C++的优点主要包括:

(1)实现了面向对象程序设计,处理运行速度非常快,大部分的游戏软件都是由C++来编写的。

(2)语言非常灵活,功能非常强大。

(3)非常严谨、精确和数理化,标准定义很细致。

(4)语言的语法思路层次分明。

大数据领域的不少产品都是使用C++开发的(即产品本身是由C++编写的),包括一些NoSQL数据库(ScyllaDB、MongoDB、Aerospike、Kudu、SequoiaDB)、数据仓库Impala、实时流计算框架Hurricane和Heron、资源调度框架Mesos等。

但是,谈到大数据开发语言,C++要明显逊色于Java,很多大数据应用程序(比如Hadoop程序等)都是使用Java开发的,而不是使用C++。

3.Java
Java是目前最热门的编程语言之一,在一些编程语言排行榜中长期排在前三名。虽然Java没有和 R、Python一样好的可视化功能,也不是统计建模的最佳工具,但是,如果需要建立一个庞大的应用系统,那么Java通常会是较为理想的选择。由于 Java具有简单、面向对象、分布式、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性等诸多优良特性,因此,被大量应用于企业大型系统开发中,企业对于Java人才的需求一直比较旺盛。

Java语言与大数据存在较为紧密的联系,Java在大数据领域有着广泛的应用,是大数据应用程序开发的常用语言。作为大数据领域热门的大数据处理框架Hadoop和Flink等,其框架本身都是采用Java语言开发的,编写Hadoop应用程序也首选Java语言。而目前热门的分布式计算框架Spark,也支持采用Java语言编写应用程序。
  1. Python
    Python是目前国内外很多大学里流行的入门语言,学习门槛低,简单易用,开发员可以使用Python来构建桌面应用程序和Web应用程序,此外,Python在学术界备受欢迎,常被用于科学计算、数据分析和生物信息学等领域。Python是最近几年发展最为迅速的编程语言,在一些编程语言排行榜当中甚至已经进入了前三名。

Python的主要优点如下:

(1)可以使用多种执行方式。可以直接在命令行执行相关命令,也可以用函数的方式执行相关命令,或者也可以用面向对象的方式执行相关命令。

(2)语法简洁,且强制缩格,程序具有很好的可读性。

(3)跨平台。支持多种开发平台,如Windows、Linux、Mac OS X、Solaris等。

(4)面向对象。Python既支持面向过程,又支持面向对象,这使得其编程更加灵活。

(5)丰富的第三方库。Python有丰富且强大的库,而且由于Python的开源特性,第三方库非常多,如Web开发、爬虫、科学计算等。

在数据分析领域,Python是广受欢迎的编程语言,网络数据采集(比如网络爬虫)、数据清洗、数据分析与挖掘、数据可视化等环节,通常都使用Python语言编写程序。

5.Scala
Scala是一门类似Java的多范式语言,它整合了面向对象编程和函数式编程的最佳特性,具有诸多优点,主要包括以下几个方面:

(1)具备强大的并发性,支持函数式编程,可以更好地支持分布式系统;

(2)Scala兼容Java,可以与Java互操作;

(3)Scala代码简洁优雅;

(4)Scala支持高效的交互式编程;

(5)Scala是Spark的开发语言。

Spark是当前热门的大数据处理技术,开发Spark应用程序时,首选编程语言是Scala,因为Spark框架自身就是使用Scala语言开发的,用Scala语言编写Spark应用程序,可以获得最高的性能。Spark的流行也迅速提升了Scala的影响力。流计算框架Flink的部分模块也是使用Scala语言开发的,也可以使用Scala语言编写Flink应用程序。

6.R语言
R是专门为统计和数据分析开发的语言,具有数据建模、统计分析和可视化等功能,简单易上手。R语言主要具有如下优点:

(1)免费开源。R的源代码可以自由下载使用,也有已编译的可执行文件版本可以下载。

(2)简单易学。虽然R与其他程序设计语言相比结构相对松散,使用变量前不需要明确定义变量类型等,但是,仍然保留了程序设计语言的基础逻辑与自然的语言风格。

(3)几乎兼容全部平台。除了支持OS X、Linux、Windows之外,甚至可以在iOS设备上编辑和运行R程序,还可以在iPhone等移动设备上安装R程序。

(4)多领域的统计资源。学者和数据分析师开发了很多R语言包,涉及到统计的各个方面,资源很丰富。

(5)出色的图形统计功能。除了基本统计直方图、折线图等,还可以绘制一些高级的图形,而这些是SPSS这类软件所不能匹敌的。

总体而言,R和Python都是比较流行的数据分析语言。相对而言,数学和统计领域的工作者更多使用R语言,而计算机领域的工作者更多使用Python。大数据处理框架Spark也提供了对R语言的支持。