
Python和Java有什么异同?这个问题吗,如果你问到从事Java和python的人员,他们或许会各执一词,python认为Java是刻板啰嗦的老大爷,而Java呢认为python是人乳臭未干的小孩儿。
下面就从• 语言特色• 学习本身• 实际应用• 就业薪资,等多个方面为你解答。
01
语言历史
Python:生而为简
Python是一门拥有简洁语法的高级编程语言。一个名为Guido van Rossum的荷兰大佬在1991年设计了它。Rossum设计这门语言的初衷,就是为了让代码读起来更轻松,并且让程序员们比起用其他语言,可以写更少的代码,事半功倍。
Java:出生就想当老大
而Jame Gosling在1995年设计了Java。Java是一门以Class为单位,高度面向对象的高级编程语言。Java的设计初衷是“写一次代码,在哪里都可以用。” Java可以完成任何规模的任务,所以它也是很多公司在做商业级项目的时候的普遍选择。
02
语言本身
Python: 语法简洁,容易上手
Java:语法稍微复杂
从语言本身来说,Python是出了名的简洁,容易上手。一个Python的粉丝曾经写过一首名为 The Zen of Python (Python之禅)的诗来赞颂这门语言的优雅。
以下这首诗的节选翻译。
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
在Python中,做这件事只需要写一行代码:print "Hello World!"。但是相比之下,Java实现这句话就要繁琐得多,需要至少4行代码(不小心就diss了一下Java)。
总之,用Python编程,比起其他语言,更像是直接在和电脑对话。
03
实际运用
Python
通过丰富的Web开发框架,如Django和TurboGears,Python可以用来快速完成一个网站的开发和Web服务。典型如国内的豆瓣、果壳网等
自动化系统网络的运行维护中,大量重复性工作的地方,并需要做管理系统、监控系统、发布系统等。
Java
安卓app开发
大型网站的后端
大型的企业级应用
大数据
最近一段时间流行度越来越高的Python,在行业与生活中的运用也十分广泛。通过丰富的Web开发框架,如Django和TurboGears,Python可以用来快速完成一个网站的开发和Web服务。
典型如国内的豆瓣、果壳网等;国外的Google、Dropbox等。在系统网络的运行维护中,有大量重复性工作的地方,并需要做管理系统、监控系统、发布系统等,将工作自动化起来,提高工作效率,这样的场景Python是一门非常合适的语言。
04
就业薪资
Python
1.美团
薪资:20k~40k
岗位职责:
1. 负责云数据库/云主机控制平面研发工作 2. 加强平台管理和控制功能,提升资源交付和管理效率
岗位要求:
1. 熟练使用Python,能写出漂亮的Pythonic的代码;
2. 极强的学习能力和动力,对未知技术和领域能快速掌握并实践;
3. 熟练掌握操作系统原理,Internet网络原理;
4. 有云平台开发、自动运维平台开发等大型Python项目经验者优先;
5. 在开源社群活跃并有积极贡献者优先。
2.携程
薪资:15k-25k
Python开发工程师:
1. 负责运维平台设计及开发,实现运维自动化和运维效率的提高
2. 帮助开发团队改进开发流程和效率
3. 与运维团队合作,收集需求,改善运维流程,实现各种运维工具,提高运行维护作业水平
4. 负责网站监控系统、数据收集和数据分析等系统的开发
5. 结合虚拟化技术,打造和完善携程云平台
以下是加分项:
6. 熟悉大型网站运维工作,有运维开发经验者优先;
7. 有CMDB/monitoring system/agent/automation系统设计与开发经验者优先
8. 熟悉Puppet/Zabbix/Celery/RabbitMQ优先
9. 熟悉Python/Django/Tornaod优先
10. 熟悉前端开发(XHTML/JQuery/CSS)优先
11. 对OpenStack熟悉者优先
Java方面:
1、京东
薪资:15k-30k
需要具备以下技能:
1、熟练掌握Java基础,熟练掌握多线程开发技术,熟悉软件开发流程;
2、熟悉主流Java开源框架如struts、hibernate、spring;
3、熟练掌握HTML/CSS/Javascript/jquery/Ajax;
4、熟悉Oracle/ SQL Server/MySQL其中的一种,并能熟练编写SQL和存储过程;
5、熟悉Linux系统,掌握Linux命令。
2、网易
薪资:15k-30k
必须技能:
1、精通java,熟练运用SpringBoot、SpringMVC、Hibernate、Mybatis、struts、struts2等技术,能练使用JQuery或相关的JS框架,精通面向对象设计;
2、熟悉mysql/sqlserver数据库,了解相关的数据库维护和性能优化,熟悉Tomcat、weblogic等服务器的配置与发布;
3、全面扎实的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等);
4、熟练SQL语句的编写;思维活跃,具备一定的软件设计能力及良好的软件工程思想;
05
总结
从语言本身,Python语法简洁,容易上手,而Java以独特的架构和较快的速度著称。
Python作为最近越来越火的语言,是大数据和人工智能的主力军,同时也在网页开发中广泛运用。而Java则垄断了企业级应用的开发。两者工程师的薪资也都十分可观。
