Re: [請益] 請問學哪個比較實用

看板Soft_Job (軟體人)作者 (Who cares?)時間16年前 (2010/02/26 09:46), 編輯推噓5(5035)
留言40則, 11人參與, 最新討論串18/19 (看更多)
lgd1008底下那段說到底,並不跟我的說法有哪邊有牴觸吧, 畢竟仍然是不同的工具適合不同的工作。 如果你有一個很強的VM,可以自動做到底下說的一切或一部份, 只要條件適當,你當然會知道用它比較好、比較輕鬆。 再說,如果從這本機到天邊一朵雲的網路傳輸時間就比在本機解決問題慢, 那朵雲再快也還是不夠好啊,除非這樣效能上不夠好的選擇有別的重大利多。 又如果離開VM來說,不管是用GPU加速或是用雲端計算, 其實都是在前面有人提過了的「在更上層解決」。 我沒有否定其他做法或者一定要限定使用某種做法, 今天如果這種「在更上層解決」或在演算法、組語作最佳化是更合適的, 或者乾脆誘拐客戶改變功能需求來迴避不好克服的效能問題比較省各種成本, 當然歡迎大家去用。 再且,GPU加速,以NV的來說,shader code/PTX -> GPU native code 這段也跟其他VM作JIT一樣,存在各種效能最佳化的挑戰。 不知道細節的人當然沒得選擇...。 我比較強調你要去了解自己用的工具,反組譯別人家的code來看是其中一種手法。 我看了一大堆反組譯後的code的心得就是,編譯器生出來的東西,有些時候, 還是有可以再tune過的空間。如果追求那幾%的效能改善很重要、很要緊,就去tune。 怎樣子定義「可以接受」,這是人人不同的,每個公司、每個案子可能都有不同定義。 沒有了解,沒有比較,就沒有得選擇怎樣子會比較好。 標題說學哪個比較實用,結果卻看到一群人在談哪個語言怎樣子表示哪個資料結構, 那在我看來,就好像一群不同神的信徒在戰誰家的神有怎樣子的好處。 講實用性,說得比較現實一點,不如說哪個東西對學的人的將來發展比較有幫助: 有機械語言/組合語言底子的人不太會受困於C/C++; C/C++學得好的人,很少會受困於Java/C#/Javascript或各種網頁程式語言。 這種時候,Python/Erlang/Lisp與其他語言的信徒又有許多話要說了。 但是在我來看,反正各種語言都是要在現行計算機結構底下運作的, 雖然標榜自己是神的很多,真主在不同平台都只有一個:機械語言。 從底層往上看,眾生平等,雞鴨狗豬、青菜跟蘿蔔還不都是食物; 所謂的執行效能,說到底,就是多少個CPU cycle在那邊跑。 可能學IC design的人也跳進來,說機械語言還不是用硬體在實現, 所以哪個哪個硬體設計語言比較實用怎樣...... 我很想說「通通都會就不會煩惱這種問題」,就像meltice會說有錢就沒問題一樣, 不過那肯定是屁話。 對於只是想混口飯吃的人,我會說學PHP/xSP(.NET)比較快有飯碗, 從零開始到能夠混一口飯吃的學習曲線短。 對於什麼事情都想搞懂的人,你已經知道我會建議什麼了: 通通都去玩玩看,比較比較,看看各個東西是怎麼運作的,很多事情會比較清楚。 不過這種人也不會來問哪個比較實用,自己就知道自己的路該怎麼走。 ※ 引述《lgd1008 (lgd1008)》之銘言: : 若是該 VM 發現該電腦上有特別的硬體, (如Java Chip) : 或是發現 現在所執行的CPU的有支援某些 SSE 指令 : 或是連發現有裝 顯示卡 ,把顯卡也拿來運算 : 或是異想天開地, 丟給最近很紅的 ....天邊一朵雲 去計算 : 或是我所沒寫出來的, 更多種種的可能 : 原本讓人覺得是 "overhead" 的 VM : 卻讓100個指令的組語, 變成反而可能是 "最慢" 的了 : 當然, 聽到這裡, 可能有人就會想, 再用組語追逐上面提的種種可能... : 甚至底下提到的GC, 自己也可以去實做出取代它的功能 : 但那就只是自己去實做出了一部份的高階語言, 或VM , 或Java罷了 這要看各功能模組的獨立程度如何,如果問題發生在沒有替代道路的主幹道上, 一個人搞出問題來,大家都會受波及。 這種事情會發生,如果不是這個人手誤,通常就是因為他不了解別人的東西在 被他搞出問題的地方的行為模式跟預期結果,改變了別人預期會有的一些事。 通常就是搞出問題的人要負責收拾,其他人頂多看時程、情節輕重跟難易度 再決定要不要下去一起修。至於其他人,只好請他們resync到出事之前的版本, 先用舊版搭上他們自己正在弄的code來做測試,減輕被波及的損失而已。 不過我本來說的事情跟這樣子不同。 我說的是,在夠巨大的軟體裡,修別人的code裡頭發現的bug是很常態的事情。 固然每個人在一個已經有兩三千萬行C/C++ code的產品裡的貢獻都只是一小部分, 一個只有幾十萬行Java/JSP code的東西也常常是眾人的心血結晶(吐血結晶?)。 有足夠能力的人被上頭的主管叫去處理別人搞爛的code, 所謂的能者多勞,是司空見慣的。 : 個人淺見 : ----- : 另外幾百個人一起寫code現實中是有的 : 不過如果其中每一個人的code, 都會跟另外幾百人有關聯 : 或是一個錯誤發生, 幾百人都要一起找bug : ...那這種案子算是很特別 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.10.18

02/26 09:48, , 1F
你組語 C++再強寫web還是要受困於html、css和js(茶)
02/26 09:48, 1F

02/26 10:47, , 2F
所以要自己重寫 browser ? XD 重寫 httpd, 甚至底層 driver
02/26 10:47, 2F

02/26 10:48, , 3F
反正.... 不過就是受限在 cpu cycle 嘛~~~
02/26 10:48, 3F

02/26 10:53, , 4F
我倒是想抗議 C/C++ 學得好的人很少受困於 Java XD
02/26 10:53, 4F

02/26 10:54, , 5F
何況 C 跟 C++ 兩個都要學得好幾乎是互斥的(逃)
02/26 10:54, 5F

02/26 10:55, , 6F
想當年我學 OO 可是吃足了苦頭啊...
02/26 10:55, 6F

02/26 12:01, , 7F
這串已經快變成各說各話鬼打牆了吧...XD
02/26 12:01, 7F

02/26 12:07, , 8F
C跟C++不能同時學好是因為太多人把C++當成是C 的 ++ 版了...
02/26 12:07, 8F

02/26 12:07, , 9F
名稱對人真是影響深遠啊
02/26 12:07, 9F

02/26 12:54, , 10F
在我看來C和C++根本就是兩種不同的語言
02/26 12:54, 10F

02/26 14:23, , 11F
想問若非本科系,只有三個月C的經驗,要用Cuda做影像處理
02/26 14:23, 11F

02/26 14:25, , 12F
對於未來職場的學習要如何規劃,才能在業界中上不佔弱勢呢
02/26 14:25, 12F

02/26 14:26, , 13F
現在打算改行 @@ 因為總覺得我好像迷路跑錯地方了
02/26 14:26, 13F

02/26 16:59, , 14F
語言不會是信仰.精通語言的語法結構,才能夠使用對的資料結構
02/26 16:59, 14F

02/26 17:00, , 15F
並不是相信或不信的問題.反觀是不熟語法結構卻堅信它也該怎
02/26 17:00, 15F

02/26 17:00, , 16F
樣從底層tune,才叫做信仰.
02/26 17:00, 16F

02/26 17:03, , 17F
至於吃到飯論,真令人感到不屑,就好像說人學東西只以面試需求
02/26 17:03, 17F

02/26 17:04, , 18F
而學;其他知識全都不重要. 剛好自我培養成粗工一個而已.
02/26 17:04, 18F

02/26 17:08, , 19F
另外,就工作的愉快程度,在底層接線接大半天和高階處理二者之
02/26 17:08, 19F

02/26 17:09, , 20F
間,當然是後者愉快,同樣都是為了加快速度,而速度只是相對的
02/26 17:09, 20F

02/26 17:09, , 21F
感覺. 你為了感覺要埋進底層管線中暈頭轉向,很有價值嗎?
02/26 17:09, 21F

02/26 21:25, , 22F
面試需求不一定只有要求熟悉語言和工具吧~很多是要求至少
02/26 21:25, 22F

02/26 21:26, , 23F
要有某些資料結構或領域知識的觀念...
02/26 21:26, 23F

02/26 21:29, , 24F
補充一下~只是想到就說~並不是對y大的留言斷章取義...
02/26 21:29, 24F

02/27 10:22, , 25F
ledia: google不就啥都想自己重寫嗎?XD
02/27 10:22, 25F

02/27 10:23, , 26F
碰過一個ntu ee master的小妹,學C一個月就用cuda作畢業專題
02/27 10:23, 26F

02/27 10:24, , 27F
解數位電視廣播的視訊
02/27 10:24, 27F

02/27 10:25, , 28F
這真的很難取捨,她其實真的才開始寫軟體一個月...XD
02/27 10:25, 28F

02/27 10:25, , 29F
可是她對問題想得出解答來...如果你是主管,你用不用她?
02/27 10:25, 29F

02/27 10:27, , 30F
她以前都是做硬體的,大學做類比,研究所才轉數位XD
02/27 10:27, 30F

02/27 10:31, , 31F
yauhh: 我國三前很信盡量善用語法結構縮短原始碼長度的想法
02/27 10:31, 31F

02/27 10:31, , 32F
但是真的從底層分析起,才發現那樣寫出來的東西效能不見得好
02/27 10:31, 32F

02/27 10:33, , 33F
以前機器比較慢,執行時間愈長,差個幾%也會差很多
02/27 10:33, 33F

02/27 10:34, , 34F
程式一寫大,與其在語法結構上做手腳,不如走OO規劃好架構
02/27 10:34, 34F

02/27 10:34, , 35F
用封裝跟多形作code reusability, 我覺得會省更多開發時間
02/27 10:34, 35F

02/27 10:40, , 36F
以神人境界為自我要求目標的人,追尋效能極致的秘訣時,
02/27 10:40, 36F

02/27 10:41, , 37F
不管是埋進底層去爬code,或是在演算法上思索,都會自得其樂
02/27 10:41, 37F

02/27 10:42, , 38F
在自己手上發現自己不知道的新道理時,那種eureka!的感動
02/27 10:42, 38F

02/27 10:43, , 39F
恐怕不是只會用現成語言與工具的人所能體會的
02/27 10:43, 39F

02/27 13:15, , 40F
A大你都能直接回一篇文了....
02/27 13:15, 40F
文章代碼(AID): #1BXoVhGP (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1BXoVhGP (Soft_Job)