Re: [問題] 有沒有人可以分享一下幾個技術沒落的原 …

看板java作者 (沉默是金。)時間15年前 (2010/10/04 22:47), 編輯推噓4(404)
留言8則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《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

10/04 22:58, , 1F
經驗
10/04 22:58, 1F

10/04 22:59, , 2F
摸著石頭過河阿
10/04 22:59, 2F

10/05 00:02, , 3F
推~
10/05 00:02, 3F

10/05 02:54, , 4F
真的WEB SERVICE難搞到爆炸, 都是一時的口號而已
10/05 02:54, 4F

10/05 12:07, , 5F
我快哭了
10/05 12:07, 5F

10/09 11:15, , 6F
http method我記得有五個 現在要資訊系學生知道post get
10/09 11:15, 6F

10/09 11:17, , 7F
好像知道的也不多lol
10/09 11:17, 7F

10/18 22:00, , 8F
事實上總共有八個。但是常用的只有兩個。
10/18 22:00, 8F
文章代碼(AID): #1CgUaL_J (java)
文章代碼(AID): #1CgUaL_J (java)