随着互联网的繁荣,网络应用层次不穷。而构建网络应用的第一步,往往是选择一套合理的、富有弹性的、高效的应用平台。这一点无需置疑,也是大多数接触过网络编程的人士都接受的事实。除了纯粹的技术因数,平台的选择往往也与企业的商业决策(企业现有固定资产、人员结构等);对个人用户来说,这种选择更大的程度上是决定于个人偏好和个人技术水平。
近几年来,开源社区的兴起,为网络技术的发展做出了不朽的贡献。这些社区将诸多以往被认为只有在少数前线大企业才能完成的开发分散到全球的各个程序员手中。这些自由程序员,在开源社区的带领下组成了巨大而高效的开发机器。在这种开发模式下,我们可以看到的成果是惊人的,从Linux操作系统到无数免费的桌面程序应用。而在这其中,存在着另一股巨大的涌动,那就是基于JSP的应用开发。
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。由于Sun公司从事服务器领域已有多年历史,其企业形象所蕴含的高效、稳定也继承在了JSP上。JSP的出现可以说是给本已混乱的网络编程语言扔下了一个重磅炸弹。
经过几年的厮杀,人们目睹了无数的小语言的兴起、衰落,无数企业在网络应用上的无休止的投资,以及每种语言背后的社区和研发公司的性酸苦辣。最终,网络语言市场,可谓依旧呈现三足鼎立之势:ASP、PHP、JSP三者共同占有着90%以上的市场。12月份最新的TIOBE排名显示了到目前为止的众多语言的占有率问题。

排开C++、VB、JS、C、C#等不能专注于网络应用或只能局限于前台程序,JAVA以绝对优势超越其他语言。(由于ASP.net严格来说不能算作一种语言,所以它没有被单独统计在其中)。似乎JAVA程序员可以做梦都偷着笑了,可事实并非如此——JAVA就像移动通讯的3G技术,尽管是这样那样的美好,可是当运营商真的想要用它的时候,就会遇到这样和那样的困难。这种局面,包括163在内的诸多国内门户是由PHP开发的,而微软的诸多网络服务自然而然是有ASP实现的,目前采用JSP的大多数是政府部门的官方站点和一些处于“时代前沿”的学生或开发人员承接的中、小型项目。JSP的窘境可想一般,一种网络编程语言的无冕之王竟然沦落到了“爷爷不要姥姥不爱”的地步……根据国内情况和本人实际经验我们可以进行如下的讨论。
老板至上
在这个市场经济时代,虽说技术驱动着市场,可给程序员发钱的还是老板。一个非常尴尬的局面是,公司的老总以自己那点技术知识在自己部门网站还未进入策划阶段之时就放出了诸如“就用PHP吧……”、“ASP的网站挺流行!”的话语,技术经理如果不是所谓的“理想主义者”或”JSP的狂热支持者“都不会加以阻止,更多的他们直接会在策划书的网络平台上写上”PHP+MySql“、”ASP+Access“之类的字样……更让人讽刺的是,往往老板的一句话会让程序员不得不自学本来被认为”没有竞争力“的PHP或ASP,毕竟家里妻子孩子还在等着吃饭呢。
成本至上
假设你有足够胆量或者你运气足够的好,顽固的高层决策的障碍被你消除,我们终于能够进行基于JSP的开发了。那么,开发全程的各项成本必然是技术经理在写报告的时候必须提到的事情,这个将是他们面临的第二大挑战。开发JSP用到的IDE,十个有九个是要收费的,还有一个是“残废“的,例如鼎鼎大名的MyEclipse。免费的 IDE让我们大学生做做“实验报告”还是可以的,如果真的干起了正家伙,我还不如直接跟老板写辞职书。好吧,我必须承认我们是在中国啊!一个版权保护极其薄弱的国家,你不仅能找到各式各样的商业软件下载,还能找到他们的注册机、破解器。开发软件的成本就这么解除了,代价是某天某软件公司会给你递上一封法律信函,往往一些实力雄厚的公司也不会选择这样做。
另外,网络应用所依赖的服务器也是一个非常现实的问题。你可以找到一个一年只需要300RMB的双线全能空间(支持ASP、CGI、PHP、ACESS、MySQL),而你没法用同样的价格找到一个支持JSP、Servlet的空间。你能够找到的也许一台VPS,或者合租的服务器。假如你是小型企业,便会直接把你的策划书撕掉,然后把所有“JSP”换成“PHP”或“JSP”;假如你是中型企业,也许你会考虑合租服务器或使用专用的VPS服务,代价是一年平均2000RMB的固定成本呢;如果你是大企业,你可以作出够买服务器并放到电信托管的举动,代价是服务器(一次性,平均8000RMB)、托管(平均4000一年)、聘请专业的管理员(一年4万以上)、应用平台软件(WebLogic、 Oracle等,通常在5位数RMB以上,这些软件通常由于证书的原因不能使用盗版)的费用。企业的隐成本不算作其中。
效率至上
有一点必须要承认,面对高强度的应用,无论是PHP还是ASP,都跟JSP无法相比。JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。 PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。在纯技术领域,对于这些语言的性能比较已经有很多详细的文章,在这里不加以赘述。
可是单从技术的角度来开率问题是不明智的。效率这个词不等于“性能”,它应该还包括“开发时间”和”支持与维护”。在开发时间上,PHP便是“敏捷”开发的代名词,JSP没法比,甚至后起之秀Ruby On Rails都比JSP强。有人会说现在都是用框架在做J2EE开发。事实是,PHP也有诸如ThinkPHP、CakePHP的框架,Ruby On Rails的框架则更是数不胜数。凭什么一定让我用JSP的框架?
关于支持与维护,JSP倒是可以扬眉吐气了。由于有SUN、IBM等公司在后面撑腰,JSP的确可以长期保证高效的技术支持;可你别忘了,ASP的支持提供商是Microsoft,它好歹还是世界第一大软件商;最可怜的则是 PHP,它是通过开源社区的形式提供支持。但开源社区也许并不意味着技术支持,因为在开源社区解答问题的可能就是IBM、Sun这些公司的工程师,他们更热衷于充当网络上的活雷锋。而且开源社区对于新技术的应用也更为大胆,这是那些受限于法律和投资风险的常规企业无法比拟的。还有一点大家必须清楚,够买 IBM和SUN的服务是需要通常5位数以上的RMB,否则你只能使用他们的“社区支持”。
停止“攀比”
有时候关于谁比谁强的争论都是技术人员饭后的谈资,慢慢的被炒作,便成了“问题”。技术人员在对另一种语言作出消极评价的时候,往往是想创造出自己的优越感,以及使自己相信自己不会被这场IT游戏立马淘汰。
事实上,没有最好的,只有最合适的。雅虎中国的CTO曾经在一次讲话上完整的阐述了雅虎的技术体系。雅虎选择的即是LAMP体系,即 Linux+Apache+MySQL+PHP。这些软件全部是免费并且开源的,而且我们也从没听说雅虎有什么安全事故、或者程序效率低下的传言。他们选择BSD发行的Linux、并且对Apache进行定制开发,对于开发中遇到PHP的局限,则选择用C、C++进行PHP的扩展编写。这似乎在告诉我们,只要你有实力,选择何种语言都并不是最重要的。有足够的资金,你可以选择使用IBM的全套WebLogic+DB2,你也可以像Yahoo一样做定制开发,哪个在你那里行得通就用哪个。
综上所述,JSP的困境也许并不能叫做困境,它的确在技术上领先于其他语言,并且在国外已经是绝对的主流。只是在国内,面临着“精明”的中国人,他还需要更优秀一些才行。
No Comment. Write me!