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

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

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

官方解释: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读大数据txt
  • 在Python中利用Pandas库处理大数据的简单介绍
  • 把大数据数字口语化(python与js)两种实现
  • Java开发者必备10大数据工具和框架
  • java 文件大数据Excel下载实例代码
  • javaweb学习总结——使用JDBC处理MySQL大数据
  • Java实现Dbhelper支持大数据增删改
(0)

相关推荐

  • Java开发者必备10大数据工具和框架

    当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,中软卓越专家列出了Java程序员在过去12个月内一直使用的一些工具或框架,或许会对你有意义. 先来看看大数据的概念.根据维基百科,大数据是庞大或复杂的数据集的广义术语,因此传统的数据处理程序不足以支持如此庞大的体量. 在许多情况下,使用SQL数据库存储/检索数据都是很好的选择.而现如今的很多情况下,它都不再能满足我们的目的,这一切都取决于用例的

  • java 文件大数据Excel下载实例代码

    java 文件大数据Excel下载实例代码 excel可以用xml表示.故可以以此来实现边写边下载文件 package com.tydic.qop.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I

  • 在Python中利用Pandas库处理大数据的简单介绍

    在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章<别老扯什么Hadoop了,你的数据根本不够大>指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择.这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据: 硬件环境         CPU:3.5 GHz Intel Core i7         内存:32 GB HDDR 3 1600 MHz         硬

  • Python读大数据txt

    如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用.好的方法是利用固定长度的缓冲区来不断读取文件内容.即通过yield. 在用Python读一个两个多G的txt文本时,天真的直接用readlines方法,结果一运行内存就崩了. 还好同事点拨了下,用yield方法,测试了下果然毫无压力.咎其原因,原来是readlines是把文本内容全部放于内存中,而yield则是类似于生成器. 代码如下: def open_txt(file_name): with open(file_name

  • javaweb学习总结——使用JDBC处理MySQL大数据

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型,BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传.下载或者存放到一个数据库). 一.基本概念 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和

  • Java实现Dbhelper支持大数据增删改

    在做项目的时候,技术选型很重要,在底层的方法直接影响了我们对大数据访问以及修改的速度,在Java中有很多优秀的ORM框架,比如说:JPA,Hibernate 等等,正如我们所说的,框架有框架的好处,当然也存在一些可以改进的地方,这个时候,就需要我们针对于不同的业务不同的需求,不同的访问量,对底层的架构重新封装,来支持大数据增删改. 代码: import java.io.*; import java.sql.*; import java.util.*; import java.util.loggi

  • 把大数据数字口语化(python与js)两种实现

    python 复制代码 代码如下: def fn(num):    '''    把数字口语化    ''' ret = ''    num = int(num)    if num/10000 == 0:        ret = str(num)    else:        if num/10**8 == 0:            if num%10000 != 0:                ret = str(num/10000) + '万' + str(num % 10000

  • 浅谈用Python实现一个大数据搜索引擎

    搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理. 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器. 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素.也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在. 让我们看看以下布隆过滤器的代码: class Bloomfilter(

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

    马云说:"未来最大的资源就是数据,不参与大数据十年后一定会后悔."毕竟出自wuli马大大之口,今年二月份我开始了学习大数据的道路,直到现在对大数据的学习脉络和方法也渐渐清晰.今天我们就来谈谈学习大数据入门语言的选择.当然并不只是我个人之见,此外我搜集了各路大神的见解综合起来跟大家做个讨论. java和python的区别到底在哪里? 官方解释:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易

  • Hadoop集成Spring的使用详细教程(快速入门大数据)

    官网sprng-hadoop https://spring.io/projects/spring-hadoop 添加依赖 <dependencies> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-hadoop</artifactId> <version>2.5.0.RELEASE</version&g

  • python使用pandas处理大数据节省内存技巧(推荐)

    一般来说,用pandas处理小于100兆的数据,性能不是问题.当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败. 当然,像Spark这类的工具能够胜任处理100G至几个T的大数据集,但要想充分发挥这些工具的优势,通常需要比较贵的硬件设备.而且,这些工具不像pandas那样具有丰富的进行高质量数据清洗.探索和分析的特性.对于中等规模的数据,我们的愿望是尽量让pandas继续发挥其优势,而不是换用其他工具. 本文我们讨论pandas的内存使用,展示怎样

  • python pickle存储、读取大数据量列表、字典数据的方法

    先给大家介绍下python pickle存储.读取大数据量列表.字典的数据 针对于数据量比较大的列表.字典,可以采用将其加工为数据包来调用,减小文件大小 #列表 #存储 list1 = [123,'xiaopingguo',54,[90,78]] list_file = open('list1.pickle','wb') pickle.dump(list1,list_file) list_file.close() #读取 list_file = open('list1.pickle','rb')

  • Python如何处理大数据?3个技巧效率提升攻略(推荐)

    如果你有个5.6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低.于是,有人用python处理大文件还是会存在效率上的问题.因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~ 所以,为什么用python处理大文件总有效率问题? 如果工作需要,立刻处理一个大文件,你需要注意两点: 01.大型文件的读取效率 面对100w行的大型数据,经过测试各种文件读取

  • Python大数据之使用lxml库解析html网页文件示例

    本文实例讲述了Python大数据之使用lxml库解析html网页文件.分享给大家供大家参考,具体如下: lxml是Python的一个html/xml解析并建立dom的库,lxml的特点是功能强大,性能也不错,xml包含了ElementTree ,html5lib ,beautfulsoup 等库. 使用lxml前注意事项:先确保html经过了utf-8解码,即code =html.decode('utf-8', 'ignore'),否则会出现解析出错情况.因为中文被编码成utf-8之后变成 '/

  • Python大数据之从网页上爬取数据的方法详解

    本文实例讲述了Python大数据之从网页上爬取数据的方法.分享给大家供大家参考,具体如下: myspider.py  : #!/usr/bin/python # -*- coding:utf-8 -*- from scrapy.spiders import Spider from lxml import etree from jredu.items import JreduItem class JreduSpider(Spider): name = 'tt' #爬虫的名字,必须的,唯一的 all

  • Python大数据之网络爬虫的post请求、get请求区别实例分析

    本文实例讲述了Python大数据之网络爬虫的post请求.get请求区别.分享给大家供大家参考,具体如下: 在JetBrains PyCharm 2016.3软件中编写代码前,需要指定python和编码方式: #!user/bin/python 编码方式 :#coding=utf-8 或者 #-*-coding:utf-8-*- post请求: #导入工具,内置的库 import urllib import urllib2 #加一个\可以换行 #response = \ #urllib2.url

  • 大数据时代的数据库选择:SQL还是NoSQL?

    一.专家简介VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域.Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时.二.SQL经历时间的考验,并仍然在蓬勃发展结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌.Facebook.Cloudera和Apache)正在积极投资于SQL

随机推荐