资讯专栏INFORMATION COLUMN

Java很傻,但是IDE很聪明

jeffrey_up / 2795人阅读

摘要:执行效率很重要,但是在很多情况下,程序员的效率更重要的,而且语言的执行效率是可以发展的。,但是很牛逼,可以了解一些上的高级语言,比如。很聪明最大的好处,就是足够成熟,市场占有率高。所以说,很傻,但是很聪明。码农界有很多圣战,。

对于编程 语言来说,什么是生产力?我觉得,更高的抽象层次就是生产力。 执行效率很重要,但是在很多情况下,程序员的效率更重要的,而且语言的执行效率是可以发展的。该优化的时候,我们再来考虑优化的事情。 对于语言来说,最重要的是把程序员脑子里的东西,用最高效的方法记录下来。

C语言比机器语言有更高的抽象层次,所以我们认为C语言比机器语言有生产力。 Java比C语言更抽象,所以我们认为Java比C更有生产力。 逐渐的,我们发现,Java已经满足不了生产力的需求了。

在编程 语言百花齐放的今天,我们发现各种新出的神奇的语言。几乎所有了解过(更)高级语言的人都会说: 我靠!还能这么写?我吭哧吭哧在这里敲半天,人家一句话搞 定了? 在人家看来,我就是一个人肉的编译器,手写中间语言。。。

Java抽象层次太低,导致表达能力太弱。别人一句话的事情,在你这里要讲半天。 Java本身就有太多的重复(duplication),而且缺少一些高级特性。 虽然也在发展,比如说foreach,比如说annotation,这都提高了抽象层次。 但是发展的太慢了,这有很多原因,向下兼容性应该是最主要的一方面。

总之, Java不是一个生产力语言,表达能力太弱。 而作为Java程序员,确实也没啥语言上的尊严了。那Java程序员怎么办?如何保持自信,树立正确的人生观价值观。 或者说,Java程序员如何提高自己的抽象层次,少做脏活累活?

学习更高层次的抽象

了解一些其他高级语言,知道什么样是好的。 别人一句话信息量太大了,我们要先能听懂,知道人家说什么,知己知彼(最重要的是知道自己有多搓)。 Java sucks,但是Jvm很牛逼,可以了解一些Jvm上的高级语言,比如Scala、Clojure。了解函数式编程、闭包、并发等等。 语言只是表达思想的一种方式,应该更关注你想表达的东西。 到了一定高度以后,新学一种语言,只要了解一下基本发音,就能说个八九不离十,甚至比那种语言的Native Speaker还说的好。

IDE很聪明

Java最大的好处,就是足够成熟,市场占有率高。 Java程序员的需求,就是市场的需求。Java拥有有最成熟的IDE,一群的商业公司想方设法取悦Java程序员。

Java程序员的苦逼之处在于,他们做了很多编译器的活。有个折衷就是,可以把部分人肉编译器的活,交给IDE。 让IDE充当编译器,把你告诉它的话,编译成中间代码,也就是Java。 虽然别人一句话的事情,我这边还是要说十句。但是现在我们可以告诉IDE三句话,让IDE转成十句。 手打一个基本的循环花了10多秒,用IDE只需2秒。

如果语言是把人们心里所想的东西表达出来,那么IDE语言其实也算一种广义上的语言了。 而且IDE语言还有个好处就是,它与Java之间足够平滑,完全的无缝。

我们这样分析一下抽象层次: 人脑 > IDE等输入设备 > 编程 语言(Java) > 机器语言or虚拟机上的机器语言(bytecode)。 人脑是最高级的,想出一个想法只需要一瞬间, 但是转化成编程语言,则需要很大的精力。人脑和编程语言之间有一个鸿沟。 而一个足够智能的输入设备,可以缩小这个鸿沟。 IDE语言把很多重复琐碎的操作,设计为原子操作。你仅需要考虑IDE的原子操作便可以了。 不仅仅减少敲击键盘的次数,而且可以减少你考虑的细节,提高你的抽象层次。

所以说, Java很傻,但是IDE很聪明。把人肉编译器的工作交给IDE吧,体验被伺候的感觉。

用好hot key

能不用鼠标尽量别用,前提是有一个好的IDE(eclipse很难做到)。

用好snippet

不再手写for int i = 0; i < arr.length; i++,而使用itar + Table。

用好refactor

先写new Object(); extract variable,自动生成Object obj = new Object();而且用好refactor,对写好Clean Code作用最大。

用好quick fix

int a = 1, b = 2; 直接写 int c = add(a, b); 然后quick fix,让IDE补充参数和返回值。

我换到IDEA也不久,很多想法都很初级,这没关系,熟练使用IDE需要大量的练习。 音乐家每天在家苦练弹钢琴一样,我们码农其实也应该花时间磨练自己最基本的技能。

就像武侠小说中的武功招式一样,招式其实就是在一些特定场景下的一系列动作。 比如说对手在我后面距离两米,我转身175度,使用80%的内力斜踢右脚,就可以一招致胜一样。 武功招式把这一系列动作凝练成一个名字。高手过招,过的是原子操作,细节啥的,都不需要考虑。 甚至有的武侠小说里面高手可以打嘴炮,最后还输的心服口服。这就是层次。

我经常做一些TDD(Test-Driven Development)的kata, 比如说一个StringCalculator。 学习这个做法来源于《Clean Coder》 (这本书对我影响非常大,最大的一点估计是程序员每天工作11小时,8小时给公司,3小时给自己)。 在练习中不断的精简每一个动作,每一个动作都做到无可挑剔,并和自己的IDE完全融合起来,找到一个最短路径。 这样,我们在实际工作中,技由心生,砍瓜切菜,攻城跋扈。

Intellij IDEA是一款好产品

最后回到主题, 我想说,作为一门广义上的语言来说,IDEA设计的很好。 原子操作的设计,快捷键的控制等等,真的是在用心的做一款(能赚钱的)产品,想码农之所想。

之前发过一篇黑Eclipse的文章说,Eclipse没有Preference的快捷键。 我指的是没有“默认快捷键”,可配置不是一个好的挡箭牌。 设计快捷键需要非常强的规划能力和一致性,而大部分程序员都没有这个能力和精力(折腾vim自定义快捷键超过10小时,而且不满意的同学请举一下手)。 一般程序员需要的是一套优良的解决方案+可配置。

还有一个很重要的原因,我喜欢暗色背景。 就像在烈日下搬了一上午砖的民工期待一片云彩那样,我希望能有一个完美的暗色主题来对得起我四百度的眼镜。 曾经折腾Eclipse的Editor暗色背景插件(只有Editor区域,其他区域不行),发现与各种Diff工具不匹配(Diff工具没有暗色背景,直接用深色作为高亮,瞎了),各种不爽,最后又换回来。 一下午过去了,你说啥,生产力?几乎为零。

码农界有很多圣战,Linux or Windows、Vim or Emacs、Eclipse or IDEA。 码农一般都是最懒的人,当他知道有另外的工具可以以一种更懒的方式完成自己现在的工作。 他会心向往之。这些圣战其实不仅仅是口水战、打嘴炮,往往代表了码农们对生产力的思考。

我觉得评价两个IDE哪个好用,这个一般没有定论,很主观。不过我觉得有一个方法,让某一个人练熟在两个IDE环境下的kata,看他如何做到路径最短,自己写的最爽。从这个标准来看,我站在IDEA这边。

码农真是容易满足,不得不说,最近换了个IDE,感觉自己幸福指数都提升了不少。 我仅用了一周的IDEA,就已经变成一个Eclipse黑。当然了,鼓励竞争,谁家产品好咱用谁家,后面E家好用咱再换回来。

关于作者

李先Loki,网易惠惠网工程师。

via 伯乐在线

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69773.html

相关文章

  • 1. 认识 Java 程序【连载 1】

    摘要:是什么是一种计算机编程语言,年詹姆斯高斯林等大神发明的一种编程语言,至今发展多年,应用非常广泛,使用者超级多。能干什么既然是一种计算机编程语言,自然它就是用来开发程序的。比较官方的简单定义程序是数据结构加算法。 showImg(https://segmentfault.com/img/remote/1460000012599260?w=900&h=500); 序: 从此开始,计划出一个...

    xiaowugui666 评论0 收藏0
  • 3. 第一个 Java 程序 - Hello World 【连载 3】

    摘要:需要注意的地方输入法状态调整为英文状态代码的缩进不要忘记分号下面图片标注内容。语句语句是程序最小的一个执行单位,像一个指令,程序中,必须使用一个英文分号结束一条语句。建议,第一个简单的程序,我已经详细的为你做了演练与解释。 在上一篇文章 【[准备编译环境】]()中我们完成了 Java 编译环境的搭建,这篇文章内容主要是来教你怎么开始编写第一个 Java 程序,并运行它。 分为两个步骤,...

    shevy 评论0 收藏0
  • 【Copy攻城狮日志】借助Taro暴改Nideshop实现电商支付宝小程序雏形

    摘要:接下来,在支付宝小程序开发者工具中打,不出意外能跑起来一个电商支付宝小程序雏形。地址以上是我这个攻城狮对使用转换原生微信小程序为支付宝小程序的一次微不足道的实践。 showImg(https://segmentfault.com/img/bVbnCCN?w=1818&h=931);↑开局一张图,故事全靠编↑ 从一个需求说起 作为底层的程序猿,哦不,我连猿都算不上,混的好的叫码神,混得一...

    gnehc 评论0 收藏0
  • 如何正确学习JavaScript

    摘要:然而,虽然先生对无所不知,被誉为世界的爱因斯坦,但他的语言精粹并不适合初学者学习。即便如此,在后面我还是会建议把当做补充的学习资源。但目前为止,依然是学习编程的好帮手。周正则表达式,对象,事件,阅读权威指南第,,,章。 既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛...

    canger 评论0 收藏0
  • 一行代码蒸发了¥6,447,277,680 人民币!

    一行代码蒸发了¥6,447,277,680 人民币! 现在进入你还是先行者,最后观望者进场才是韭菜。 美图董事长蔡文胜曾在三点钟群,高调的说出了这句话,随即被大众疯传。 在他发表完言论没多久,2月美链(BEC)上交易所会暴涨4000%,后又暴跌。尽管他多次否认,聪明的网友早已扒出,他与BEC千丝万缕的关系。 showImg(https://segmentfault.com/img/remote/1...

    booster 评论0 收藏0

发表评论

0条评论

jeffrey_up

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<