为什么入门大数据选择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实现的一个找零钱的小程序代码分享
Aug 25 Python
Python新手实现2048小游戏
Mar 31 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
一张图带我们入门Python基础教程
Feb 05 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
基于pip install django失败时的解决方法
Jun 12 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
深入了解Python iter() 方法的用法
Jul 11 Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python编程编写完善的命令行工具
Sep 15 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
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
爱心活动计划书
2014/04/26 职场文书
党员志愿者活动方案
2014/08/28 职场文书
2014年女职工工作总结
2014/11/27 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android