Python相较于Java而言,有什么优势

Python 相较于Java 而言,有什么优势?

每种语言都有适合自己使用的场景。

一个后端工程师必备的能力就是选择合适的场景去选择合适的语言。

而且,Java程序员往往多少都会点Python。

所以,并不存在说Java程序员和Python程序员之间的纷争问题。

确切的说,大家争执的应该是,什么样的场景下用什么样的语言,有没有最佳实践?

适合Python的场景如下:

1、各种运维脚本

包括但不限于统计日志分析,发送邮件,定时任务,解析文本,替换配置文件等等等等。

Python比Shell更强大,天生就是最适合做运维脚本的东西。

而随着devops的普及,各种小的运维脚本有了Python之后简直是如虎添翼。

2、小型爬虫

如果你要抓取百度新闻,微博,或者是其他论坛等,不需要考虑太多抓取权重,去重等等,用Scrapy爽的不要不要的,特别是在解析xpath方面,在这一点上,Python的简洁完全是碾压Java的。

Java解析Json就是一场恶梦,Python和JS处理这种东西轻巧的想要飞。

抓取的内容简单入库也很容易,所以如果是要求不高,纯粹的抓取入库,Python完胜。

3、文本处理

假设你要处理文本,截取,排序等等等等,Python写的小东西真的比Java好用多了,或者是说,我需要跑个定时任务,(tj.java.tedu.cn)定期调一下第三方Api写到某个DB里。这些东西都是Python最擅长的地方。

4、算法

NLP和DM中很多算法都适合用Python来做,不过我了解的不多,还是用Java为主。但是推测的出来,算法领域上Python比Java要强很多。

从以上的分析看的出,Python适合的场景是小,跟其他的系统的交互比较少,不需要考虑大数据量和并发访问,不会有太复杂的结构,也很少会有什么需求变更,更多的像是Tools。

这也是符合脚本语言的特性。

所以在这些领域里,Python比Java牛是很正常的,如上所述,在不同的使用场景下来决定用什么来完成任务,是架构师一个很重要的职责。

原文地址:https://blog.51cto.com/14082839/2367399

时间: 2024-11-06 09:42:44

Python相较于Java而言,有什么优势的相关文章

Python文本处理和Java/C比对

一:起因 (1)态度和思想的转变很重要:要说起学习Python的原因,也够曲折的 -- 很早之前就听说了Python 以及 Perl语言,一直有学习的打算和冲动:最后学习Python是由于学习<机器学习>,和国外的教学视频里面那些洋教授们,以及国外关于机器学习的API都是用到的Python语言,自己初试牛刀一把,感觉效率就是高,慢慢的观念就转变了. (2)态度和思想的转变很重要:学习一门新技术或者语言,跟人们认识事物的规律是一样一样 -- 刚刚接触新鲜事物时,第一反应排斥.反对(哪里都感觉别扭

如果你是一个老板,你会选用Python还是会选用Java技术

本文主要是对网上观点的综合与归纳. 如果想在Java与Python之间选择一种技术来实现Web,老板会选择哪样技术呢? 老板考虑问题自然是从商业角度上来考虑,对于生意人而言,技术只是获取商业利益的手段. Python目前偏重在数据处理,自动化运维,web开发. 孤立比较pytho和java性能,意义不大,同一个项目,python和java都可以做的百分百符合要求,但是python只需要两个月做,java可能需要一年半载,投入的成本也是相差巨大的. Java在于大规模计算方面有成熟的分布式解决方案

用python做自动化测试--对Java代码做单元测试 (1)

大多数时间我们说的python,指的是C实现的python, 在这篇文章里,我们要说的是java实现的python,她的名字叫Jython, 大家可以到到官方网站http://www.jython.org/ 看看,最近2年很活跃,发布新版本比较多,其实我在jython 2.1版本的时候就开始接触过,但当时看到社区不活跃,没继续学习应用下去.最近公司有几个项目需要对外发布java 实现的API, java毕竟没那么熟悉,写起API接口测试的代码来速度还是没那么快, 还是高大上的python来的快,

用python做自动化测试--对Java代码做单元测试 (2)-导入第三方jar包

用Jython对Java做单元测试,当然是为了测试公司开发的java代码,这样就涉及到导入第三包的问题,怎么导入第三方包? 可以利用http://blog.csdn.net/powerccna/article/details/37739207 这里的实现的函数,扫描指定目录下的jar包,然后通过sys.path.append()函数加入到jython的sys.path里面. for jar_file in scan_files("/home/jim/java_jar",postfix=

Python 最抢手、Java 最流行,前线程序员揭秘 2019 软件开发现状

互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT 半边天的技术人,如今如何了?从技术角度来看,其又该作何改变顺应潮流? 接下来,我们将从 JetBrains 最新发布的<2019 开发人员生态系统现状>报告中一窥究竟. JetBrains 通过调查全球 7000 名开发者,解析出开发者们在日常软件开发中最常使用的语言.框架,从而探索各种编程技术的最新趋势,希望可以帮助更多的开发者获取适合自己的技能. 过去一年,哪些编程语言被使用? 工欲善其事,必

JavaScript算法 ,Python算法,Go算法,java算法,系列之【归并排序】篇

常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n log n).1945年由约翰·冯·诺伊曼首次提出.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行. 作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法: 自上而下的递归(所有递归的方法都可以用

三大语言实例 (python,C/C++,Java)

Python3.5语言实例: #coding = utf-8 import sys def Sub_string(a,b): c=[0]*len(b) for i in range(len(a)): for j in range(len(b)): if str(a[i]).find(str(b[j]))!=-1: c[j] = c[j] + 1 for k in c: print(k) if __name__=='__main__': N=int(sys.stdin.readline().str

R、Python、Scala 和 Java,到底该使用哪一种大数据编程语言?

有一个大数据项目,你知道问题领域(problem domain),也知道使用什么基础设施,甚至可能已决定使用哪种框架来处理所有这些数据,但是有一个决定迟迟未能做出:我该选择哪种语言?(或者可能更有针对性的问题是,我该迫使我的所有开发人员和数据科学家非要用哪种语言?)这个问题不会推迟太久,迟早要定夺. 当然,没有什么阻止得了你使用其他机制(比如XSLT转换)来处理大数据工作.但通常来说,如今大数据方面有三种语言可以选择:R.Python和Scala,外加一直以来屹立于企业界的Java.那么,你该选

Python 是电视剧,Java 是咖啡屋小甜心,程序语言都是如何命名的?

打开 TIOBE Index 世界编程语言排行榜,出现在榜单上的程序语言名称多半都让人一头雾水.一些程序语言的作者会以「这种语言是什么」来命名语言,比如 BASIC.COBOL.TCL.LISP:另一些语言则是由它从哪些现有语言派生而来命名,像是 C++,C#:当然还有一些来源于数学家或计算机科学家的名字,其中的代表则是 Ada,Pascal,Turing. 但也有很多程序语言的名称是编写者随便拍脑门和大腿瞎想出来的,这篇文章里要讲的这几个就是如此. Python 不是大蟒蛇,是个BBC电视剧