为什么入门大数据选择Python而不是Java?


Posted in Python onMarch 07, 2018

马云说:“未来最大的资源就是数据,不参与大数据十年后一定会后悔。”毕竟出自wuli马大大之口,今年二月份我开始了学习大数据的道路,直到现在对大数据的学习脉络和方法也渐渐清晰。今天我们就来谈谈学习大数据入门语言的选择。当然并不只是我个人之见,此外我搜集了各路大神的见解综合起来跟大家做个讨论。

java和python的区别到底在哪里?

为什么入门大数据选择Python而不是Java?

官方解释:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Python是一种面向对象的解释型计算机程序设计语言,Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。

java和python,都可以运行于linux操作系统,但很多linux可以原生支持python,java需要自行安装。java和python强于c#的原因大于支持linux,支持osx,支持unix,支持arm。java和python比c++受欢迎的原因在于不需要指针。

不少想学习大数据的零基础学员都知道,学大数据部分课程之前要先学习一种计算机编程语言。大数据开发需要编程语言的基础,因为大数据的开发基于一些常用的高级语言,比如Java和python。不论是大数据生态架构,还是数据挖掘,都需要有高级编程语言的基础。因此,如果想学习大数据开发,还是需要着手学习一门高级语言。

那学习大数据我们到底该选择什么?

咱们再来说下大数据。目前国内很多人在说大数据的时候,实际上是把大数据技术和数据科学(含数据分析、数据挖掘、机器学习)混在一起的,许多讨论和争辩其实源于大家说的不是一个事情。  目前高等学校已经有了大数据相关的专业,名字起得也很好,叫《数据科学和大数据技术》,就是把大数据分成两个方向来看待的。数据科学侧重数学抽象和软件工具的使用,对数学和编程要求较高;而大数据技术侧重软件工程实施,对计算机和编程要求较高。虽然两个方向都强调编程,但数据科学的编程是泛编程,可以简单理解为以使用脚本语言或需要编程的软件工具(如Matlab、SAS、R),而大数据技术的讲的编程是计算机通用编程语言(如Java/C/Python),职位也更接近我们所说的程序员或者说“码农”。

根据我在知乎、简书、CNDS等等论坛上关于两者语言的讨论综合得出以下结论:

java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。

Python既是一种面向对象的编程语言又因为其简单、易学、开源、脚本语言范儿的“人设”,是一种既适合数据科学又适合大数技术从业者学习的语言。

如果你想学一门语言,可以从语言的适用性、学习的难易程度、企业主的要求几个方面考虑,从这几个角度看,学习Python都没有什么可挑剔的。

从语言的适用性看,Python有个外号叫“胶水语言”,就是说Python可以随意地组合它和其它程序,它可以作为一个中间处理模块的代码把其他代码“粘合”在一个工程里面,从而快速的部署和实施。

除了在大数据和数据科学领域,它在web前端开发等领域也有广泛应用。从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。

在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。 从企业主来看,随便打开一个大数据开发的招聘JD,你就会发现不少企业招聘大数据开发工程师时,对具体编程语言的要求已经不再严苛,一般情况下你只要熟练掌握Java/C/Python中的其中一个即可以,毕竟软件工程师的的核心能力不是语言本身而是逻辑思考能力,况且现在中间件这么多,各种语言之间的适配和转换也越来越容易,企业需要的是解决问题,而Python was born for it. 就大数据技术而言,Java在PaaS和SaaS层都有非常多的实践和应用,如果你有Java的基础,可以继续学好Java。

如果你没有Java基础,又想往大数据技术方向发展,那么你或许可以考虑把Python作为你的First language。  在数据科学领域,尤其是在深度学习领域,Python是当仁不二的选择。

当然,任何语言都不是完美的,如果你是一个拥抱变化,未来希望在数据工程和软件工程领域都有发展机遇的话,那么我建议你毫不犹豫的拥抱Python,并不断的尝试新的工具和技术。在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。

而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。

小媛建议

对于初学者,尤其是没有接触过语言的人想入门大数据,个人觉得先学python,后学java。首先python作为一门脚本语言,很容易入门。编程并不是说掌握一门或几门语言就足够了,重在提高思维能力。而python容易入门,工具多,短短数行代码就可以实现一个强大的功能,增强初学者的信心,另一方面让初学者有一个对编程思维的初步理解。

在这之后再学习java,首先语法很容易入门,再者对编程有一定理解后,才更能体会到类,继承,接口,甚至之后接触各种框架,这些内容对于大型项目带来的优势。

转载声明:本文转载自「程序媛不是程序猿」

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
python清除字符串里非字母字符的方法
Jul 02 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
python集合常见运算案例解析
Oct 17 Python
python super用法及原理详解
Jan 20 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
Python计算矩阵的和积的实例详解
Sep 10 Python
详解Python中如何写控制台进度条的整理
Mar 07 #Python
python爬虫爬取网页表格数据
Mar 07 #Python
python使用mysql的两种使用方式
Mar 07 #Python
python表格存取的方法
Mar 07 #Python
Django中Model的使用方法教程
Mar 07 #Python
python使用opencv按一定间隔截取视频帧
Mar 06 #Python
python+ffmpeg视频并发直播压力测试
Mar 06 #Python
You might like
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
垃圾回收器的相关知识点总结
2018/05/13 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
对Python中range()函数和list的比较
2018/04/19 Python
python实现排序算法解析
2018/09/08 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
奶茶专卖店创业计划书
2014/01/18 职场文书
社区包粽子活动方案
2014/01/21 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
护士年终考核评语
2014/12/31 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript