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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

到底是Java好还是Python好?相关推荐

  1. java和python哪个好学-学java好还是Python好?

    首先我简单的说下目前的市场发展行情,Java和Python发行时间都有很多年了,但是或许你自己也应该清楚,Python是什么时候开始步入我们的生活,步入我们的眼线的,对,就是近几年,这几年随着培训机构 ...

  2. 新手学java还是python知乎_学java好还是Python好?

    首先我简单的说下目前的市场发展行情,Java和Python发行时间都有很多年了,但是或许你自己也应该清楚,Python是什么时候开始步入我们的生活,步入我们的眼线的,对,就是近几年,这几年随着培训机构 ...

  3. python和java哪个好-Python和Java到底哪个更好?

    某同学问小优:"小优小优,学Java好还是学Python好?" 小优跑去问大神(90度鞠躬):"大神,大神,学Java好还是学Python好?" 大神嫌弃的看了 ...

  4. java好还是python好-Python和Java哪个薪资更高、远景更好?

    运用Python的人越来越多,为啥?人工智能浪潮的兴起与TensorFlow以及爬虫结构的普及让Python有了用武之地:大数据与云计算解决方案的运用也为Python的成功猛推了一把.作为数据科学最盛 ...

  5. python和java一样吗-Python和Java有什么不一样?

    Python和Java作为主要的开发语言,一直深受广大程序员的喜欢.但你要是把他们两个单独拎出来作对比的话,很多人一时不能选择出两种语言哪种好. 今天,我们就从Java和Python这两种语言的语言特 ...

  6. 到底哪些人适合学Python?适合学Python的5类人

    Python作为现在后端编程开发的主流语言,现在越来越被更多的企业广泛应用,Python开发的人才也一直呈现供不应求的趋势,在这种行业的快速发展下,很多人想要成为Python开发的人员.但很多小伙伴想 ...

  7. python和java哪个好-Python和Java哪个薪资更高、远景更好?

    运用Python的人越来越多,为啥?人工智能浪潮的兴起与TensorFlow以及爬虫结构的普及让Python有了用武之地:大数据与云计算解决方案的运用也为Python的成功猛推了一把.作为数据科学最盛 ...

  8. python和java哪个好-Python和JAVA的就业前景哪个好点?

    近两年来,编程语言界可以说是百花齐放.百家争鸣,Java多年来稳坐太师椅,Python后来者势头正旺--对于很多0基础想进入编程行业的小伙伴来说,选择哪门编程语言真的很重要,毕竟这是关乎着未来就业与薪 ...

  9. 现在学java好还是python好,java好学还是python好学

    学Java好还是Python好? 对于新手来说Python更容易上手一些,但是相对而言java的发展情景更好.千锋教育有线上免费Java线上公开课. [更系统全面的学习资料,点击查看] 因为Java是 ...

最新文章

  1. 如何去重一个SQL Server表
  2. Android phone xp 华为3x,3000mAh大电池 华为荣耀3X续航能力实测
  3. C++轮子队-第三周(需求改进原型设计)
  4. 如何从中级Java程序员过渡到高级Java程序员
  5. 数组----数组的拷贝、排序、遍历、引用,console交互
  6. 如何使用Linux重置Windows密码
  7. 编程范式之rotate操作
  8. mysql字段加密存储过程_数据库:加密存储过程
  9. java 万年历_java实现万年历
  10. 计算机科学与技术参考论文题目关本科,优秀计算机本科论文题目推荐
  11. 计算机考研英语资料推荐,2016考研计算机专业备考资料推荐
  12. java web服务器热部署_Tomcat服务器热部署教程_如何实现tomcat热部署
  13. GBase 8a开启防火墙安装集群添加端口策略
  14. matlab 图像范围,Matlab对数范围colorbar图像c
  15. Dx unsupported class file version 52.0
  16. 【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )
  17. 戴尔7060安装win10系统教程
  18. 读书笔记-哈佛大学极简经济学2
  19. 解密excel工作表打开密码
  20. 谐振电路的品质因数(Q值)zz

热门文章

  1. 海西数据获评优秀服务器租用服务商奖项
  2. LAMP 系统性能调优:第2 部分: 优化Apache 和PHP-学习笔记
  3. android的NDK和java进行本地socket通信
  4. 2010 eWEEK 年度产品
  5. expect spawn、linux expect 用法
  6. Flask实战2问答平台--导航条
  7. python自动抢红包软件_快过年啦,还怕手速慢,我用Python自动抢红包!
  8. zookeeper平滑升级_zookeeper从3.4.8升级到3.4.14
  9. html 表格_【HTML】3 表格标签
  10. 8种常用图像处理算法