[轉]程序的性能與語言選擇

這個老話題從我7年前剛進入這個行業,就時不時地在網上見到討論,我自己也很關注性能這個東西。

常常我們這些程序員會說,A語言開發的程序比B語言開發的程序快N倍,或者就說快,比如彙編,C語言,C++語言,那是流行語言中執行效率高的3種,當然彙編一般人是搞不定,應用範圍也比較窄。其次是delphi, VB, PB, java等,執行速度慢些。我當年學開發是直接學C語言,把譚浩強的《c語言程序設計》細細看一遍,就冒冒然然辭職去廣東珠三角找工作,自以爲掌握了最快最流行的語言。當然頭破血流是自然的,差點轉學VB了,幸好當時堅持下來,一直靠C/C++吃飯,還過得去吧。總得來說,早期的技術人員還是相當重視效率的。

看看現在,上次我貼了張CSDN上關於“軟件2.0概念圖”, 裏面竟然多數是動態語言,如近來流行ruby,當然有些我根本不認識。我熟悉的C/C++, Java等,找了好久就沒發現。現在的大學生在學校裏學習,可能對C和C++越來越不感冒了,更不要說彙編了,他們追着Java/C#/ASP.NET, 甚至是動態語言; 這些語言一是學起來酷,二是學起來快,根本不用考慮內存泄漏,腦細胞少死很多啊; 學這些流行技術,找工作肯定是比較容易,因爲這些技術容易掌握,他們基本上就精通了。所以我們這些老古董看來很擔心了,競爭壓力日益增大啊。

事實情況真的如此嗎?我感覺老古董不必擔心。因爲現實中項目各種各樣,不是每個都是B/S方式的企業應用,有電信級的軟件要求併發和吞吐量,常常後臺就喜歡Unix+C/C++;有嵌入式開發,常常是Linux+C, VxWorks+C,甚至是彙編。很多大公司爲了避免微軟,基本上是不用.NET平臺來開發的;還有就是大公司一般是不會隨時變動開發語言的,那樣老員工的技術熟練優勢將大大減弱。所以你要想找一份好工作,一份高工資的大公司的職位,可能他們要的技術還是所謂的老技術:C/C++, Java等。

近期我還打算再深入學習一下IBM x86彙編,因爲當我看Linux源代碼時,看不懂彙編部分。爲什麼我要看這種沒用的代碼?確實對我工作沒什麼幫助,原因是我C/C++搞了這麼多年,再弄再看書也就那樣了,是需要無聊的時候分析下系統軟件了,如果那天公司說要開發一個高性能的軟件,說不定對LINUX的理解,能派上用場。我曾經去電信下某單位面試,他們想招一個VC++的高級程序員做前臺程序,即時通訊類的,如qq一類,面試中得知這個職位招人好久了,就是沒合適的,爲什麼呢,現在的大學生基本上沒人去學C++/VC++平臺了,會VC++的有C++功力的人越來越少,一般都躲到大小公司中穩定下來了。有人問爲什麼不用.NET開發,JAVA啊,答案就是小MM想聊QQ,難道她會裝.NET庫或者JDK?

我個人的學習方法是,關注流行技術,吃飯還是靠難學的老技術,和我競爭的人少啊;當然我也以前在小公司也做過技術管理,現在也隨時準備做技術管理,技術上力求精通一兩門,然後精而博,多瞭解各種流行或半流行的技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章