路线
首先我要来谈谈面对技术的心态,再来说说我选择技术的原则,最后就是回首过去、验证现在、展望未来。
我不愿意在这里自命清单,高谈阔论地讲一些大道理。但是大家必须了解,抬面上的这些技术没有什么好与坏,我们顶多只能说某些是过时的,某些是符合现今流行架构。遗憾的是,不少人在技术的选择上总是有门户之见,就拿 .NET 与 J2EE 来说吧,你是因为讨厌微软才选择 J2EE,或者说您是因为超爱 Bill Gates 才非微软技术不用呢。我要说的是,检视诸项技术时,最忌讳的就是 “成见” 以及那股莫名的 “情绪”,或是说 “情节”。当您有了这样的心态,如何以客观的心情去评量各种技术呢?
我从来不否认我与微软有紧密的关系,也不否认我这近二十年来用的都是微软的技术,但是我从来不否定与批评其他厂商的技术架构。这不仅是一种气度,也能帮助我以客观的角度来学习,毕竟知己知彼才能百战百胜。
我常常看到有许多人喜欢比较 .NET 与 J2EE。说句实在话,这两种技术路线都有极深的内涵,单单看了技术架构,稍微用了点其中的技术进行开发,就足以评断两者的优劣吗?这未免太自以为是,大放厥词。我投注了极大的心力研究 .NET,才比较认为能够稍微随心所欲地掌握其内涵,也才能够真正体会其中的优点与缺点。我相信同理之于 J2EE。问题是,我时间有限,精力有限,能力有限,不可能同时研究这二者,既然如此,何德何能去评论呢?
其实只要您真正投入,掌握技术的精要,自然能将其特性彻底发挥,进而开发出优质的应用程式。如果您学东西总是半调子,那即使您用的是什么伟大的技术,写出来的东西也是平淡无奇,甚至上不了抬面。
我选择技术的原则非常简单,第一看技术的进入障碍;第二看技术有没有未来性。所谓进入障碍,当然就是跟我目前的技术能力是不是有延续性,是不是能够有良好的衔接,这是为了确保我过去投入的心血不会轻易付诸流水。就未来性而言,也就是看技术有没有前景,说得露骨点,或者应该说有没有 “钱” 景,毕竟技术必须叫好,也要叫座,才是好技术,那种孤芳自赏者,通常没有好下场。没错,这两个原则有时候是彼此相冲突的。放诸技术的演进史,有时候会因为某种革命性架构与装置的推出,导致引发大跃进式的演进。在这种时候,未来性的考量当然更胜于进入障碍。
其实在许多时候,技术(或是说技术路线)的选择也没有那么难,因为市场可能已经帮您做了决定。如果真的无法自行判断,就跟着流行潮流走吧!
技术演进的脚步可是从来没有停歇过,而且只会愈来愈快。身为此行业的一份子,有时候感觉有如过河卒子,没有退路,只能拼命地往前冲。不过进入这一行,我是无怨无悔的。同样的,在技术的路上,我也是无怨无悔的。如果时间回到五年前,我会改变我的决定或作为吗?答案也是一样,无怨无悔。如果真的有错,那就是错在我进入 .NET 的脚步还不够快,曾经一度的观望,让我后来、以致于现在,必须耗费更多的心力去追赶。
当初一度认为,在网际网路的风潮过后,无线装置应用程式的开发将形成一股热潮。不过就实际的统计数据而言,这方面的开发人口所占比例仍然极小,并不如我预期,不过这或许也代表还有很大的成长空间。另外呢,我常常觉得电脑过于冰冷,没有人性化,如果开电脑能像开电视一样那么快速的话,真是完美呢。虽然作梦归作梦,不过就目前的走向看来,电脑的强大运算能力必定在数位家庭娱乐中扮演重要角色。这个方面,颇值得关注。
在此当口,我所选择的 Visual Studio 2005 与 .NET Framework 2.0 都已经到了最后定型的阶段,从中,我看到了我未来数年该走的路,更确认了当初的选择完全正确。因为它符合我本身的两个原则:低的进入障碍与良好的未来性。就另外一条路线而言,我想现在选择 Java 的人也不会后悔,毕竟现在 Java 也是热得很。曾经有人问我会不会担心这个状况,有没有想要转换跑道。哈,这个问题真好。其实我最近常跟微软的人说,Java 已经打到你们家门口了,该加点油喔!不过我并不担心,毕竟有竞争才有进步,最后的受惠者,将是所有的使用者。
最后,在技术之路上给大家一个忠告,那就是「成功没有一定的规则可言,失败确有,那就是两面讨好者」。再者,技术是日新月异的,千万别墨守成规,自以为是,人们往往会惯用自己过去成功的模式,但是请小心,在这个行业,唯有随时保持警觉,以新手自居,放开心胸,勇于面对,才能立于不败之地。共勉之。
章立民