为什么入门大数据选择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定时器使用示例分享
Feb 16 Python
初步理解Python进程的信号通讯
Apr 09 Python
Python实现k-means算法
Feb 23 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Python中的四种交换数值的方法解析
Nov 18 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
windows下python安装pip方法详解
Feb 10 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 Python
django使用多个数据库的方法实例
Mar 04 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
Zend引擎的发展 [15]
2006/10/09 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
如何基于Python创建目录文件夹
2019/12/31 Python
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
无传销社区工作方案
2014/05/13 职场文书
升国旗演讲稿
2014/09/05 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
重阳节简报
2015/07/20 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技