作者TonyQ (沉默是金。)
看板java
标题Re: [问题] 有没有人可以分享一下几个技术没落的原 …
时间Mon Oct 4 22:47:46 2010
※ 引述《manlike ( )》之铭言:
: ※ 引述《GGGGGforever (五鸡大侠)》之铭言:
: RMI 第一次看到觉得还蛮酷的
: 现在来看确实是还蛮落伍的 缺点蛮多的
: 1. 太复杂
: 2. 非标准
: 3. 安全性
: 4. 很少用
: 5. 难维护
: 6. 太封闭
: 7. ......
: 随便想都一大堆缺点
: 最重要的是现今有许多更好的替代技术
: 如果把 RMI 用来做 IPC 的用途,
: Linux 上有 D-Bus 是系统通用的介面,
: 可以支援用多种语言实做,互相透过介面呼叫,
: 而且应该比较简单,虽然也有点复杂,
: 也算是 Linux 上一个系统层级的标准。
: Windows 的话不熟,不过应该也有才是。
上面的没研究没什麽意见。
: 如果是当作 RPC 的用途
: 以 web service 或 web 2.0 的角度来看
这两个都可以说是已经过气的旧名词了,
扣掉 web 2.0 这个纯口号的名词,web service 当初的愿景现在看看剩多少,
还有许多有趣的老东西像是 soap等,也是有一堆人在炮轰太难搞,
再经过几年的洗礼後不知道还剩什麽评价。
: 就是要能让开发者轻易的使用任一语言开发
: 有共同的标准,使用者也能轻易存取,
web service 的目的比较接近是把资料层跟资料操作抽象化,
与其说是要轻易使用任一语言开发,倒不如说是他想跳脱语言的层次。
: AJAX 和 REST 技术就符合这些特性
: AJAX: HTML, Javascript 和 CSS 都是标准,而且大家很熟,使用者也很常用。
这里有一个华丽的名词陷阱, ajax 本身并不符合你说的这些,
基本上他只是一个行为,就算你要把广义的 javascript 都列进来,
那也不算是所谓的有共同的标准跟能轻易存取。
事实上,你看看浏览器战争现在打得这麽激烈,
许多该 support 的东西都还在拼命奋战,
要说轻易存取实在是太看得起web了。
至於标准,如果你不算入那些各家实做的奇奇怪怪的鬼东西跟鬼规格,
那的确是蛮标准的,不过现在好像已经很少看到这麽「标准」的网站了。
至於大家都熟这更是一个有趣的.......呵呵
为了一个好的使用者体验,有一些部份写 web 的人,
可是费尽千辛万苦在搞一些鬼东西。
: REST: XML 和 HTTP 也都是标准,而且大家很熟,使用者也很常用。
: 对开发者而言,这些都是再熟悉不过的技术,开发容易,而且是真正跨平台且开放。
: RMI 就只能用 Java,也很复杂,使用者还要装JRE,也非标准而且封闭,
: 如果你是要做封闭的系统才会考虑用 RMI 吧???
: 只是封闭的系统担然最後就是落伍然後被淘汰...
这里也是名词陷阱, REST 本质上是一种伺服器服务的「风格」。
他主要的实做方式舍弃大多数原本透过 XML like 的格式的描述资料,
而规范一致性的 url ,透过特定的 Http method ,来达到他的目的。
其实真的熟 Http method 的人我想并不多,
POST 跟 GET 知道的人应该很多, PUT/DELETE 我想会用到的人应该很少;
REST 多是绑在特定的需求或者特定的技术上,
像是我之前在玩的 RoR 就是 RESTful 的
事实上,拿这个跟 RMI 比是蛮奇怪的。
而且 REST 跟 RPC 并没有完全的交集,他们是不是能划上还有争议。
: : 当然, 现在应该是没有人在开发系统时会使用它们了, 算是书中失落的80页
: : Joel on Software 一书里也说到他从2000年初就不看好 RMI 技术.....
: : 除了这两个技术外,
: : mmdays也曾在部落格的文章中说到 EJB 的架构被认为是失败的
: : 使用POJO更好....
: : 当然这些都是听别人说的
: : 所以有没有人能更明确得稍微分析一下这几个技术衰败的原因呢?
: : 如果有参考资料更好, 谢谢罗^^
不过其实我觉得没有什麽技术是真的好或不好啦,
你深入去玩过一些东西,了解过一些东西。
你就会发现软体的世界呈现着一种演变的趋势。
有些老东西虽然用现在的眼光看起来是烂的,
但是在当年那个时代可是个创举。
就像是 java 早期以物件导向为口号,现在到处都物件导向的语言,
更有标榜「纯」物件导向(ex Ruby)的语言,
有些东西其实在过时或者被取代的背後,都是一个大胆创新的尝试。
就像是我几年前有一度为了 web 投身 applet 的世界,
玩了几个月的 applet ,虽然後来发现 applet 是个没落的老东西;
但是你会发现 applet 相对於他的时空背景,仍然是个好东西;
有过 applet 经验,对於日後我操作 swing ,
甚至是我去玩 javascript 时,有蛮多东西都还是可以对照着看。
有许多各式各样的技术曾经被视为是失败的,就像 javascript,
其实在 2005迄今有许多人都认为这是一个失败的语言,
因为语言方面他的确有一部分的缺陷,但是基於环境的条件跟历史因素,
他仍然是存活而且有趣的,并随着规格的演变跟各式的实做在强大着。
有些事情实在是很难讲。
java 体系当然也有许多老东西是个好尝试,但是并不好用的东西。
比方说 swing 系列有许多在设计架构上非常有理想,
但是实际上用起来非常难用的东西。(我个人对JTable有挥之不去的梦魇 XD)
EJB 的历史直接看 wiki 比较快
http://zh.wikipedia.org/zh-tw/EJB
基本上还是老话一句,
这些是在过去还没有选择时,人们所踏出大胆的那一步,
每个东西被创立出来都一定有他想要解决得问题,
而绝大多数的时候是当做完之後,问题演化变成新的面貌,
所以我们用新的工具去处理。
就像是以前我们很多功能直觉就是写 application 来得安全简单可靠,
现在却会努力搬到 web 为了 portable 特性,
因为我们意识到使用者不会想要随时带着一个安装档,
他想到简单的有个浏览器旧能用,这就是需求的演化。
如果要因此觉得 EJB 这个东西就是个笨东西,那也只是个结果论;
事实上 EJB 也曾经在他的世代中红极一时,
或许有些日後被软体工程师唾弃的东西,在我们现在却是视之为真理呢。
还有蛮多东西其实也都还是在进化中,像是这 JSF ,
一些有趣的第三方 Framework 更能看出这些差异。
以前在玩的 webwork ,後来也跟 Struts2 并一起,
样貌也跟以前有很大的差异了。
还有一些比较属於是环境的演化,
像是以前有一阵子我们很爱用 xml 当config,
但是 annotation 出来跟用过之後,回去用 hibernate 时叫我写 hbm ?
拿把刀杀了我比较快吧~~
所以其实很多时候这些演化是因为
1.发现问题应该再被分解成更小单位
2.因为用了之後发现有更好的方法
3.发现这个需求不存在,或者是这个问题根本是无解。
其实这都是无数前人踩在前面创下的路呀。:p
--
我:一半的日子让你说,我听你说你的所有
______________________________________
______________________________________一半的日子我想说,对你说过去的所有:我
_______________________________________________________
在讨论中妥善扮演兼具聆听与分享的角色,是我们一生的课题。
_______________________________________________________
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.82.21.118
1F:推 a1234957:经验 10/04 22:58
2F:→ a1234957:摸着石头过河阿 10/04 22:59
3F:推 dream1124:推~ 10/05 00:02
4F:→ GGGGGforever:真的WEB SERVICE难搞到爆炸, 都是一时的口号而已 10/05 02:54
5F:推 sorkayi:我快哭了 10/05 12:07
6F:推 slalala:http method我记得有五个 现在要资讯系学生知道post get 10/09 11:15
7F:→ slalala:好像知道的也不多lol 10/09 11:17
8F:→ TonyQ:事实上总共有八个。但是常用的只有两个。 10/18 22:00