Java程序员是有问题的。我使用Java编程已经有10多年的历史。同时,我还有过大量的使用其它语言开发的经历,比如C#, C, C++, Python, Lua, Objective-C等等,我认为这些经历在对我认识Java程序员的问题上起到了巨大的帮助。很多人说Java是一种很糟糕的编程语言。我不同意。 Java语言有它自己的缺点,但我想,很多时候,当你看到Java在有些地方让人很多人不爽时,那本质上不是Java语言的问题,而是它被错误的使用。
这些年来,在我见过的各种Java代码中,我发现这最大的问题是,写代码的人痴迷于把自己当作架构师。他们很喜欢这样,在我阅读他们的代码时,经常会发现这 些代码与其说是去真正的解决一个问题,事实上更像是为了解决一个问题而规划的一个蓝图模板。这两者之间并不是细微的差别。你会看到继承很深的抽象 层和成堆臃肿的样板式的代码。由面向对象而诞生的子类超生现象无以复加。你根本无法一眼看明白、理解这些代码是干什么的——你需要一层层深入 挖掘,你需要理解它的整套滥用的术语和折磨人的词汇(“AbstractAdapterFactory”),你必须要把自己当成系统的一部分。我已经记不 起来上一次看到一个不是这种情况的Java项目是什么时候了。
导致在Java王国里代码最终总会变成这样的原因有很多。Java语言自身要 承担一定责任。Java平台的API就是上面说的这些问题的典范,于是,善良的程序员们沿袭标准类库里体现出来的编码规范和风格,将之当作通用的好的编程 原则,一下子就误入迷途。Java语言还会对程序员强迫施加一种上层 的形式主义和啰嗦,以至于最后你不得不习惯了这样的风格,当看到其它语言的简洁语法时,反而感觉就像它们都是没穿衣服的裸体——这就是“斯德哥尔摩综合 症”(译注:来源于1973年发生于此地的一次银行抢J案中,一个人质浪漫地被她的劫持者吸引住了)。
面向对象的流行部分原因也是这种心理作用造成的。有越来越多的程序员开始退后一步用整体的眼光认识Java,他们发现,作为一种编程模式,面向对象 真的是相当的糟糕。然而,Java是最大限度的根植于面向对象模式,如果没有面向对象,Java寸步难行。即使是今天,你仍然能看到大学里的编程课程严重 的偏向面向对象,大量的使用Java授课,相比起10年前、5年前要普遍的多。
虽然Java语言非常的流行,在企业软件开发里被普遍的采用,但这一点都无助于Java编程质量的提高。我坦白的说,你在各种企业产品里看到的大量的Java代码都是由非常低质量的程序员写出来的。
非常糟糕的是,这些问题并不是只体现在代码上,而是在整个Java生态系统上也是如此。不论是你使用的Java单元测试工具、依赖关系管理工具,还 是模拟框架,即使是很小的Java程序,你也逃离不了它周边庞大的系统。Java程序员无能为力——让他们开发一个小功能,你必然会看到一个继承15层的 类工厂(factory)的出现。
今天,我在学习Gradle框架,很显然是因为最近它在Android开发社群里很火。Gradle来自于Java世界,所以它继承了上面我说的所有的Java所具有的问题。正像Tim Bray 最近抱怨的:
“我的浏览器打开的是Gradle文档的一页:第50章.依赖关系管理。它有63个小章节,划归在10个一级章节下,这是第50章,文档一共有65章(包括五节附录)。”
Android——如果说除了那些开发企业软件的人,还有人会在意Java,那一定是因为它——它沿袭Java的老路,走的更远。你会习以为常的发 现,在读一页Android API文档时,你根本不知道它究竟是在说什么。当然,最终你会弄明白,你需要绕道弄清楚其它17个类才行。什么?这让你吃不消?你显然不具备学习Java 系统API的百折不挠的精神。你会变成一个Loser。
谷歌公司里开发Android的工程师忙于构筑伟大的系统框架,没有时间解决真正的问题。
我是一个Android程序员,我讨厌Java。它让我很受伤。
相关推荐
Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历...
《Java程序员面试宝典》主要内容简介:目前许多开发者对Java语言及其底层原理掌握不牢固,在面试过程中经常漏洞百出,无法取得好成绩。而招聘单位为了得到高素质的员工往往使出浑身解数,采用各种形式的面试考察求职...
java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...
Java程序员在求职过程中,一份优秀的简历是至关重要的。下面我们将详细探讨如何利用提供的"JAVA 个人简历模版"来创建一份吸引人的Java程序员简历,并理解其中包含的关键知识点。 首先,标题"java程序员面试简历 ...
【JAVA程序员简历模板】 在创建一份专业的JAVA程序员简历时,首先要明确的是,这份文档将是你在求职市场上的“名片”,它应该清晰、准确地展示你的技术能力、项目经验和教育背景。以下是一个详细的模板,帮助你构建...
【Java程序员转正知识点】 1. **自我介绍**: 在转正答辩中,自我介绍是展示个人背景和技能的关键环节。作为一名Java程序员,应当包括自己的教育背景、编程经验、项目经历以及对Java语言的理解。 2. **技术成长**...
Java 程序员发展前景 Java 程序员发展前景是当前 IT 行业中最热门的话题之一。随着 IT 业的发展,java 程序员的职业前景也变得日益光明。根据最新的职业排名,软件开发专业是最热门的十大职业之一,而 java 正是...
根据提供的文件信息,我们可以推断出这是一本关于Java程序员面试和笔试准备的书籍,作者为何昊。本书可能包含了大量关于Java编程语言的基础知识、高级特性以及与面试相关的技巧和策略等内容。下面将对可能涉及的重要...
Java 程序员职业规划 Java 程序员职业规划是指 Java 程序员如何规划自己的职业生涯,使自己在职业道路上更快速、更自信地发展。本文将从 Java 程序员职业规划的几个方面进行详细的介绍。 一、 认识自我 在职业...
java程序员个人简历.doc JAVA软件工程师简历范文.docx Java软件开发工程师个人简历模板.doc 个人简历(示范案例).doc 应届生Java开发个人简历.doc 非常经典java求职简历(三套-含项目介绍).doc 高级Java工程师架构师-...
### Java程序员的职业发展路径 #### 一、Java程序员的基础技能要求 Java程序员作为软件开发领域的重要组成部分,在工作之前需要具备一系列的基本技能与专业知识。根据给定文件中的描述,我们可以总结出以下几点: ...
Java程序员上班那点事 Java程序员上班那点事 Java程序员上班那点事 Java程序员上班那点事
对于想要踏入或正在走在这条道路上的Java程序员来说,理解并经历一个完整的学习和发展过程至关重要。以下就是一篇关于“Java程序员的成长历程”的详细解读。 首先,Java初学者通常会从学习基础语法开始,包括变量、...
《Java程序员宝典》是一本全面涵盖Java编程技术的电子书,旨在为初学者和有经验的Java开发者提供深入的指导。这本书详细介绍了Java语言的基础、核心特性以及高级概念,帮助读者掌握成为一名优秀Java程序员所需的技能...
Java程序员成功面试秘籍.pdf
Java程序员在年中或年终述职报告中,通常需要展示过去一段时间内的工作成果、技术提升、项目经验以及未来规划。这份“Java程序员年中、年终述职报告PPT模板”旨在帮助他们高效地准备这类报告,通过专业且有条理的...
根据给定的信息,“Java程序员上班那点事儿”这一标题与描述指向了关于Java程序员日常工作的一些常见情况、挑战或趣事等内容。尽管提供的具体内容部分没有直接给出相关知识点,但结合标题和描述,我们可以围绕Java...
【Java程序员年终总结】 作为一名Java程序员,我在2010年的经历让我深刻理解到学习的重要性。从初入职场的新鲜人,到能在公司独立完成项目的开发者,这段历程充满了挑战和成长。2010年,我有幸加入北京联合兴辰公司...
《Java程序员》 本书对于即将从事Java职业或初步从业的程序员来说是一本难得的好书。从生存、制胜、发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像。本书中既有在公司中的生存技巧,又有高手达人...