Java程序员都是有问题的。我已经使用Java编程10多年了。同时,我有很多其他语言的开发经验,比如C#、C、C++、Python、Lua、Objective-C等,我认为这些经历对我对Java程序员的认识起到了巨大的作用。帮助。许多人说Java是一种糟糕的编程语言。我不同意。Java语言有它自己的缺点,但我认为很多时候,当你看到Java在某些地方让很多人不高兴时,这不是Java语言本身的问题,而是它被错误地使用了。这些年来,在我看到的各种Java代码中,我发现最大的问题就是写代码的人执着于把自己当成架构师。他们非常喜欢这个。当我阅读他们的代码时,我经常发现代码与其说是为了真正解决一个问题,不如说它更像是一个计划用来解决问题的蓝图模板。两者之间没有细微差别。您会看到具有深度继承的抽象层和一堆臃肿的样板代码。面向对象催生的子类超生现象不可估量。你不能一眼就看到和理解代码做了什么——你需要更深入地挖掘,你需要理解它的整套滥用术语和折磨词汇(“AbstractAdapterFactory”),你必须把自己看作是一个系统部分。我不记得上次看到不是这种情况的Java项目是什么时候了。Java王国里的代码总是这样收场的原因有很多。Java语言本身就承担了一些责任。Java平台的API就是上述这些问题的典范。因此,善良的程序员遵循标准类库中体现的编码标准和风格,并把它当作一种通用的良好编程原则,一下子误入歧途。.Java语言还给程序员强加了一种高级的形式主义和冗长的语言,以至于***你不得不习惯这种风格,而当你看到其他语言简洁的语法时,感觉它们毫无用处。衣服裸体——这就是“斯德哥尔摩综合症”面向对象的流行部分是由于这种心理效应。越来越多的程序员开始退后一步,从整体上审视Java,他们发现面向对象作为一种编程范式真的非常糟糕。但是,Java最大限度地植根于面向对象模型,没有面向对象,Java就寸步难行。即使在今天,你仍然可以看到大学里的编程课程严重偏向于面向对象,大量的课程都是用Java教授的,这比10年或5年前要普遍得多。尽管Java语言在企业软件开发中非常流行和广泛采用,但这无助于提高Java编程的质量。老实说,您在各种企业产品中看到的许多Java代码都是由非常低素质的程序员编写的。非常糟糕的是,这些问题不仅体现在代码中,还体现在整个Java生态系统中。无论你使用Java单元测试工具、依赖管理工具还是mocking框架,即使是一个小的Java程序也无法逃脱周围庞大的系统。Java程序员无能为力——让他们开发一个小功能,你必然会看到有15层继承的类工厂(factory)的出现。今天,我正在学习Gradle框架,显然是因为它最近在Android开发社区中风靡一时。Gradle来自Java世界,所以它继承了我上面提到的Java存在的所有问题。正如TimBray最近抱怨的那样:“我的浏览器打开了Gradle文档中的一个页面:第50章。依赖管理。它有63个子章节,分为10个一级章节,这是第50个章节,文档有一个共65章(含5个附录)。Android——如果除了开发企业软件的人之外还有人关心Java,那一定是因为它——它沿着Java的老路,走得更远。你会习惯性地发现,当你阅读一页AndroidAPI文档时,你根本不知道它在说什么。当然,最终你搞清楚了,还需要绕路搞清楚其他17个类。什么?这对你来说太多了吗?你显然没有学习Java系统API的毅力。你会成为一个失败者。Google的Android工程师忙于构建出色的框架来解决实际问题。我是一名Android程序员,我讨厌Java。它伤害了我。英文原文:JavaDevelopers翻译链接:http://www.techug.com/java-developers
