到底是Java好还是Python好?

2018 年 9 月 26 日 码农翻身

语言的优劣之争是个永恒的话题,有时候一次偶然地“擦枪走火”甚至可能会引发一场铁杆粉丝之间的“战争”。  


也经常有人问我:“老刘,到底是Java好还是Python好? 我应该学习哪个语言?”


我也挺为难的,只好说道: 


Python挺适合入门的,看起来很简单,适合创业团队,可以快速开发,快速上线,快速迭代。适合特种部队的突袭。等到发展到一定规模,动态语言的劣势就会体现出来,维护/重构难度高,特别是我觉得动态语言写的代码腐化速度要比静态的Java要快一些。  


Java呢,语法相对Python啰嗦,表达力要弱一些,开发起来一板一眼,有很多规范,适合集团军的大规模协同作战;有很多著名的框架和类库,性能不错,系统稳定而成熟,是开发大型系统的极好选择。 


他说:“老刘你这是在和稀泥嘛,我到底应该学啥?”


我说:“你应该把注意力放到那些和Java无关,和Python无关,能反映一个程序员水平高低的编程的共性问题。”


举个非常简单的例子,开发中需要实现一个定制的、简单的缓存,如果使用ehcache ,memcached, redis这样的开源系统就太重量级了,经理要求你新写一个,可以支持(key,value)存储,设置过期时间,过期的可以自动清理掉,你能不能快速地实现一个高质量的版本? 


这其中涉及到的就是数据结构和算法、以及线程的知识,和具体的语言关联度很小。  


再比如给你一个需求,你能不能找出其中“概念”,从而设计出类?能不能做好信息的封装和隐藏,定义出良好的接口,让每个类的职责单一而准确? 


Python中有class , Java 中也有class, 但是上述工作却和具体语言没什么关系。你需要做的是利用你的经验,在脑海中做一次思维体操,然后用某个语言工具把他们表达出来。 


有些“概念”比较容易发现,有些“概念”和现实没有直接的对应关系,需要抽象一下才能找到,这就比较考验抽象的能力了。  


可能有人说,我们Web开发都是“面向数据库”编程的,都是基于数据库的增删改查,用不上你说的这些东西。 那如果经理给你一个项目需求,让你完整地设计出表结构来,要求方便后续的程序开发,又要考虑到灵活性和扩展性,你能不能搞定呢?  


在编程中,你发现了重复的代码,那能不能找到一个概念(最终可能由一个类或者函数来表达),来表示这个重复的模式,从而极大地消除重复代码? 


你能否区分哪些是不变的部分,哪些是变化的部分,把他们区分开来,“发现变化,并且封装变化。” 


说到底,本质上还是那个抽象的能力, 这样的例子有很多,这里不再一一列举了。


作为一个程序员要发展,要成长,不可能一直增删改查,不可能一直停留在编程语言的特性上面,争论孰优孰劣


对于做技术的人来说,总有一天,眼光和视野要超越编程语言,进行设计和架构的工作,停止无谓的争论,开始扎扎实实地学习吧。



ps : 中秋活动的获奖名单已经出来了,还没有领奖的赶紧加我的微信onlyliuxin97领奖啊,过期不候,没有中奖的也不用沮丧,本周还有一波更大的福利等着你。


次郞,kang,Fannie,邓明亮²º¹⁸,福尔摩白,Amor丶淺笑,MAR,梁,晴天小猪,Haoz,冷月,柠檬C,豆豆,晓风残月,夜色,Dyoner 旧人,JakeWang,Loongstyleจุ๊บ,天国之影,卷福


(完)

码农翻身,用故事讲解技术本质, 更多精彩文章,请移步《码农翻身三年文章精华

登录查看更多
0

相关内容

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
1年开发经验,25万年薪的1个捷径,98%Python程序员都不知道
机器学习算法与Python学习
7+阅读 · 2018年5月23日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Arxiv
5+阅读 · 2019年11月22日
Arxiv
21+阅读 · 2019年8月21日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
26+阅读 · 2017年12月6日
VIP会员
相关VIP内容
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
相关资讯
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
1年开发经验,25万年薪的1个捷径,98%Python程序员都不知道
机器学习算法与Python学习
7+阅读 · 2018年5月23日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
相关论文
Arxiv
5+阅读 · 2019年11月22日
Arxiv
21+阅读 · 2019年8月21日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
26+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员