我想说我并不是一个激进的人,只是有些喜欢坚持自己认为正确的观点,于是偶尔会表现得有些固执。

我想讨论的是技术的选择。这个世界真的很美好,美好得足以让我们眼花缭乱:我们周围总是存在着太多的选择项提供给我们,这反而是个难题了——虽然这比起没有选择的绝望要好很多,但选择项大多也是一种足以让人发疯的难题。很不幸的是,人多少总是主观的:人习惯于凭自己的想法来判断这些选择的优劣,并由于渐渐地喜欢这种主观判断的方式,所以当做好选择之后,在很长的时间内我们总觉得自己的选择是正确的,认为自己选择的是这些所有选择项中最完美的。

阅读源代码是一个学习编写代码的好途径,我的电脑上目前仍保留着多达超过 2G 的 VB6 源码。那是前几年,当我还在独自努力自学 VB 6.0 的时候找下的。当时的互联网让我感受到一个讯息:真正在用我正在学习的 VB6 做商业软件开发的人似乎并不是很多。我难以接受这样一个现实,因为作为一个我的启蒙编程语言,VB6 陪我走过了好几个年头;在我刚感到有机会好好学习它的时候,我感受到这样一个讯息,实在不是什么好兆头。因此我努力在网上寻找着支持者的言论,聊以自慰。可最后还是不得不接受“VB6 真的正在走出历史舞台”这个现实,硬着头皮学习 C 语言。因为这是趋势,历史发展的趋势,一种不可逆转的发展。到目前为止,虽然对 C 谈不上什么感情,但我至少能够熟练地使用它编写成熟的代码;而且,可能你会觉得我很可笑,而我觉得它并不可笑——我真的放弃了 VB6 体系,连 asp 也不研究了。我真正接受了这样的改变,并从潜意里彻彻底底地完成了一个观念的转变。

讲到我自己的一个例子,并不是做什么卖弄,只是想说明一个问题“我们至少应该用一种开阔的眼光来看待更多的选择”,不要排斥别人的技术,因为也许有一天,你也需要同这些别人一样,要靠这些曾经被你不放在眼里的技术在这个行业生存下去。那么如果在真正懂得对方之前就轻率地选择了错过,这将是多么遗憾可惜的一件事。

事实上,这样遗憾可惜的事却在以我们无法接受的状态上演着。上一次的技术活动中,一位 Microsoft MVP 提到一句话,令我印象深刻:“在我们国家,学习 Java 的人数与真正使用它们 的人数正好相反”。因为我所不了解的原因,在我们国家的高校中鲜有让学生选修 .Net 技术的个例。而事实上,当这些学生走向社会,他们面对的仍是 Microsoft 那个错综复杂的平台:.Net。他们中的一些人因为坚持自己之前的发展理想而放弃这些工作(那么悲剧发生在这些人身上),另一些人为了适应环境只好从头再学 .Net 。

不少对 .Net  开发人员表示不屑的人总喜欢这样描述 .Net 开发人员:“他们只会拖拖控件、填填属性”。对这样的态度,我感到很遗憾。因为事实是,说这些话的人也许不久的将来,他们就需要用到 .Net 来解决他们的问题,或者他们根本就不能真正进入开发领域,而他们也做好这样的心理准备,所以敢这么说。一位 .Net 技术大师在当一位学生给他递上一本 Java 书籍让他签名时,他给学生签了简短而有力的一句:C# is a better Java。我无意于褒扬谁或是贬低谁——我作为一个初学者还远远不具备此资格。只是我作为千千万 .Net  开发人员之一,深深地体会到 .Net  工程(我将这称之一个工程,我想构建这个平台是一个庞大的工程)之伟大。我无意于维护 .Net 技术,我只想提醒一个事实: Windows  在全球占有最多的用户,如果一个产品不能运行于 Windows,这将是无法得到用户肯定的;为了获得更多的用户,我们就必须花更多心思在基于 Windows 平台的开发工作上。这就是软件开发的现实,至少是目前的现实。我们每一个人都必须去接受。

有些人确实能扭转现实,让现实顺着他自己的思路去发展。只是,更多的人不能。更多的人只能顺从现实,以期获得自己生存发展所需的那部分资料。我们都是如此的普通,普通得在人群中我们不会比任何其他人更耀眼,普通得任何其他人都可能超越我们。

以上的观点基于我目前的心理位置,它与另一个位置没有任何矛盾。我从不排斥诸如 J2EE 等基他平台,并且每时每刻都在准备着向这些平台进军。只要微软技术一倒,在他倒掉之前我绝对会成为一个优秀的基于 J2EE 的开发者,或者成为在到那时能真正立足的那种技术的专家。“不要与技术谈恋爱”是我们需要接受的另一个基本观点。我们当前正在使用的技术有一天都会在历史进程中走到它的终点,它们总有一天会被新的技术所代替。要想在开发行业一直走下去,我们需要接受新的观点,接受不同的观点。如果不能做到,结果可想而知:不是你被改变,就是你被抛弃。

软件是一种艺术,当到达架构的层次时,慢慢地可以与具体的工具脱节了,因为软件艺术的精神是与开发工具无关的。这时候,你将会真正理解开发语言作为工具的本质。正是这样的,开发工具并无优劣之分,相信作为像我们这样普通的开发人员都能知晓的开发工具,一定是在全球的范围内早已有了相当的影响的,它在自身擅长的领域早已创造了令世人瞩目的成就。因此,你正在花心思审视的开发工具,你并没有任何资格来评价它,以我看,你最好花更多的时间来学习它,或者早点抛弃它——如果你真看它不顺眼的话,因为你有其他更多的选择。

我只是希望我们不要在真正懂得之前错过罢了。用包容的胸怀来看待这一切,我想某一次当你偶然的一次机会里你用目前的理论去阅读并理解了你正在排斥的技术的一行代码时,你会获得与我一样的惊喜!