1. 程式人生 > >中國Linux程式設計師生存現狀

中國Linux程式設計師生存現狀



《程式設計師》記者/閆輝

Linux,在很多人看來,是一個既熟悉又陌生的名詞,好像時時在我們的周圍,但又抓不到它真實的一面。在我們的印象中,Linux同著網路經濟的泡沫息息相關。隨著網路經濟的江河日下,Linux的聲音也低沉了下來,只是偶爾揮動幾下手臂,便又消失的無影無蹤。不過,當我們為C#還是Java誰更有前途爭論的不亦樂乎的時候,希望視線中不要忽視還有一批在Linux上做開發和研究的程式設計師。雖然相對於Windows平臺的開發者數量,他們少的可憐,但他們也是一股新力量,同樣在為中國軟體產業的發展創造著價值。現在就讓我們走近這些Linux程式設計師,瞭解他們的工作和內心世界吧!

中國有多少Linux程式設計師?他們收入高嗎?


談到Linux程式設計師的數量,我們很難得到確切的資料。實際上,從巨集觀上來講,單以自由軟體的範疇,有很多使用Perl、PHP等指令碼語言開發的程式設計師,這些程式能夠在Linux系統平臺上執行。但大家認為做這些工作的還不能算是Linux程式設計師,因為這些開發往往也是在Windows平臺上進行的。除去此種類型的程式設計師,真正的Linux程式設計師的便寥寥無幾了。有人這樣計算:國內擁有一百名左右開發人員的Linux軟體公司不過幾家,比如紅旗、中軟、TurboLinux、衝浪等。除此之外,還有十家左右的冠以Linux名稱的小公司,這些公司的程式設計師一般不超過二三十人,此外還有一些沒有使用Linux名稱,但事實上也部分從事Linux相關開發的公司,而這樣的公司也不會超過幾十家。

當然除了公司之外,還有很大一部分做Linux開發研究的集中高等院校,比如中科院、清華大學、北大大學、浙江大學,還有杭州理工大學等。因為Linux在很大層面上仍是具有科研價值的載體,另一方面,這些學校由於歷史的原因或者同國外的Linux機構有很好的合作關係,還有學校也開設了相應的課程。這些院校也是Linux技術發展最為迅速,氣氛最為活躍的場所,無論是Linux的講座還是沙龍都會吸引眾多學生和程式設計師的參與。

從網際網路上看,國內最大的Linux論壇LinuxForum有會員五萬名,除去很大一部分參與的愛好者,有人認為國內Linux程式設計師的數目不超過一萬。既然做linux開發的程式設計師數目很少,物以稀為貴,自然他們的收入也高一些。但絕大部分Linux公司現在還沒有盈利,而且隨著Dot Com經濟的破滅,這些公司也不可能支付天價的工資,所以在我們的採訪中,瞭解到高出的程度也是非常有限的,有位市場人員估計同等水平的開發人員,大概Linux比Windows平臺做開發的工資要高30%左右。

Linux程式設計師在做什麼?

就此問題我們採訪了國內幾家最大的Linux軟體廠商。紅旗Linux嵌入事業部高階經理魏永明說:“公司現在的開發方向有幾個:系統安全產品、伺服器軟體、嵌入式軟體開發,此外還有桌面的Linux系統,而嵌入式軟體開發部門的人員是最多的。”TurboLinux公司的市場負責人說他們現在的主要在做Linux中文化產品和相應的解決方案,比如Mail和Web系統等,另外也從事一些對作業系統核心的優化、調整,但具體到作業系統的核心機制研究,一般主要是其公司的研究機構在國外做。

除了這些在公司接觸到Linux開發的程式設計師之外,很多人也在做一些專案的開發。由於Linux屬於自由軟體(OpenSource)的範疇,所以這些專案也同國際上的OpenSource機構有密切的合作關係。比如魏永明現在就在做一個MiniGUI的專案,此外有國防科技大學的章文嵩也在做一個有國際影響的專案LVS(Linux集群系統),在這些專案的周圍,往往團結著很多的Linux程式設計師,他們從中學習到了很多知識,並以此為樂。

實際上,國內Linux開發的方向現在仍然存在一些問題,最重要的就是技術和業務方向不專一。在這方面,美國和德國公司要成熟的多,也比我們踏實,每個公司都“術業有專攻”,比如美國HardHat公司,就專門研究Linux嵌入式作業系統的基本系統,並憑此牢牢把握住了自己的技術優勢。而芬蘭的一家公司Troll TECH就專注於做嵌入式系統的操作介面QT,此外還有很多人都知道的Opera公司也將自己的注意力集中到嵌入作業系統中的瀏覽器技術。而國內現在還缺少做Linux開發的專業化公司,現實的情況是,很多公司大包大攬,但最終什麼也沒有做成。

Linux程式設計師如何提高自己的技術水平?

Linux出現的時間很晚,而Linux真正進入到應用層,尤其是進入中國的時間也就是在一九九八年底左右。沒有時間和積累,任何事物都不可能完美的發展,所以有人說中國Linux處於初級的初級階段。在這種現實情況下,很難找到更多高質量的書籍,也沒有更多好的老師,Linux程式設計師的學習途徑有哪些呢?在我們採訪中,深深體會到了自力更生的含義,也再次領略到了網路帶給開發者的好處。

“國內Linux程式設計師數目很少,自然圈子也很小。這樣也就要求我們不得不從內部更好的挖掘潛能。”在Linux軟體公司中,內部會有一些做法,除了內部網上的一些技術交流,他們還經常座談,某人在某個方面技術有一定的特長或者心得體會,就會上臺給大家講。“此外我們經常性的要求每個人都講講自己最近遇到的問題,讓所有人都參與解決。這樣不僅可以提高大家的技術水平,還凝聚了開發團隊。”

“在公司內部,做專案或者產品開發的過程中,我們也會著重的使用一些軟體過程控制方法來促進技術提升。比如有一種軟體工程方法Extreme Programming(譯:程式設計風暴或極度程式設計),其中有幾種很好的方法。比如Pair Programming,就是成對程式設計,從嚴格意義上講,這種方法要求兩個人在同一臺機器上、同一個鍵盤前、完成同一項開發。而我們把這種方法簡化為一種學習方法,並制定了一個規定,就是要求水平比較高的程式設計師每週都要帶領另外的程式設計師,利用一個或者兩個工作時間來做同一件事情,這個方法是很有效的。”

從外部交流方面,Linux程式設計師主要參加一些民間的交流團體,比如非常有名的AKA組織。這個組織最早是由清華大學發起、以資訊科技研討為主的協會。他們去年做了兩期面向大眾的Linux技術培訓,並得到了藍點和IBM的贊助,效果非常不錯。現在轉向了面向Linux專業的程式設計師和愛好者的團體。他們舉辦的講座也越來越專業,一般採用專題的形式,每週一次,主要講述Linux核心方面的技術,檔案管理等等。每次講座,能容納數百人的教室都座無虛席,講座地點也主要集中在北大,清華,或者中科院。還有一種就是沙龍的形式,在北京大學有一個積極參與的AKA的成員,他經常幫助找場地來舉行聚會。另外還有像LinuxForum這樣的論壇或者IBM的Linux技術交流站點,很多Linux程式設計師也經常寫一些總結性的技術文章,相互交流。”

不過在我們的採訪中,發現國內大部分Linux程式設計師和國外的交流非常少,這是我們做的比較弱的一項。要知道Linux起源於國外,Linux技術發展的最成熟的也在國外,如何能更好的同國外的技術同步,應該是每個Linux程式設計師感到非常頭疼的問題,而這個問題的產生想來同國內程式設計師英文語言的交流能力差有密切的關係。自力更生不是壞事,但學學“拿來主義”應該更有好處!

中國Linux開發氛圍如何?

一般說來,國外自由軟體的氛圍非常的好,比如一個人去做某個自由軟體專案,很快周圍就會聚集一些人關注,並且會幫助他做版本的檢錯和測試。反觀國內,魏永明說自己在開始做MiniGui專案的時候,很長一段時間仍然還是一個人做核心的工作,雖然有一些人也問一些問題,但從總體上看,受關注的程度同國外是沒有辦法相比的。沒有人花費時間和精力來幫他做測試或者編寫一些文件的工作,頂多就是寫一個心得體會,而這樣的人也少的可憐。

不過目前這種情況正在逐漸好轉,國內越來越多的人開始關注自由軟體了。“國內整個Linux開發氛圍的改進是需要很長的一段時間的。但現在可以看到一點的曙光了。現在只要我們發行一個新版本,立刻就有一些人下載,並幫助測試Bug,發現了錯誤,就給我寫mail,一些使用者還寫了很多使用的文章,探討如何解決問題。這樣我們在下一個版本釋出的時候,便會把解決這些問題並修改我們的核心。所以我認為,自由軟體的氛圍正在向好的方面轉變。”

談到軟體的協作開發,魏永明認為國內的協同開發還是比較原始的。國外的做法一般是用CVS,把CVS伺服器建在網路上,然後大家協同開發,隨時可以保持同步。但國內很多是在公司內部有CVS,釋出之後,面向大眾發放測試的過程中,只是打包成程式之後給使用者使用測試,並沒有使用CVS來進行控制。“所以我們下一步,準備等版本穩定之後,建立外部的CVS伺服器。”

國內程式設計師之間交流還有一個奇怪的現象:就是大家都喜愛論壇。但在國外,使用最多的是兩種途徑:一種是郵件列表,一種是新聞組。國內的開發者並不太喜歡這兩種方式。“當然在國內找一種免費的郵件列表服務是很困難的。我曾經找過很多,都不好用,後來我在美國一個網站上建立了一個郵件列表,但很少有人蔘與進來。但當我開一個論壇的時候,很多人都會在上面發言,踴躍參與。”這個現象後面的深層原因是什麼呢?

Linux開發技術是不是很難?

TurboLinux公司研發部負責TurboHA開發的專案經理(TurboHA和章文嵩的LVS同屬叢集軟體,不過LVS是負載均衡叢集,TurboHA是高可用性叢集,分別適用於不同型別的服務。)於瀟洋認為:”linux技術的難度未必比windows高多少,實際上,linux開發也分為兩個層次:第一個層次,比如做核心、中介軟體、或者資料庫系統,這些要求對系統瞭解的非常清楚,C語言的功底非常紮實,對系統的開發工具鏈非常清楚,才能做這些工作。第二個層次就是做Linux上的應用開發,在linux中,有字元介面的開發和X下的開發,現在Linux環境下已經有了比較好的整合開發環境,也包括borland出品的kylix,如果要做應用開發的話,只要邁過了Linux命令的門檻,其他的和windows下面沒有什麼不同,即便是對於命令,你也會從中感受到linux的強大。比如做文字的字串,在windows下面,必須要工具開啟文字,搜尋替換,但在linux下面只需要兩個命令就可以實現批量的替換。我認為windows下面的程式設計師也很容易轉移到linux下面的開發工作。任何一個程式設計師沒有必要去害怕技術的堡壘。”

什麼樣的人做Linux程式設計師?

在我們採訪的很多Linux程式設計師中,主要的有兩種心態:一種是自身就看好linux的發展前景,認同linux的發展模式,尤其是自由軟體的精神。他們感覺Linux有很好的優勢,認為在這個平臺上通過自己的努力,可以做出一些成就。而另外的便是很多人都有的遊歷心態,也就是打工者的心態。他們覺得做什麼都一樣,做Linux給的高一些,也就做這個好了。

Linux這種精神,這種開放原始碼的方式,對於哪些願意刨根問底、喜歡鑽研探索的程式設計師有很大的吸引力。他們認為Windows上做開發的程式設計師,由於所處的層面已經很高,在開放的過程中,實際上並不瞭解程式是如何運作的。但在基於Linux的開發中,會對系統瞭解的很深入。水平非常高的hacker,甚至對自己軟體程式碼產生的二進位制資料流在計算機中的運行了如指掌。

另外一個角度上講,Linux上的開發範圍很廣,無論是Web伺服器,還是MySQL、PHP程式的開發,都離不開Linux。事實上,Linux已經成為了技術交流和發展的一塊非常好的土壤。

所以,如果你喜歡自由(Free)和控制(Control),如果你是一個願意去探索新技術、新事物的程式設計師,那可以試著去了解Linux,從中你會發現它會給你帶來很多其他平臺上沒有的東西。

Linux的發展前景

國內的Linux沒有得到更好的發展,也同反盜版力度不夠有一定的關係,由於反盜版的力度不夠,現有的企業沒有看到windows平臺上潛在的資金投入,在這方面,我們要向韓國和德國等國家學習,他們從政策上對linux扶持的力度更大。當然我們國家也在積極的扶持linux的發展。

此外諸如IBM等大公司投入資金大量的資金來從事Linux研究和推廣,他們如此看中Linux,一方面是從自己發展戰略考慮,因為微軟對其地位產生的巨大挑戰,所以要樹立一個對手去挑戰微軟。與此同時,推廣Linux也可以促進其伺服器的銷售,這些投入對linux的發展提供豐富的機會。

做linux的機會要多一些,比如做windows程式設計師,數目眾多,競爭也越來越激烈了。而相對來說,linux上做開發的程式設計師很少,只要你做一段時間,就可以做的很好。從提高技術實力方面講,因為linux更接近底層,因此效果會更好的。

“從我個人的經歷看,開始大家都是由愛好者為主,但現在,專業做Linux的公司比較務實了。去年做的時候,我們還給客戶一種沒有實力的感覺,但現在從市場的反饋來看,國內的Linux技術提高非常快,前景非常不錯,linux在未來的幾年會有大的發展。”魏永明對此非常自信。


後記:記得很多人曾經遺憾中國為什麼沒有誕生比爾蓋茨和Linus這樣的軟體天才,很多人質問為什麼中國的軟體技術只能圍繞著”中文”兩個字。但看看自己的周圍,很多人包括在學校期間不用擔心收入,課程負擔也不重,但就是很少有人蔘與技術的鑽研中,在空閒的時候,更多的是去QQ上聊天,去論壇灌水,很少有人靜下心來,花一些時間去鑽研技術。Linux現在提供了我們這樣一個機會,你有興趣嗎?