令人呕吐的Java DK
一直以为自己能够调试所有的程序,因为我一直以能够不依赖IDE调试,用一组assert,printf就能改掉别人花几个礼拜也没办法track down的东西,然而今天JDK让我折服了,用Java写的程序,如果没有IDE,简直就不具备可调试性!
最后终于用println把程序调通了,总结几点:
0. Java的命令行提示非常令人费解,如果之前完全不了解,他的提示根本不可能让你想象到「可能是CLASSPATH没设对吧」?
- 异常必须手工地用println一点一点地抠,想知道局部变量的数值?对不起,连dump你都弄不到。
- assert的用法非常诡异,没错,它有assert,但是想要用?看完文档也别想知道。
我很遗憾自己在1997、1998、1999三年居然还用过Java,居然还向别人推荐过Java,居然曾经天真地以为这是「未来的语言」,不,它不会是,因为Sun不曾考虑过开放原代码团体的利益,也不曾考虑过开发人员的感受,他们只想赚钱,Sun的首席科学家甚至说不清楚.net和Java最重要的区别在哪儿,只会用「.not」这样似是而非的说法去挖苦竞争对手。而微软公司,则是在研究了Java的大量不足之后推出的.net。
态度决定一切。谁都有理由去诅咒竞争对手,但是,这之后,他们对自己的产品做了什么改进呢?微软的企业文化是,买第二的,把它变成第一,你可以不喜欢微软,你可以不喜欢Bill Gates,你可以说微软打压Open Source,但这一切一切都只是无聊的意识形态之争,微软拉来了大量的人才,投入了大量的资金,没错,他们是赚了不少钱,他们也许确实是垄断,但是谁能说这些是他们不应该得到的呢?谁能说他们在阻碍技术的进步呢?正如微软的研究院允许研究人员公开地发表自己的成果,而Sun居然连下载Java还需要签署一份保密协定一样,我看到了很多微软对计算机科学的贡献,而Sun在最近几年公开的成果可以说是寥寥无几。语音技术?数字图像处理?反垃圾邮件?编译技术?甚至Sun的传统强项——操作系统和硬件,最近几年的成果也可以用凤毛麟角来形容。
为了生存我会继续研究类似Java这样非常*t的技术,但仅此而已,我不会向任何人说它好,因为它差的太远,它顶多是一个玩具,Sun的马虎态度让他们自己的网站——当然是使用J2EE——频繁地出现Exception。这样一个不思进取的公司,只能被竞争无情地淘汰。