-
2009-03-15我为什么讨厌JAVA - [人参总会有牢骚]
我是一个很别扭的人,即使是对手上的工具,也总容易产生喜爱或者厌恶的情绪。具体的说,就是我讨厌JAVA。
这不是一篇技术角度讨论JAVA缺点的日志,我没那个水平,事实上我是一个学不会JAVA的人。如果想从历史和技术角度了解JAVA的局限,推荐看《超越 Java》--虽然我还没看。如果想返璞归真,驱逐复杂,推荐看《轻快的JAVA》--虽然我也还没看。
之前已经说了,我是一个学不会JAVA的人,所以注定接下来只是一个loser的满腹牢骚而已,路过的可以就此打住了。
以下是牢骚,为什么我讨厌JAVA:
1、JAVA太多生造词。
我真的不明白JAVA怎么可以搞得这么复杂,这么多概念,这么多生造词。举个例子,JavaBeans是什么?老实说我现在都没搞清楚这是个什么东西。
JavaBeans are reusable software components for Java that can be manipulated visually in a builder tool. Practically, they are classes written in the Java programming language conforming to a particular convention. They are used to encapsulate many objects into a single object (the bean), so that they can be passed around as a single bean object instead of as multiple individual objects. A JavaBean is a "Plain Old Java Object" (POJO) that is serializable, has a no-argument constructor, and allows access to properties using getter and setter methods. -- en.wikipedia.org
这是wiki的解释,javabeans的wiki页面内容之少让我感觉javabeans这个概念是不是已经淘汰了,只是我在干发闷骚。还是继续讲,字面意思上看javabeans(打字好累,叫JB算了)是一个...遵循某种规则的代码包,里面包含了一些写好代码,可以完成某样功能。我脑中马上浮现的词是:plugin。JB是不是一种类似plugin的东西?为什么JAVA要生造一个JB词?如果JB不是插件它又是什么?
好吧,ruby里面也有生造词,比如rubygems。一开始我也不明白这是什么东西,也是wiki一下
RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a "gem"), a tool designed to easily manage the installation of gems, and a server for distributing them. -- en.wikipedia.org
package、libraries、standard formate,这些词多么清晰。JB不但字面难以理解,连解释也是模棱两可,真不知道JAVA人士交谈JB的时候脑中想的东西是不是同一个东西。
好吧,我知道我对JB的理解肯定错了,我也就这个程度了。那么JB到底是什么?更进一步,Enterprise JavaBeans (EJB) 又是什么?
小结:JAVA生造太多概念用于迷糊企业用户,用于推销产品,达到”火力掩护“的作用。
2、JAVA太多XML
多到什么程度?Ant的配置文件、Hibernate的配置文件、JDBC的配置文件、各种框架的配置文件……以及前面说到的几个东西互相配合的时候要写的粘合配置文件,这都是XML!鼓掌……
XML's purpose is to aid information systems in sharing structured data, especially via the Internet, [2] to encode documents, and to serialize data -- en.wikipedia.org
XML是设计来干什么的?是用来传输结构化数据。JAVA却拿来写配置文件!
用XML用来写配置文件有什么坏处?一是难写,二是难看。XML的设计目的注定了它是一种适合程序读,程序写的标记化文档。我们可以写一套程序来处理XML文件,并且很稳定。但几乎不可能让人来直接打开XML文件来读写(必要时只打开来看看是否按预想的方式工作),这意味着我不能用心爱的VIM编辑器来填写数据库账户密码的配置。JAVA程序员要笑了,这个原始人竟然用编辑器来写程序,他们都用图形IDE来操作,生成XML。这边鼠标点点,那边拉拉菜单。
OK you win!跟了我6年的台式机实在受不了那些个打开就占用300M+内存的IDE折腾,我的手指也不能忍受把原本105个键合作完成的操作全部集中于一个键(鼠标左键)上。鼠标代替键盘有什坏处?手指在105个键上跳跃绝对比食指定在一个键上要舒服,进一步,会有很多操作可以凭借肌肉记忆完成。而每次的鼠标操作都是一个重新寻址的过程,这里是某个JAVA产品的操作视频,可能在某些人眼里这简直是程序员的天堂,但我看来,我想像到一个四肢健全的人像霍金那样只用一支手指在那里点点点……我会疯掉。
小结:JAVA滥用XML文档,想创造让业务人员都能使用的图形IDE,只是又一个两边不讨好的神话。
3、学JAVA的人很少知道为什么要学JAVA
(好导演都拍2,迫不得已我也要写个3了。)
学JAVA的人非常非常多,所以大部分人都是”水货“--每个领域真正的高手人数的数量级不会差多少。
为什么学JAVA?因为师兄说要学,因为公司招JAVA人,“还用说吗?这个世界除了JAVA还有别的吗?”
顺便说那些个什么北大青鸟一类JAVA职业学校能进来本科学院开讲座,系里还要求人人签到,这简直是一种耻辱。
学JAVA的新人真的知道自己为什么要学这个年龄14岁的语言吗?真的知道什么是企业应用吗?什么规模的企业需要用到JAVA那么重量级的东西?
对计算机行业有想法的人,都挑了自己感兴趣、感觉有前途的技术方向去发展了(也包括JAVA),然后其余的都是JAVA。
我为什么会对这个状况有意见?因为如果我也进入JAVA这个队伍,就意味着我要跟这些没主见的人竞争,等我理所当然的胜出之后,我还要管理这些没主见的人!
饶了我吧。

评论
时间不够用。抱头
虽然一直有人问我“学JAVA好不好”。
-w-
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
java的hello world
java是现在企业应用最多的语言,有很多成熟的工具(虽然我觉得都很麻烦)。企业一般认为java最保险,厂商多,程序运行效率高。所以找工作的话java也多些。
= =程序员个人修行的话建议熟悉5种以上语言(将来还要继续增加),如果想只学一门语言找到稳定的工作那将会在10年那门语言过时的时候被裁员……