今天看了 dlee 在 csdn  发表的一篇文章  http://blog.csdn.net/mozilla/archive/2007/07/22/1702365.aspx  。 觉得很有意思。以前我在 javaeye 就看过他的很多文章, 很有见地。 最近他的很多言论都是围绕 rest 的, 把 rest 的地位抬的很高。 我个人倒是觉得 RIA  相对而言对于 web 开发更具革命性一些。

如果采用 RIA  开发网站,和传统 web 开发有两点很大的区别,一是:对于服务端 View 层的依赖就没有了, 二是: 不需要在 server 端保存 session  信息。 无论是 rails, 还是 php, python, java 的各种 web 框架,session 和 server view 都是必须的, 从上个世纪中期到现在10年多的时间里, web 的发展和 http 本身无状态的特点使得我们无法脱离这两点来开发网站, 几乎所有web 框架都会涉及到它们, 但是都会采用各自的方法来解决, 每个方案都没有本质的不同,却在形式上差别很大,服务端 view 技术可能是每个框架中最麻烦的部分。 REST 本身并没有改变这种开发现状,但是 RIA  却在试图打破这个局面。 一旦采用了 ria , 你会发现,各种框架其实在编写业务逻辑和服务方面(ORM 层, Router)并没有什么显著的不同,单从 Controller 和 Model方面考虑,脚本语言 web 框架还是有一定的敏捷优势的,但是 java 框架已经和它们相差不多了,但是 java 在纵向扩展性,执行效率,静态检查,组件等很多方面具备脚本语言所没有的优势。所以如果一旦未来的 java   web 框架简化到一定程度,java web 开发的优势就会显现出来,所以我个人感觉  RIA  的出现对于 java 可能是一个转机。 当然这要取决 RIA  的接受程度。 GWT 就是一个好的开端, 不过我更喜欢基于 flash  的解决方案。 成熟高效的 runtime, flash 插件庞大的市场占有率,跨平台,跨浏览器,Actionscript 已经发展到第三版, 优良的组件编程, 多媒体的支持。 所有这些似乎都预示着 flash ria 有着良好的前程,但是事实也不是这样的。对于一种新技术的采纳,并不是那么简单。 更多的人是在观望, flash ria 有学习成本,熟悉的人不多, 资料也少; 搜索引擎优化也是一个问题, 而且在开发效率上也不见的高(这的确需要实践一下)。

最近我打算开始研究一下 flex , 以前我总觉得 flex 是 Macromedia(adobe) 兜售的一种服务端技术,自从adobe 推出了 apollo 后,我觉得 flex 变成了一个开发客户端应用的平台。 http://pownce.com/ 网站上那个 apollo air 的小应用,让我看到了学习 flex 的必要。 本来 flex 是一个服务端应用技术, 现在 air 的出现, Adobe 又回到了客户端的老路上来了。 Macromedia,adobe 总是想把自己在桌面的优势发展到服务端,尽管推出了很多服务端产品,但是到了最后,它们又回归了客户端.

dlee 在最后列举了几个从Java转到 Ruby有几个强有力的理由:(实际上这里他混淆了 rails 和 ruby)

1. Rails可以让单个开发者在开发效率方面接近自己能力的极限。我并不是一个完美架构的fans,热衷于不写一行代码,巨细无靡地分析各种架构优劣直到脑神经瘫痪。我热衷的是解决用户真正关心的问题,用技术改善他们的生活,与用户建立起良好的人际关系。
2. Rails框架对Ajax有更好的支持,通过使用RJS模板可以极大减轻一般情况下做Ajax开发的复杂性,提高开发的效率。
3. Rails框架对REST开发提供了最好的支持。REST在Web开发方面会越来越重要,全面支持REST就是未来所有语言Web开发框架发展的方向。
4. JRuby 1.0对Rails的支持已经很好,而且支持直接使用Java开发的资源,所以现在是从Java转到Ruby的一个适当的时机。

对于第一点: 我完全同意, 我一直认为面向解决方案,而不是面向编程语言,是一个开发人员应有的思路
对于第二点:正确, rails 的确简化了 ajax , 尽管我个人认为 ajax 只是一个过度的技术
对于第三点:部分认同, REST的确在Web开发方面会越来越重要,但是 Rails 是最早提供REST支持的框架,未必就是最好的,后来者居上的例子很多了,相信 java 在这方面还是有优势的。
对于第四点:Sun 支持 Jruby 只是吸引rails 开发人员将程序移植到 java 平台, 而不是反方向。 而且 jruby , jpython 等技术只是在集成上有优势, 对于 web 开发或者不打算将应用移植到 java 平台的人没什么吸引力。

【程序思考】RIA 对于 java 在 web 开发领域是否是一个转机?相关推荐

  1. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    2019独角兽企业重金招聘Python工程师标准>>> 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制 ...

  2. JavaWeb那些事儿(一)--为什么做java的web开发使用struts2,springMVC和spring这样的框架

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  3. 浅谈PHP与Java之Web开发整合技术

      淺談PHP與Java之Web開發整合技術      鄭哲聖郑哲圣   前言 PHP為語法簡單的腳本語言,可以做為HTML的嵌入型語言,而且與Apache網頁伺服器搭配的設定容易.效能亦高. 前言 ...

  4. 2011年Web开发领域回顾与展望

    摘要:对Web开发者来说2011年无疑是"风景不错"的一年,HTML 5得到了Adobe与微软的认可.CSS 3也日益成熟.谷歌推出了新结构化编程语言Dart.等等.Web开发领域 ...

  5. java osgi web开发_基于 OSGi 和 Spring 开发 Web 应用

    开发一个简单的OSGi Web应用实例 一个简单的Web应用 我们写一个简单的 Web 应用 compute.html :计算两个数字的和或乘积.如下图所示: 图1.一个简单例子 一个简单例子.bmp ...

  6. 如何成为Web开发人员—编写第一个Web应用程序

    Where to begin? This is perhaps the most common question asked by all newcomers to IT. There are so ...

  7. 张利国java pdf_Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟张利国) PDF...

    资源名称:Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟,张利国) PDF 第1章 web开发工具的安装与使用 第2章 web编程技术基础 第3章 s ...

  8. java tapestry_Java Web开发的轻便架构Tapestry5---简介

    简介: Java Web开发架构Tapestry最初由Howard Lewis Ship创建于2000年,2006年荣升为Apache的顶级开源项目.经过近10年的发展,在Tapestry开发团队不断 ...

  9. 开发APP的java工具_程序猿必备的java的app开发工具有哪些

    每一位java程序员都会有套工具来应对工作上的挑战.多年来,java程序员使用软件来完成他们的工作.有很多工具对他们是有用的,不过对于初入行的人员来说,寻找合适的工具是困难的,并且是浪费时间的.jav ...

最新文章

  1. 中台之上(十一):企业级业务架构设计的“五难”
  2. redis多端口启动
  3. Java_01_环境变量的配置
  4. 触发ALV事件时报错MOVE_TO_LIT_NOTALLOWED_NODATA
  5. 操作系统难点解析之进程和线程
  6. 今天的这天晚上的飞鸽传书
  7. git本地安装配置与基础概念
  8. 从安全和不安全两个角度,教你如何发布对象(含各种单例代码)
  9. linux下搭建DNS子域及相关授权详解
  10. cvs 文件如何解析?
  11. 生活杂谈-空调的修理
  12. jquery图片3D旋绕效果 rotate3Di的操作
  13. Vue高仿网易云音乐APP (vue.js 移动端)
  14. A*算法与8数字谜题(参见《算法》P226习题2.5.32)
  15. PaddleX---MobileNetV3_ssld图像分类
  16. OpenCV C++案例实战五《答题卡识别》
  17. mysql删除表的命令
  18. 模型选择的几种方法:AIC,BIC,HQ准则
  19. 腾讯(大连)研发一面-20190620
  20. mysql投影和选择区别_计算机二级。选择和投影到底有什么区别?

热门文章

  1. Vue.js 3.0 学习笔记(十一)Vue Router路由
  2. 【问答】excel使用过程中,出现:无法清空剪帖板,另一个程序可能仍在使用剪贴板
  3. ucos OS_ENTER_CRITICAL .
  4. opencv图片矩形网格边线_图像算法在数值计算中的应用(1):Canny边缘检测算法...
  5. [Error] 'else' without a previous 'if'
  6. 福建理工学校计算机类专业有哪些专业吗,福建理工学校
  7. 用matplotlib库将形状为(4418,3,150,27,1)的数据进行可视化
  8. java没提示_java运行不了,出现以下提示,如何解决。
  9. 安卓apk版本检测下载升级全过程
  10. windows下用GHOST手动备份系统图解