开源的世界如此美好 - Java Web开发技术随想

yanglilibaobao 2007-01-19 04:27:12
Java Web Tier开发技术世界里,你选择的、或是你喜欢的技术有哪些呢?你一定可以说得头头是道,JSP、Struts、WebWork、Tapestry、Spring MVC、JSF等等,都有一大批的拥趸,而且,在大大小小项目中,随处可见各种Java Web技术应用的影子。

当然,以上各种技术间的比较在Java开发社群里也是“经久不衰”的论题,从开放性角度而言,我是觉得正是有了这么多的选择,特别是在开源社区广泛参与的大背景下,Java Web开发的世界才这么美好!“华山论剑”,各显神通!



Java Web Tier开发技术世界里,你选择的、或是你喜欢的技术有哪些呢?你一定可以说得头头是道,JSP、Struts、WebWork、Tapestry、Spring MVC、JSF等等,都有一大批的拥趸,而且,在大大小小项目中,随处可见各种Java Web技术应用的影子。

当然,以上各种技术间的比较在Java开发社群里也是“经久不衰”的论题,从开放性角度而言,我是觉得正是有了这么多的选择,特别是在开源社区广泛参与的大背景下,Java Web开发的世界才这么美好!“华山论剑”,各显神通!

1. 我和Web开发不得不说的事

1999年,我的开发方向还在于当时盛行的C/S开发领域,当时的Web开发还是ASP一家独大,平时里我也或多或少学习些,但由于实际中用不到,也没有太大兴趣(另外一方面,我也不太喜欢ASP的风格)。直到某一天,我从《电脑商情报》里看到一篇介绍PHP的文章,PHP的许多编程方式和习惯(如函数式编程)和我最熟悉的C是如此接近,顿时引起了我莫大兴趣。当时没觉得、若干年后才发现,正是机缘巧合的这么一篇文章,引领了我步入Web开发的殿堂。

但当我还在期待这篇介绍PHP的文章的后继内容时(那应该是一个连载文章),不知怎地一直就没机会再看到下文了,正当我意犹未尽、略感遗憾之时,过没多久就在书店看到了第一本关于PHP 3的书籍(名称忘了),当时是毫不犹豫地买来阅读。殊不知,直到PHP发展到版本5的今天,我依然对PHP有一种难以割舍的情结,这种情结,是时间留给我的记忆,就像从Turbo C++ 2、Borland C++ 3.1步入C/C++开发者行列,对旧时Borland的那种怀念大抵相同,但Borland的情况又是另外一种情形了(我把它归结为一种“Borland情结”,再说下去就偏了,有空再另说说我的“Borland情结”)。

兴趣使然,很短时间就学习完了这本PHP 3的书籍,也对Web开发有了认识和理解。过了一段时间,我买到了我的第一本JSP书籍-《网站JSP后台解决方案》,当时JSP在原生Java语言及丰富类库的直接支持下,提供了强大功能,这点和ASP、PHP的脚本编程有本质区别,更适合企业级应用(ASP要支持更复杂应用,往往要和COM技术结合),于是,我陆续学习了《Core Java 2》系列(第四版)的两本书,甚至还买了《Graphic Java 2》系列的Swing、SWT两本书籍(虽然一直用不上)。就这样,从Java语言、JSP开始,我进入了Java Web开发的世界。

...全文
398 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jicken_woo 2007-02-02
  • 打赏
  • 举报
回复
最近连续加班。都没时间上csdn了。
郁闷呀。。。
支持楼主。。
  • 打赏
  • 举报
回复
谢谢推荐,好文章!
xbl001 2007-02-02
  • 打赏
  • 举报
回复
......
fanhaichun2 2007-02-02
  • 打赏
  • 举报
回复
小小的顶一个~~~~~~
liaohaiying 2007-02-02
  • 打赏
  • 举报
回复
顶你个肺
kevinliuu 2007-02-02
  • 打赏
  • 举报
回复
顶了
zuguanqun 2007-02-02
  • 打赏
  • 举报
回复
不知道楼主想说什么呢????
我还是小菜啊,
luffywang 2007-02-02
  • 打赏
  • 举报
回复
你的帖子,顶了
jicken_woo 2007-02-02
  • 打赏
  • 举报
回复
最近连续加班,没什么时间上csdn看看。郁闷。。。
支持楼主。。
yanglilibaobao 2007-01-19
  • 打赏
  • 举报
回复
2. Java Web开发技术的发展

在JSP盛行的头几年,业界对JSP的前景是非常看好的(目前也还很不错),这点很大方面是挟Java之威,并在Web应用开发领域体现出来一股霸气。而实际上,JSP在项目中大规模的成功应用,也接受住了考验。应该说,在JSP、ASP以及PHP的“三国争霸”较量中,JSP以强大原生语言级以及丰富类库支持的优势,首先打败的是ASP,而非PHP,PHP走的是“草根”发展模式,事实上其主要应用领域不是企业应用(当然,现在的PHP也在有意识地打算逐步“杀入”企业应用领域),所以在企业应用领域,JSP和ASP是存在市场占有直接冲突的。

JSP在大规模应用的同时,也遇到相应问题或局限,如:逻辑和页面代码容易混合在一起(我更愿意理解为开发者自身因素)、调试不方便,工具支持困难等等。这些问题如何解决?

网络的发展,是当前软件领域快速发展的一个动力!“三十年河东、三十年河西”,在Web技术发展历程中,三年都很长了。随着ASP.NET的推出,其技术上的实现是先进的,并有.NET框架的强大支持,控件+事件的方式也让人觉得耳目一新。同时,在MVC模式被业界普遍接受的形势下,JSP方面针对自身缺陷,也有所动作,如JSTL、EL等技术的引入(虽然我觉得改善的力度还远远不够),此外,Java Web开发技术方面的各种框架也在新形势下借助开源的力量发力,快速发展,并针对JSP所遇问题提供各种切实可行的解决方案,从而得到广泛应用。不管是对.NET阵营、还是对Java阵营而言,所有的这些发展,都提高了Web开发工作的效率、可复用性。

观察近几年Web开发技术的发展历程,可以发现各种Web开发技术之间即是相互竞争,又是相互促进、相互借鉴的关系,适者生存、劣者淘汰。一个典型的例子就是使用最广泛的Struts,在为Java Web技术应用作出巨大贡献之后,为了进一步更好的发展,走上了和WebWork相互融合之路。此外,在这竞争过程中,还要着重提到2006年来势汹汹的、同样是来自于开源社区的Ruby on Rails,其带来的快速应用功能开发,着实在Web开发者们面前摆了一道别样风景线,一时间,到处都是Ruby on Rails VS.其它Web开发技术的内容,平心而论,在企业级应用方面,Ruby on Rails还有很长的路要走,但在时间面前,又怎能知道鹿死谁手呢?毕竟,在开源的世界里,总是有太多的奇迹被创造!但不管怎样,“他山之石,可以攻玉”,这个道理还是有很多人知道的。

3. 开源的世界如此美好

整个Java Web开发技术的发展历程,相比ASP.NET有个很大的不同点就是:其背后有开源社区的强大支撑!这相对微软技术的专有性而言,是个得天独厚的优势,因此,Java Web框架有着强大的生命力,其生命力就来源于开源社区源源不断地贡献。应该深信,开源的力量如此强大,只要开源模式成熟到一定程度,开源应用必将遍布各个领域,在Java Web开发领域里,事实也正是如此!

王者般的Struts、轻快简洁的WebWork、功能强大而较难掌握的Tapestry、易于集成的Spring MVC,还有Java EE标准的JSF,各式各样的Java Web框架凝聚了开源社区的努力和心血,虽说都是“剑”,但此“剑”非彼“剑”,面对这么多令人眼花缭乱的“利剑”,你如何选择?还有,随着技术不断发展,较老的技术如JSP是否会败落?

开源的世界如此美好!

如此多优秀的技术摆在面前,我更愿意理解成机会!也就是给我们更多的选择机会!选择一种好的Java Web实现技术,对构架设计非常重要,看起来复杂,其实有时候也没那么复杂,我的选择原则是:

和业务的匹配程度。选择复杂而功能强大的、还是选择简单而快速的?随需而定。
熟悉程度。使用熟悉的技术,往往能把这种技术的潜力发挥到极致,即使是再新的技术,如果不熟悉,还是枉然。
技术成熟度。选择一种有口碑并经过实践验证的技术,系统的稳定型、可扩展性以及和其他技术的协作性,都很重要。
技术先进性。技术先进性是要考虑的,但技术先进性也是相对的,“老”技术也有其存在道理,甚至连Cobol都还没“绝迹”,所以只要在可接受范围,就不必太过计较是“老技术”还是“新技术”。
兴趣。这个因素应该服从上面所提到的其他因素,比如,我个人比较喜欢WebWork框架,我称之为一把好用的“妖刀”,但在实际中,我不会轻易就选择它,在大多数开发人员熟悉Struts的情况下,而Struts也适合,那就应该选择Struts。但你完全可以把你感兴趣的技术作为个人爱好来研究、学习。
把握以上原则,应该可以作出选择。

要着重说明的是,对于新技术,应该了解和学习,做好迎接新技术的准备(有趣的是,现在一些好的、新的实践和尝试,往往先由开源项目开始),但新技术的广泛应用是滞后于它的推出时间的,比如EJB 3;另外,毕竟从知识的积累、工具产品的支持、应用的稳定性、原有系统的良好运作等方面考虑,实用、好用的原则很重要!

一个技术是否会败落,取决的因素很多,但从另一方面来看,一种技术的生命力往往是很强的,如C,在金融、证券、电信等行业的关键业务处理中,占据了重要位置;再如Struts 1.X,虽然它的一些理念和当今新的一些框架相比,略显落后,但其已经得到相当规模的应用,就是在Struts 2面前,它在应用中的地位也不容忽略。

开源模式加速了技术发展,技术发展让我们不断进步,就Java Web开发技术来说,做好选择是必然,深入掌握好一种技术,再尝试其他类似技术,大多情况下,可以做到触类旁通。

可以说,随着SUN一系列Java开源策略的出台,开源社区在包括Java Web技术在内的Java诸多技术领域里的贡献将变得越来越多,影响力也会越来越大,Java也将在开源力量的帮助下,进一步巩固其在企业级应用开发领域的霸主地位。

4. Java Web开发趋势

从前面可以看出,Java Web开发技术的发展趋势仍然是多元化发展。其中的任何一种技术,都有其优、缺点,如Tapestry是一种组件式框架,功能强大,但学习曲线陡;JSF也是一种组件式框架,而且又是Java EE的标准之一,但仍不够成熟。在Java Web开发领域,“理性分析,合理运用” - 这是正道。

纵观2006,Java Web开发技术的发展脚步一刻也没减缓:Java EE 5正式发布(JSF版本为1.2,JSP版本为2.1);Tapestry 4.0正式发布;Spring 2正式发布;Struts 2正在努力打造中,并发布了2.0.1 BETA版。就我自己的看法,2006年Java界最重要的事件绝对是Java开源!其意义必重大、影响定深远!随着Java开源,开源社区已是“就等东风来”,有关Java的各种技术和应用,在增添了开源魔力的魔棒的挥舞间,终会是精彩纷呈。

期待2007,Java Web开源世界美好依旧!并完全有理由相信会继续得以发展。作为Java Web开发者,以下几点是值得你注意的:

AJAX支持将更成熟。在Web 2.0浪潮里,谁也不能忽视AJAX技术,各种Java Web开发技术仍会不遗余力地处理好AJAX需求,在2007年,不应该再出现“AJAX是不是过渡技术”之类的争论了,能争论的应该都争论了吧?
Java EE 5的应用会有所推广,但广泛应用还要依赖WebSphere、Weblogic等等第三方产品或环境的支持力度。EJB 3确实有些吸引人;JSF嘛,真的不知道,爱也罢、恨也罢,走好自己的路,让别人去说去吧。
各种Java Web框架继续推陈出新!喜欢新鲜事物的开发者,特别是Struts开发者,好好留意下Struts 2。
SOA。不管你用不用得上,也好好留意下。开发者不能只是局限于Java Web开发技术,应该不断拓宽自己的视野。
Java开源后的影响。到底会有哪些影响和变化?让时间来告诉我们吧。
Java SE 6。Java SE 6在2006年末正式发布,我始终觉得Java SE 5的发布比版本6来得更有意义,但不管怎样,好好研究Java SE 6的新特性,是应该的。
简化开发。Java Web开发技术的功能越来越强大,使用越来越复杂,学习曲线越来越陡,在2007年里,谁能在功能强大和简化开发两者间实现最佳平衡方式?至少对于我来说,值得关注。
开源。总之,开源,还是开源!
“两岸猿声啼不住,轻舟已过万重山”,Java Web开发技术在开源动力的牵引下,过的“山”已是不计其数。

乘着开源轻舟,继续远航。


作者:Lu Junxiang
转载:http://lujunxiang.itpub.net/post/26894/246895

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧