某同学问小智:“小智小智,学Java好还是学Python好?”

小智跑去问大神(90度鞠躬):“大神,大神,学Java好还是学Python好?”

大神嫌弃的看了我一眼,继续妙手生花的敲代码,良久,飘过来一句:“初学者才争论语言,我们只看心情。”

小智:“那他们的区别是什么?”

大神:“区别就是他们是否适合你们这些小白。”

OK,不愧是大神,那就让我们初学者,自生自灭吧!不,自力更生吧!

图版:(看不懂的地方小智都翻译过了)

文字版:

Python

优点 :

语法简洁优美, 功能强大, 标准库跟第三方库灰常强大, 应用领域非常广,跟PHP形成了鲜明的对比!

语言方面, 举几个例子:

一切都是对象!!!

类(class本身)/函数/类方法是callable的对象

因为是对象,所以你当然可以传来传去啦. 比如:

List表达式(其他好多语言也有,但是我最喜欢python的写法):

把'1023'变成 [1, 2, 3]

(当前你可以用Lisp风格的: map(int, filter(lambda x: x != '0', '1024')))

对dict也是类似:

yield关键字:

当你需要返回很多东西然后一个一个用的时候, 你可以一次返回一个

装饰器@:

把something_heavy()返回的结果缓存起来(以函数名+args为缓存的键值,只缓存最近使用的10条)

运算符重载:

试试numpy, 你会惊呆的, 操作向量/矩阵跟基本类型一样方便

缺点:

目测python是最慢的脚本语言,比V8上的JS还慢不少。 (研究一下描述符,你会发现python调用对象方法的开销好大!)

但是python创始人说了, 一般程序的瓶颈在于20%的代码, 所以你可以把那20%的代码用C重写(因为python是胶水语言,顾名思义,在多个语言之间左右逢源,游刃有余,用C重写部分代码当然很easy啦)

同时,你可以试试PyPy, 引入了JIT技术。

动态类型

有人说: 动态类型写时爽, 重构起来是灾难。

对于不写unittest, 不做代码覆盖率测试的人来说, 动态语言当然是危险的, 拼写错误都可能被隐藏, 重构?别捣乱!

python创始人有话说: '如果你认为编译器可以帮你解决所有问题,那你一定干编程没多久,不管什么程序,都需要写testcase, 既然要写testcase, 那么动态类型不是问题!'

Java:

优点

用几个词形容一下Java语言:优美,严谨,健壮,不易出错。

当然,使用也非常的广泛: 常年盘踞编程人员数量排行榜第一名!

各种库也灰常多: akullpp/awesome-java · GitHub

同样的代码, 相比C++(甚至python), Java代码出BUG的概率要小点(当然,写的时候一般会比python长)

Java从语言设计上尽量避免了程序员犯错,比如自动垃圾回收, 抛弃无符号类型, 安全的枚举,编译期泛型检查(Java1.5之后加入的泛型,但是只是用来做编译器检查,运行时跟以前一样),强制的异常处理(遇到异常必须catch或者申明throws) 等等(当然,某些特性python也有)

Java标准库和好多第三方代码都充斥着浓浓的设计感!!! 各种设计模式到处可见。 从下面的语句可以看出一点来:

好多字, 看它们的:

C:

Python:

Java代码多,但是API可复用行更强,选择更多(我想一次读完文件,不要buffer呢?)

因为健壮安全,所以Java成了企业级后台的标准。想想银行后台, 关键地方出点bug可不得了。

缺点:

要敲好多代码, 参考上面的例子...

没有Python那些奇葩特性,灵活性不足,怎么写你还是Java, 而Python可以写的像Javascript/Lisp/Matlab.....

简单来说, Python是给人设计的(人生苦短,请用Python), C/C++更像是为机器设计的,而Java则介于两者之间。

如果你是高手,写出的代码没什么bug,也不用怎么调试, 那推荐你用python(前提是他的慢你能忍受。 当然,高手眼里, 他会的就是最好的....)

如果你写的代码bug多,大部分时间在调试代码,你可能需要了解一下Java, 或者写足够多的testcase。其实,有一点大神说的是对的,没有好的语言,只有合适的语言。

猴子开核桃用石头,砸别的猴子也用石头。而我们人类开核桃用核桃夹,打别的人用枪。

每一门语言都有自己的设计思想,一个合格的程序员应该多学几门语言,了解怎样用不同的方法和思维去解决同一个问题。

python和java图片_Java好还是Python好?一张图告诉你!相关推荐

  1. 学Java还是Python?一张图告诉你!

    Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先 ...

  2. 学python还是java贴吧_是学python还是java?一张图告诉你!

    物联网硬件开发 - 零基础学习电子产品设计 - 创客学院直播室​www.makeru.com.cn Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷 ...

  3. 是学习Java还是Python?一张图告诉你!

    Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先 ...

  4. 5岁自学python编程-一张图告诉你孩子学编程怎么选

    原标题:一张图告诉你孩子学编程怎么选 [5秒Get本文干货] 1. 少儿编程应7岁开始学起. 2. 少儿编程不一定是孩子未来的职业,更应该是一种生活技能和态度,一种思维方式和语言. 3. 正常学习使用 ...

  5. java怎么判断mysql中是否存在我们查找的索引_10张图告诉你,MySQL 是如何查找数据的?...

    在我们日常生活中经常会涉及到查找某个东西的场景,就比如说在一个学校里吧,我们想找出个子"最高的10个"同学,或者想查找姓名是"张三"的同学,又或者是查找学号是& ...

  6. php css定位到图片上,CSS_浅谈css中图片定位之所有图标放在一张图上,如今做网页为了使网站丰富多 - phpStudy...

    浅谈css中图片定位之所有图标放在一张图上 如今做网页为了使网站丰富多彩,富于表现力,往往需要应用大量的图片/图标.如何处理这些图片,使其尽量不影响网页载入,解析等速度,是一个不大不小的问题.如果你的 ...

  7. python和java哪个更有潜力-Python VS Java,学哪个更有前途?

    原标题:Python VS Java,学哪个更有前途? 曾几何时,软件开发人员一直在使用C语言环境.几年之后,Java出现在一个更好的选择,具有一些独特的优势,再后来Python出现了,与Java不同 ...

  8. 有答案了!一张图告诉你到底学Python还是Java!你咋看?

    2019年,该学Java还是Python? 不,实际上应该这样问:都9102年了,难道有谁不想成为Python程序员吗? 作为"常青树大佬"Java 和"新晋大佬&quo ...

  9. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

最新文章

  1. Java for LeetCode 067 Add Binary
  2. python制作缩略图
  3. linux 文件解压 压缩
  4. 阿里云容器服务中国最佳,进入 Forrester 报告强劲表现者象限
  5. [leetcode]@python 85. Maximal Rectangle
  6. 常见的加密算法 (转自: http://blog.chinaunix.net/uid-8735300-id-2017079.html 本文摘自网络 ,如有雷同 请及时联系我 谢谢)...
  7. php signature解密,openssl RSA非对称加密、解密、签名、验签
  8. python3安装mysqlclient_Python3 安装mysqlclient错误处理(MAC版)
  9. linux下kegg注释软件,KEGG功能注释工具 KofamKOALA 安装与使用
  10. SecureCRT Application 已停止工作
  11. springboot前后端分离后权限原理浅谈
  12. 这所美国大学研发出了Wi-Fi充电技术
  13. 伴随矩阵例题_伴随矩阵习题及解答
  14. Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.3.0.RELEAS错误解决
  15. 铁流:浪潮思科合资,高通中国设厂背后有什么故事
  16. CANopen协议本质
  17. 用echarts做如图,x轴左右都是正数的倒立柱形图展示
  18. Cadence OrCAD Capture 四种定位到图纸指定位置的方法说明
  19. 蓝桥杯:魔方旋转问题【高职组】
  20. ElasticSearch十四--ES-index template 和 aggregation聚合分析

热门文章

  1. linux 定时任务关机,使用linux的crontab定时关机
  2. Qt中的TCP/UDP编程
  3. 全息投影餐厅给餐饮市场带来哪些好处
  4. 软考高级网络规划设计师论文:计算机网络安全的威胁因素及防范技术
  5. 最全的西安小吃了,别胡流口水啊!
  6. 【签名验证】WEB API 增加方法签名验证(包含文件上传功能)
  7. Word里面进行了替换操作文档却没有任何反应
  8. 3D海报四周活动动画js特效
  9. android one指纹解锁,小米用屏幕内指纹扫描仪准备了两部Android One手机
  10. 使用bootstarp前端组件集成的table 分页组件 ;简单上手使用实现前端分页功能