开发难度低,无需智商测试

copy&paste

会传染烂设计

设计模式大补丸

重构 大杀器

工业化大生产

它太容易了,简单好学,超健壮:静态类型,gc 保驾护航

开发难度降到前所未有的低:靠谱的的运行环境(JVM)和层出不穷的自动工具(太TM多)双双加持

对着文档东抄抄西改改,基本编译过,Eclipse没抱怨什么也就差不多能用了

C, 比 Hello World 复杂一点的程序,就要开始考虑一大堆设计问题:数据结构,内存管理,句柄谁关闭指针跑哪了等等等等,设计考虑只要有一点没到位,结果通常只有一个——直接挂掉

JS 难度也比 Java 高,人说 Javascript 是 copy&paste 语言,Java 才是正宗

js 工程只要稍微大点,就不得不考虑代码规范、设计模式约束之类,不然代码就是一滩扶不上墙的烂泥

而 Java ,再庞大的代码库都能一直 copy&paste 下去

C/JS 这种险恶的开发环境下生存下来,做出能用的东西,水平也差不到哪去(开发语言可以作为一个水平筛选器)

Haskell 开发强,不见得全是语言好,而是它的类型系统和 monad 给团队成员做了个强度不低的智商测试

Java 用优异的语言特性和工具生态,把门槛设置得无可再低

低要求必然造成低水平的程序员入行,低水平的程序员必然造成烂设计,而烂设计是会传染的

社区热衷的“设计模式”思路:把模式背熟了会套用了,也就会做设计了

把有的没的都塞进对象里就面向对象编程了的假象

如果天天胡写乱改不思进取还让程序员内心有一丝不安的话,设计模式大补丸的横空出世让他们彻底放了心:看几本设计模式书就能习得N年设计功力,“设计”也终于变得如此廉价

一个好的架构师分析项目,采用 DI, 精心定义接口和 DI 使用的范畴

在一个看过几篇文章试用过Guice就言必称DI的新手看来也不过尔尔,甚至还会嫌不够标准和纯粹

烂设计固然不会给项目带来什么好处,但还是拜 Java 的健壮性所赐,如此胡闹,代码还是能跑下去,既然能跑,还有什么可抱怨的?

好设计还是会闪光的,更容易维护,隔好久都不用改动

烂设计即使堆砌上了无数设计模式,过不久就会被发现不再合用

最后一个大杀器“重构”出场:工具太好用了,重构太容易了

这个模式不 work, 下次重构时就做另一个模式咯…… 没人会去想,早干嘛去了?如果当初设计做得好,为什么现在要重构?

不过没所谓了,反正重构很容易嘛,而且这么有追求的行为,说出去也好听。真正的设计功力,再次被忽略了

今天的Java, 有强大可靠的核心基础,有大量标准化的规范、模式,一群不需要什么经验的代码工人就能做出基本符合预期的软件来

这就是工业化大生产:产品不够漂亮精致,但便宜量又足,规格标准肯定能用

工人水平比专家差一大截,但规模优势吞噬一切

他们不需要大师:大师能做到100分,一群工人可能只能做到60分,但对世界上大多数人,60分足够了,更何况工人一抓一大把,大师却可遇不可求

我还是把自己当成一个手艺人,所以我讨厌Java