0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编程语言Java和Python对比哪个比较好

我快闭嘴 作者:工程师李察 2018-10-06 15:27 次阅读

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102989
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33054
  • python
    +关注

    关注

    51

    文章

    4671

    浏览量

    83457
收藏 人收藏

    评论

    相关推荐

    C初学入门,请教用哪个版本的Linux会比较好

    如题,还是大一学生,刚学C语言,老师要我们自己装LINUX熟悉下LINUX,这样能提高我们C语言能力。请教用哪个版本会比较好
    发表于 03-21 10:27

    新手学习,先从哪个板块开始比较好

    新手学习,先从哪个板块开始比较好
    发表于 05-01 15:09

    ORCAD和PADS,哪个画原理图比较好

    ORCAD和PADS,哪个画原理图比较好
    发表于 11-25 22:38

    新手报到,新手学习区哪个比较好

    各位大大们,新手报到,请问新手学习区哪个比较好
    发表于 09-23 22:46

    流量传感器哪个厂家的比较好啊?

    请问哪个厂家的流量传感器比较好啊,就是精度高,采样频率高的。
    发表于 01-07 10:48

    请问常用的EDA软件是什么,哪个比较好用?

    常用的EDA软件有哪些,哪个比较好用呢?
    发表于 03-26 07:56

    请问学PCB用哪个软件比较好

    我看这里好像没有 protel 软件啊? Altium Designer这个我没接触过,这个好学吗?现在都用哪个比较好一点?
    发表于 10-11 04:36

    请问C语言和汇编语言进行单片机设计那个比较好

    大家根据自己切身学习和工作经验,谈谈对单片机的程序设计,C语言和汇编语言哪个比较好用?各有什么优缺点?
    发表于 03-11 04:48

    Python为什么不是国内的主流编程语言呢?

    Python这么好用,为什么不是国内的主流编程语言呢?感觉还是用C和java比较多……然而自己只会Py
    发表于 06-01 05:55

    五种基于PON的FTTX接入对比分析,哪个比较好

    五种基于PON的FTTX接入对比分析,哪个比较好
    发表于 05-27 06:39

    后端选择 java, 还是 python?

    这个问题,其实是仁者见仁智者见智,每一门语言都有自己擅长的一方面,并不能说具体是哪一种语言比较好。首先说 javaJava 语言是一种面相对象编程
    发表于 09-26 14:07

    单片机用哪个mjpeg视频解码库比较好

    单片机用哪个mjpeg视频解码库比较好,用在stm32f429上面,哪个库解码比较好
    发表于 09-21 06:20

    MSP430用哪个开发环境比较好

    MSP430用哪个开发环境比较好
    发表于 11-07 06:09

    最流行的编程语言javapython

    世界上最大的编程相关书籍出版商Packt Publishing进行的市场研究显示,JavaPython是当今最流行的编程语言
    发表于 09-26 10:22 0次下载
    最流行的<b class='flag-5'>编程</b><b class='flag-5'>语言</b><b class='flag-5'>java</b>,<b class='flag-5'>python</b>

    KeilMDK和IAR两款ARM开发工具哪个比较好

    KeilMDK和IAR两款ARM开发工具哪个比较好(单片机内部结构示意图)-KeilMDK和IAR两款ARM开发工具哪个比较好                 
    发表于 09-30 11:07 7次下载
    KeilMDK和IAR两款ARM开发工具<b class='flag-5'>哪个</b><b class='flag-5'>比较好</b>