看板 Soft_Job 關於我們 聯絡資訊
※ 引述《cgfan (carryme)》之銘言: : ※ 引述《tomtang0406 (魔鬼藏在細節裡)》之銘言: : 謝謝您的回文, : 最近剛好也在瞭解.net (本身是學java的) : 看了你的文章,秒懂業界現況 : 脈絡的部分我相信對很多人很有幫助 : 不知道可不可以請您也評論一下Java ..... [其實這才是主題 :D] 很多人總是拿 Java vs .NET,但這太容易引戰了,所以這邊我不要用兩相比較的方式,單純從『非技術』的『商業觀點』談論我對 Java 的看法。 我本身以微軟相關技術為主,但偶而也會寫寫 Java,因為程式語言就是工具,合適的時候就拿來用一用,更何況從 C# 轉 Java 遠比 Java 轉 C# 簡單得多,因為 C# 的語言特性較複雜。 我自己會寫 Java 的幾個機會是:寫 Android App、寫 GAE app、寫公司產品 Java 版本的 SDK,不算是用在很核心的地方。 聲明:以下看法單純從本人過去工作經驗的觀點做分享,難免偏頗絕非全貌,請自行斟酌真實性。 我對這個語言的看法就是,他在處在一種前途未卜、渾沌未明的狀態,任何事件都有可能改變這個語言的發展趨勢,大概不上不下不明朗,但是七成偏悲觀。 這也是為何我前一篇文章要特別註明把它排除在比較範圍之外,為了避免失焦。 Java 無疑是 OOP 世界最佳的傳教者,大部份的人都是透過 Java 來認識 OOP,他導入的 ByteCode 、虛擬機、垃圾回收機制,絕對是影響近代語言發展的歷史性推手。 歌功頌德完畢,還是得看看現實。 Java 開放的特性,且沒有明顯的商業掛勾(至少剛開始是這樣),使得學術界對此非常友善,無論是學術研究、教育課程安排,都毫不避諱採用 Java,造成企業不太擔心人才斷層,在人力市場可以很安心地挑選需要的人才。 許多先進的學術研究也多半會以 Java 為主,要玩各種主題可以發現資源非常豐富,幾乎不用擔心沒東西可玩。.NET 大多是等某些東西在 Java 已經紅翻天才移植過去,所以開源的發展總是慢半拍。 Java 的社群很友善,可以明顯感受到一種無私奉獻的精神在跟你互動,我很喜歡這這種氛圍,兩相比較之下,其他門派的獎勵機制產生的 MVP 社群感受比較功利主義。 以為 Java 免費資源多,成本低所以企業搶進嗎? 錯了,Java 的商業 total solution 可是貴翻天是微軟 solution 的倍數起價! 最早透過 Java 獲得巨大利益的是 IBM,金融業因為大型主機被把持,幾乎都採購 WebSphere 來串 MQSeries,不用授權成本的 Java 成為 IBM 的指定語言。有 IBM 原廠的強力背書和支援,跟我之前談論 .NET 的論點一樣,當時 Java PG 薪資水漲船高,所有金融業都搶著要,IBM 整個賺翻天! 但金融業也不是天天過好年,近年整個經濟反轉,整併消失的銀行不在少數,那些以前不計較的 IT 投資,現在看到報價單是會心痛的!去 IBM 化的各種行動在金融業陸續展開,那幾年我拜訪許多銀行的 CIO,都知道「減少對 IBM 依賴」是他們被賦予的首要目標。 想也知道,誰是次於 IBM 卻滿足降低成本,同時可以提供最強大有力技術支援的一線廠商(不要總說 M$ 好貴,跟 IBM 相比,真的便宜太多)? 這個消長頓時凍結了 Java PG 的需求量和薪資水準,而開始讓另一家敵對的技術做大。 但是於此同時,Java 在學術研究界的聲望仍然高居不墜,很多框架繼續蓬勃發展,是技術人玩樂的天堂。反觀另一家雖然在就業市場開始翻身,但至今始終難以打入學術與教育界。 在兩家技術各有擅長戰場的情況下,Google 選擇 Java 作為 Android 的官方開發語言,這真是一個奇異點,因為這個事件同時幫 Java 打入強心針、也引發危機。 先說 Java 在我眼裡,是個發展越來越緩慢,越來越顯老態的語言(我說的是語言特性本身,不是周圍的框架),幾乎快跟 C/C++ 一樣不太會變動了。大家可以參考維基百科裡面的歷史章節,Java6從 2005 年公開到 2011 年才有新的改變,到了 2014 年才開始納入對手 2008 年就有的語言特性:Lambda。 IT 界一日數變,隔年如隔朝換代,這種緩慢的變化已經無法因應市場所需。原因當然跟 SUN 自己經營不善無力支持有關,另一點就是 Java 本身的願景成為巨大的包袱:Write Once Run Everywhere。任何異動要牽涉到的多方角力實在太多太廣,主事者又早已自顧不暇。 而 .NET 卻只要顧好“跨自己家平台”就好,爆發性『瞻前不顧後』的發展速度連自家人都傻眼。 事實上,Write Once Run Everywhere 早已變成空談,各家利用這免費的語言各自為政,iOS 完全無法執行 Java,PC 上寫的 Java 不能跑在 Android,反之亦然,而 Windows Phone 更想都別想。 在 mobile first 的當下市場,就算其他裝置支援眾多,最大的行動市場大餅卻根本無法跨平台,真的是優勢盡失。 反之,.NET 反而三大行動平台全都能跨,Java 的 slogan 在現今特別令人感覺諷刺。 現在各大 IT 廠商覬覦 Java 的,已經沒人在乎什麼跨平台這件事,看上的是他的開發社群與累積龐大數量的 PG,降低許多推廣自家平台的門檻,所以大家都搶趁著 SUN 無力反擊時吃盡豆腐。 要知道創造一個全新的程式語言是非常吃力不討好的事情,推廣和教育訓練的成本都極高。 前面為何說 Google 選擇 Java 作為 GAE + Android 的指定語言同時是替這語言引爆危機?第一,他造成 Java SDK 分裂讓跨平台這件事徹底崩壞。第二,他讓 Oracle 為了貪圖利益控告了 Google 侵權,要求巨額賠償。 Oracle 這場官司,不知看在其他 IT 巨頭眼裡,還有多少敢指定 Java 為主要語言?連 Google 為了解套都開始研發屬於自己的新一代程式語言 Go,這對 Java 這個語言本身的發展蒙上非常不好的陰影,甚至連學術界都開始為之擔憂。 如果你熟悉 Oracle 老闆 Ellison 的狂人個性,就會敬而遠之。Java 恐怕會因此被他玩死。 目前看不出 Oracle 有打算向微軟一樣把 .NET 當作重要戰略棋子的方式對待 Java,所以目前我對這語言的發展傾向悲觀的看法。 但這是一個已經累積足夠財富與資源的語言,即便他在我眼裡是正在走下坡,但還是很有利用的價值。 : : 認真回文一下 : : 以未來性來講,php 的工作職缺數量,應該會長時間領先 .net,所以未來 : : 不太需要擔心就業市場問題。 : : 但是,從平均薪資來說,php 要有較高的薪資水準難度也比較高,主要 LAMP 是窮人 : : 的原子彈,一堆沒有現金流的新創會愛用不是沒道理的。 : : 當然如果這些新創成功做大(php支持者最愛說 FB),那是另一件事,看你有沒有那 : : 個命剛好坐在獨角獸身上(機率應該跟前兩週買大樂透差不多)。 : : php 有個弱點,就是沒有很強大的商業靠山說了算! : : 對已經獲利在營運的大型商業公司,會寧願選擇 .NET(Java不再這篇文章比較範圍內), : : 原因就是背後有強大的商業公司支持(微軟)。 : : 尤其對 $$ 最有影響的 critical system,一定要有強而有力的技術支持廠商,那種打 : : 了電話就會出面到場處理到底的關鍵角色。所以在資本較粗的公司多半會選擇 .net。 : : 資本起家的公司(非技術起家),管理上著重兩個構面:財務、風險。 : : .net 相關配套的方案雖然要錢 SQL server / Windows Server,但是只要分析後投報率 : : 是正的,砸錢下去是不會眨一下眼睛,而且又同時符合風險係數低(或風險可轉嫁), : : 會選擇 .net 很正常。 : : 而且一旦是 critical system 那種只要一掛掉幾小時就會造成公司營業損失幾千萬的, : : 這些系統的開發與維護人員薪資待遇絕不會比業界低,因為有 sense 的才不會因為一個 : : 人月多花幾 K 就冒了讓員工流動造成系統運轉風險(微軟的 preminum support 都買 : : 下去了還跟你在乎這個?)。 : : 這也是為什麼早期銀行被 IBM 把持這麼多年,懂 cobol 的人可以福利超好工作輕鬆。 : : 但是 .net 總體職缺數量就是比較少,但是上述這種菁英職缺依比例就比 php 高得多。 : : 最後,兩者都要碰是最好的。像是我覺得 php CMS 的很多成熟套件這些資源就很棒, : : 常常在能幫公司 costdown 一些非關鍵系統發揮功效。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.193.227 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1443282203.A.F73.html
name2name2: 推! 09/27 00:12
femlro: 如果google真的推自己語言 java會死很快 09/27 00:14
femlro: 但想必會很像java@@ 09/27 00:14
femlro: 對java pg來說 也沒啥差 09/27 00:14
Kennyq: 沒看到Servlet跟SSH框架字眼,這樣要説服別人C#轉JAVA較容 09/27 00:18
Kennyq: 易? 09/27 00:18
DrTech: C/C++沒公司推,也沒花俏的語言特性,也活得好好的。 09/27 00:19
Kennyq: 遇過2位Android講師,Sevlet跟SSH根本就一知半解 09/27 00:20
DrTech: COBOL也死不了。怎麼JAVA講得好像得癌症了。 09/27 00:20
tomtang0406: 我講單純語言本身,無關乎框架,那些框架是學不完的 09/27 00:21
tomtang0406: 。 09/27 00:21
tomtang0406: 我認為Java不會死,只是下一步發展堪慮 09/27 00:23
tomtang0406: 所有語言,沒有死不死的問題,只有市場會不會萎縮的 09/27 00:24
tomtang0406: 問題。 09/27 00:24
manaup: VB表示: 09/27 00:26
manaup: VBScript表示: 09/27 00:30
manaup: J#表示: 09/27 00:30
Kennyq: Android的Libraries(SQLite,WebKit...) 09/27 00:31
Kennyq: 基本上都是用C和C++寫的,C/C++活得好好很正常。 09/27 00:31
Kennyq: JAVA基本上可以走網頁、應用程式、Android,要死也很難... 09/27 00:32
chatnoir: 論點滿精彩的 09/27 00:33
Kennyq: 我覺得各語言有各語言最適合用的地方,用的對就是最好用 09/27 00:37
tomtang0406: 贊成,這也是我說自己還是偶爾會寫寫 java 的原因 09/27 00:40
james732: 推 09/27 01:11
cgfan: 論點滿精彩的 +1 09/27 01:22
singoboy: 推 09/27 01:38
youccu: 論點精采給推 09/27 01:58
n080925: Bravo!! 09/27 03:13
liddle: Java到了Oracle手上,的確讓人有點憂心。 09/27 08:05
luciferii: 這幾年我們都在懷疑 Oracle是想刻意搞死 Java... 09/27 09:02
fgh81113: 論點滿精彩 09/27 09:09
roy870075: 精彩 09/27 10:08
Argos: Oracle:你們只準用JAVA寫玩具 不然我告到你脫褲 09/27 10:10
fortinet: 現實來說,就是工程師文人相輕,語言越多變種越雜越亂越 09/27 10:47
fortinet: 好,所以大家可以安心的要飯要到老 09/27 10:47
fortinet: 某矽谷長輩跟我講,軟體工程這麼麻煩,不是出在技術多深 09/27 10:51
fortinet: 反而問題是人性,所以別怕沒飯吃...真是醍醐灌頂Q_Q 09/27 10:54
gpctv: 我並不覺得從java轉C#比C#轉java難,我那時待軟體公司,才發 09/27 12:12
gpctv: 現C#很多都是學java的,所以有些觀念java就有,像他們在C#寫 09/27 12:12
gpctv: 些像Java Bean的東西就讓我很適應 09/27 12:12
aiyswu: 09/27 12:35
Killercat: 其實C就算了 C++動得很勤,只是C++99~11這段空窗期 09/27 13:02
Killercat: 實在太長了,現在才開始很積極地動起來 09/27 13:02
Killercat: 另外其實去IBM化是很早就在弄了,公司就算賺錢,IBM的 09/27 13:07
Killercat: 系統成本仍然是非常高的... 09/27 13:07
Killercat: 但是拿IBM來說Java solution,我是覺得不太適合啦.... 09/27 13:07
testPtt: 沒有Android的話JAVA幾乎跟Delphi差不多 09/27 13:34
arenda: http://goo.gl/n4wr2b 09/27 13:54
Killercat: 也沒那麼慘,Enterprise領域來講Java也算有一塊天 09/27 14:00
arenda: https://goo.gl/OGb0kv 這幾個大站只有微軟陣營使用.net 09/27 14:18
keieykdx: 不錯 09/27 14:18
arenda: java還蠻多大站用的 09/27 14:18
arenda: 甚至php也很多大站用 09/27 14:19
arenda: java未來一定走下坡阿因為他使用率第一名 沒辦法走上坡了 09/27 14:27
free112136: 推,精闢 09/27 14:45
sealight: 我不太清楚最近C#發展的如何,但單就企業等級的應用範圍 09/27 15:00
sealight: 我真的覺得.net要追上Java還有很長的一段路要走… 09/27 15:00
sealight: 雖然最近micro service的架構很紅,但我還是看不出來在 09/27 15:01
sealight: .net中到底能夠佔多少優勢?? 09/27 15:01
remmurds: 推 09/27 17:30
remmurds: 我真的覺得幹掉java的不是別人 就是Oracle自己 09/27 17:31
vvworm: 這世界不是只有.net與java,.net最大的劣勢就是與open sou 09/27 17:43
vvworm: rce, linux格格不入,MS常常騙菜鳥去踩雷,例如sql server 09/27 17:43
vvworm: , nodejs, git, tfs等,號稱效能佳,windows相容,結果用 09/27 17:44
vvworm: 了以後才發現自己是白老鼠, 搞人的例子不勝枚舉 09/27 17:44
YahooTaiwan: .NET open source? 09/27 17:46
YahooTaiwan: http://referencesource.microsoft.com/ ?? 09/27 17:46
YahooTaiwan: https://github.com/dotnet/corefx ?? 09/27 17:46
havanabay: 你講的完全是企業IT端情況 到產品端,.Net連選項都不是 09/27 18:41
tomtang0406: 是的,我的觀察範圍只侷限企業端。總算有個抓出我盲 09/27 19:06
tomtang0406: 點的見解了。 09/27 19:06
remmurds: node.js和git跟MS有啥關聯啊? 09/27 22:49
chatnoir: 我跟樓上有相同的疑問,再來.net不是開源了嗎? 09/27 22:54
Deltaguita: 很有趣的文章 09/28 05:25
abcf: 有些人不知道.NET近期的發展,還以為.NET不往開源的方向走 09/29 23:57
aj175: 分析很精彩 06/25 19:27