Re: [問題] java與C#何者較難?

看板java作者時間18年前 (2006/05/23 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串21/21 (看更多)
其實我講的是Casc by case的狀況, 坦白說是有點weird case, 我只是強調並非不可能發生, 所以大部分的Case其實多屬於你這種情形. 有幾種情況會逼人走上梁山: 1. Unable to reproduce on testing environment. (又些問題是被量沖出來的, 也就是Production的實際量超出Testing 原本壓測的預估量, 這通常是事後發現有些resource的存取沒控制好) 2. 事態緊急, 但是緊急變更卻必須跑官方申請流程. 銀行把機房用層層的防火牆擋住, 就怕兩件事, 駭客和病毒. 你直接帶Binary的執行檔 進去機房, 沒有掃毒和經過一些重重檢驗審核過, 他們大多是不放心讓你直接把執行檔 放進去. 若不是火燒眉毛, 自然可以奉公守法搞他們的流程, 不過有時候情勢所逼... 但是純文字檔就沒有病毒這樣的顧慮在(除非你的Source Code編譯完就是要搞破壞的), 所以可以避開部分流程直接進機房, 因為在申請單上只要填"純文字檔補匯入"就可以 立刻進去. 如果這樣可以在時限內過關的話, 事後甚至銀行根本不會知道曾經出過BUG, 因為查不到任何變更紀錄或申請表, 未經過任何變更程序, 系統就已經穩穩當當的. 當然系統是否牽涉到金流, 也是風險的考量, 這樣子幹之前我們是有評估的. 不過, 如您所說, 以上行為並不足取, 錯誤行為示範, 小孩子不要模仿... ※ 引述《feicsh.bbs@bbs.wretch.cc (飛)》之銘言: : 我兩年前也在finance line待過,好巧不巧也是用C# .Net : 做internet banking。 : 沒錯,銀行是只允許我們帶一張diskette進機房。 : 不過我們通常的做法是先嘗試在test environment debug,找不到才去機房 : 靠diskette存transaction/audit log回來trace, : 修好了才帶進機房patch耶. : 就算是Server掛掉,我們都沒人敢當場改source code。 : 尤其是business logic或transaction logic,沒test run 過就放進去, : 顧客取10萬變成存10萬,到時候誰來負責? : 就算是cosmetic change,我們也是在local寫好了才存進diskette的。 : 所以我還蠻好奇您的主管為何允許您這樣搞的。 : 還是您本身就是主管,或您的老闆對您充滿120%的信心保證您一定不會出錯? : ※ 引述《Contactman.bbs@bbs.badcow.com.tw (上B只為剿小白出氣!)》之銘言: : > 我仍要重申, 你所有的言論都跟語言無關. 接手維護前人遺留的專案, 是所有Programmer的痛. : > 前人文件沒交接好, 是管理上的問題, 你竟然怪罪到JAVA太難!? : > 這好比你這種不入流的程式員賺不到錢, 一輩子窮光蛋, 不反省自己不長進不學好, 怪父母遺產太少? : > 難道用.NET不會遇到前人寫好的Library dll不知如何使用? 難道.NET沒有遇到missing library等問題? : > MS的東西真的有單純到這種地步, 就不會好幾年來陷在Dll hell的泥沼爬不出來. : > 這種管理缺失或是交接不良的問題, 是產業通病, 與語言毫無關聯. : > 再看到你連MONO都提出來了, 可見你連什麼是開發工具, 什麼是Runtime環境都不會區分, 真是令我恥笑. : > Mono跟我用什麼工具開發何干? 而且Mono是Linux上的, 我在Windows平台上做事情, 簡直祖宗八代都不相干, : > 你根本只是隨便把你萎縮的大腦內寥寥幾個聽說過的名詞拿出來招搖一下, 私底下根本什麼是什麼都一點sense. : > 用Notepad或是UltraEdite改C#的程式, 你以為不會遇到嗎? 若你的認知如此, 要不就你根本沒出社會工作, : > 再不就是出社會半年多, 都是在做些鳥不拉雞的小CASE. : > 如果你是去做Banking的案子, 一但已經上線7*24的系統出問題, 機房管制你什麼都不能帶, 只能帶一張他們 : > 提供的磁片. 然後Production機器上根本不可能讓你裝任何IDE, 你怎麼Debug? 你怎麼臨時改程式上Patch? : > 管理員不讓你安裝任何軟體, 你能做的就是複製Source Code在那張容量小到不行的磁片中, 純文字檔的Source : > code才被安管允許. : > 這樣的情形下, 靠寫入EventLog內的CodeStack追原因, 用Notepad或UltraEdit(若管理人員有裝的話)臨時修改, : > 反正機器在執行.NET, 裡面多半管理人員會安裝SDK, 然後當場在Command line底下完成Complie並上Patch. : > 你以為走到哪都有IDE可用嗎? 你以為所有開發和除錯都在你的機器上進行嗎? : > 不依靠IDE, 直接用SDK工具和簡易的系統內建文字處理程式, 是所有Advanced Engineer都該具備的技能. : > 不懂還亂放槍, 你還繼續抱著你的IDE碎碎唸JAVA好難, 然後安分當個月入兩萬五的低階程式員. : > ------------------------- : > JAVA的困境在於, 當初JAVA剛推出的目標就是一個"簡單易用, 廣泛用於網際網路不同平台的語言"(Easy & simple), : > 和MS推出.NET預設的立場"強而有力"(Powerful)完全是不同的出發點. MS一開始制定.NET一系列的語言, 就不是為了 : > 簡易為出發點. 而是為了全功能性(Full functionality). JAVA是紅起來之後, Sun才決定將它運用在 : > Enterprise Business上, 因此不對追加新features去強化其語言特性. : > 然而為了過去相容性的考量, 錯誤的根基已經造就, 學JAVA的人就往往很容易寫出效能不佳的程式. : > 但是要用Java來寫一個勘用, 可以做事情的程式, 是比用C#容易的. : > 比如說, C#強迫程式員去釐清static和non-static的method的差異, JAVA就很隨合, 反正亂寫也讓你動. : > 以下的程式碼, JAVA編譯會過, 但是C#編譯會Fail. : > class emptyClass { : > public string getValue(){ : > return ""; : > } : > public static getStaticValue(){ : > return ""; : > } : > } : > static void main(string[] args) : > { : > emptyClass o = new emptyClass(); : > o.getValue(); : > o.getStaticValue(); : > } : > Why? 因為C#.NET不允許 instance 呼叫static的method. : > 除了你以外, 全天下的人都知道new 一個instance, 很傷performance. 必須allocate memory, 還讓 : > GC的工作負擔加重. 但是這個instance的用途竟然是為了呼叫static的methos, 這就好比脫褲子放屁. : > 但是多少像你一樣的笨蛋會這樣想: 反正只要產生物件, 不管static or non-static我全部都能叫用, : > 何必釐清這麼多? new 就對了! : > Java的程式會又慢又吃記憶體不是沒道理的, 因為養壞太多Programmer. 不信? 讓VM不再支援這種叫 : > 用語法, 看是不是八成以上現行的JAVA程式全部都動不了? : > 但C#硬是不讓你犯這種錯(除非是你自己寫的class, 該static宣告的沒宣告). : > 較複雜, 定義較嚴明的語言, 真的是比鬆散易用的語言寫出更佳的程式碼. -- 我主修物理 選修計概 副修離散 唉.....三修國文 -- ╭──── Origin:<不良牛牧場> bbs.badcow.com.tw (210.200.247.200)─────╮ Welcome to SimFarm BBS -- From : [61.218.14.146] ◣◣◢ ◢◢不良牛免費撥接→電話:40586000→帳號:zoo→密碼:zoo ◣◣─╯
文章代碼(AID): #14SjrZ00 (java)
討論串 (同標題文章)
文章代碼(AID): #14SjrZ00 (java)