“呵呵,終于成了!”小P伸個懶腰,感覺舒服極了。他回過頭看老C,正在電腦前鍵盤前扣扣扣扣的不知在忙什么。
“老C……”小P把頭湊到老C的電腦旁邊,想看看老C在忙什么。
“k!你干什么,嚇死我了。”老C被冷不丁的嚇了一跳,“呀呀,下回不要這么神出鬼沒的,多嚇人……”
“呵呵,騷蕊騷蕊,你這是干什么呢,這么專心?”
“哦,我在學習一個IDE,叫eclipse,我發現用它的CDT插件開發C/C++程序還挺方便的。”
“噢?是么?這個東東和VS6.0比哪個好用啊?”
“沒有質的區別,我感覺關鍵是個人習慣的問題。”老C想了想,“主要是一個慢慢熟悉的過程,在開始的時候有些不習慣,但是習慣了就感覺好很多。”
“你為什么要用這個東東啊?”小P有些奇怪。
“嗯,因為它是開源的啊(現在是2003年……),你用的是什么開發環境啊?”老C問。
“以前一直用的VS6.0,現在好像要出來VS.NET,我想試試……”
“你掏錢買的嗎?”
“怎么可能,當然是破解后的啊。”
“那么就是D版啦?”
“也可以這么說,有什么問題嗎?大家都是這么用的啊?”小P有些奇怪。
“唉,社會環境啊……”老C有些失落,“我就不和你討論知識產權保護的法律問題啦,就算我們買正版的錢在清朝末年就已經掏過了,但是……”老C想想應當怎么和小P解釋自己的想法,“現在環境不同了,主要的競爭規則都是我們的對手制定的,但是——如果我們想積極的融入和他們的競爭而不是自我封閉——我們就不得不遵守這些規則……”
“囧,看來你還是個大齡JY啊。”
“呵呵,無所謂大齡FQ或者JY,我想說的是我們要認清現實,畢竟我們還是要融入國際社會的……算了,扯遠了,就算是為了維護我們國內自己的市場,我們自己也要遵守一定的規則啊……”
“那和我有什么關系?”
“有關系啊,如果我們每個人都用D版,就會導致軟件市場規則被破壞,辛苦研發的因為研發成本不得不賣高一點價格的產品就會賣不出去,那么我們畢業的時候因為市場的萎縮就可能找不到工作……”
“是么?有這么恐怖嗎?那么我用國內的軟件就買正版,國外軟件用盜版就行了唄。”小P有些得意的說。
“那是更糟糕的事情,因為D版泛濫導致國內的正版軟件賣不出去,本來我們自主的軟件可能還有一些成本優勢,如果公平競爭的話也會有一席之地,但是因為D版的盛行,我們自己的產業始終無法發展起來,最后不得不進行外包工作成為上游廠商的打工仔……算了,我們先不要討論這個問題,再說我的看法也不一定正確。”
“真有這么嚴重嗎?看來我要重新認識這個問題了。”小P有些嚴肅起來,“但是不用D版我的很多正常的活動就無法進行了啊,比如編程,上網……要不我就使用文本編輯器+命令行?一步到位成為牛人?”
“呵呵,這是兩個話題。再說不使用D版我們一樣可以生活的很好,甚至更好。”
“?”
“就比如IDE,eclipse是開源的,我們就可以免費的使用,而且是在規則允許之內的。上網可以用firefox,文檔編輯可以用openoffice……總之我們日常編碼,寫文檔的東西足夠多了,如果你股溝一下,可以找到很多類似的開源項目。”
“是嗎?”
“是啊,就算是桌面環境也可以使用開源的啊,你看看我的桌面……”
“和我的xp很像啊……”
“嗯,我用的是kubuntu,你可以在網上搜索一下ubuntu。這是一個linux平臺上的開源項目,我們平常工作中需要的軟件它基本上都可以提供,而且還有不錯的多媒體播放器,聊天工具……基本上你平常在windows上可以找到的工具這里都有……”
“噢?是嗎?”
“類似的項目很多的,你可以在網上找找,選一款你喜歡的。我就用過kubuntu,ubuntu和fedora(redhat),感覺都挺不錯的。而且你可以在一套系統里面安裝多個桌面環境,我就裝過KDE和GNOME,最后因為Qt的原因選擇了kubuntu和KDE……原來用過KDevelop寫一些小代碼,最近想換個平臺無關的,就想試試eclipse+CDT。”
“等等等等,好多東西我都沒有聽說過,你在學校的BBS上給我發一封郵件吧,把這些東西的名字寫下來,我去網上搜搜。”
“呵呵,好的。這些東西都體現了free的精神……”
“Free?太好了,所以說都是免費的,而且沒有版權的問題……”
“等等,free并不是指的沒有fee,而是一種精神。就是說你可以修改,發布,傳播任何一個具有GPL的軟件,自己隨便怎么折騰都可以,但是,不能用于商業目的。如果用于商業的話,還是需要費用的。這就好像一幫油菜的人湊到一起來開發,在使用和修改上,大家都是不受限制的,但是要拿去賣錢,那就不行!”
“不能拿來賺錢啊?”小P有些失望,“那么GPL是什么東東?”
“GPL是GNU General Public License 的縮寫,你可以到網上查查它的具體內容,它的一個重要標志就是copyleft……”
“Copyleft?”
“是啊是啊,是和copyright對應的……”
“哈哈,沒有想到這些人還挺幽默的……”小P樂了,“不能賺錢,那寫軟件的人如何生活啊?”
“他們不靠這個賺錢,一般都是業余時間搞的,或者在一些非盈利基金,要么是捐助下完成的,總之都是一些衣食無憂的,物質條件極大豐富的油菜人物做的事情,不是我等還在為生活掙扎的小民可以理解的……”
“哦……”小P有些明白了,“所以說共產主義的基礎是資本主義的高級階段了!那個時候大家的物質生活極大豐富,勞動成了第一需要……”
老C有些吃驚的看著小P,覺得自己還需要重新認識一下他:“沒錯,有點這個意思,沒想到你理解到這么高的層次……”
“哪里哪里,我只是比較……油菜……而已,哈哈。”小P審慎的謙虛了一下,“對了,剛才我說到使用文本編輯器+命令行……”
“是的是的,”老C接道,“現在有些人的迷思而已,認為牛人都是使用gedit+command line的,尤其自己動手寫makefile就更牛了……”
“不是么?”
“不一定是,”老C肯定的點點頭,“牛人肯定是可以這么做的,但是……你會放著現成的成熟工業品,比如你腳上的nike不穿,蹬著一雙手工精心打造的布鞋到處跑嗎?”
“呵呵,”小P覺得這個比喻很有趣,“我想不會吧……”
“是啊是啊,所謂文本編輯器+命令行是能力,但是具有這樣的能力并不一定要這樣做。我們可以自己造鞋,但是,有必要花費這個時間和精力嗎?曾經有很牛的人寫書建議大家在項目開發的時候要使用automake工具的!”(我們這個時空的C++委員會主席(還是秘書?)的書,講C++編碼規范的,大家猜猜是什么書?^_^)
“那么就是說也沒有必要學習自己寫makefile了吧。”
“不是啊,我只是說在項目開發過程中沒有必要這樣做,但是這樣的能力——如果你想進入更高的境界——還是需要具備的,可是,前提是,請你先用好自己的 IDE,寫好自己的程序。”老C給小P解釋,“做到熟悉你的IDE就像熟悉你家一樣,因為軟件開發需要一個良好的,被你熟悉的環境;而且不要經常更換 IDE,因為做到熟悉一個IDE還是很費功夫的,不要總把時間花費到磨刀上。所以我建議你也試試eclipse+CDT吧,因為它既是開源的,又是跨平臺的,這樣你不會因為操作系統在windows和linux之間切換而產生切換IDE的苦惱。”
“是啊,這樣聽起來也挺不錯的。”
“嗯,有空去eclipse的網頁看看吧,順便看看mingwin。查查相關網頁google一下。”老C建議道。
“好的,這樣我就有了VS和eclipse兩樣工具了。”小P有些興奮起來。
“等到我們用熟悉了,我想我們還可以研究一下emacs+gcc,”老C說道,“江湖上有一個傳說,如果你熟悉emacs+gcc,就再嘗試嘗試IDE;如果你習慣于IDE,那么請嘗試一下emacs。”
“嗯,那應當是以后的事情了。”
“是啊是啊,我們不需要太著急,否則就像一個古老的神秘傳說……”
“什么?”
“在很久很久很久久久久……以前,有一個人看到別人蓋了三層樓,心里很是羨慕,于是……”
“哈哈哈哈,老C我發現你也挺油菜的啊!”
“呵呵,”老C停止了和小P的說笑,覺得下午的疲倦一掃而空,“對了,剛才你在忙什么呢?”
“喔,我在做C++的練習題目。”
“是么?這么刻苦,厲害。什么題目?”
“呵呵,還挺有趣的,說是用C++的格式輸出cout在屏幕上輸出各種對齊的數據,用*號組成一個五角星,還有……”
“天,功不是這樣用的,習不是這樣學的……”老C有些囧,“扔掉那本爛書吧,沒有這樣學習C++的。”
“?,那應當怎么學?”
“我們學習任何一個東西,應當都是先整體的過一遍,有一個整體的,居高臨下的,提綱挈領的全局觀,然后第二遍再深入細節。這樣才可以抓住重點,不至于淹沒在細節的海洋中。”老C開始諄諄教導,“比如C++,我們開始學習的時候應當先有一個總體的概念,比如說面向對象,類,繼承和封裝,再深入一些是模版,泛型,正交,STL,TR1。而且學習的過程應當是迭代的——幾乎學習任何東西都是這樣——先形成一個大局觀,再在細節上深入把握。比如學習數學,我們先認識自然數,然后四則運算,如何在一定范圍內解決問題;然后加入了0,再學習加入0后的正整數的四則運算,再解決一些問題,比如簡單的方程等等;然后加入負數的概念,然后是加入負數的四則運算……最后是虛數,復數;最后是微積分,級數,以及他們所要解決的問題。如果一上來你就埋頭于如何解二元一次方程,請問你的數學能學好嗎?你知道學習數學有什么用嗎?遇到實際問題需要發揮你的數學功夫的時候你能解決問題嗎?所以走路一定要正確,如果走在錯誤的路上,花費的功夫越多,偏離的越遠,反而不如不走……”
“哦,我只知道學習語言要多運用,多實踐,還真沒有想過方法的問題。”小P有些郁悶,“那么怎么學呢?”
“呵呵,你大概沒有看《Teach Yourself Programming in Ten Years》這篇文章吧……利用你的朋友,利用你的網絡啊。”
“?”小P突然明白了,“是不是你想讓我請你吃飯啊?”
“呵呵,聰明啊,”老C覺得和小P溝通起來真是通順,“包括但不限于今天的晚飯,回來我幫你安裝一下eclipse和mingwin,我們一起來學習這個IDE,同時再給你說說如何學習C++。”
“好啊,走,吃飯去,我請!你說是幾食堂吧。”
“太~小氣了吧,好歹也要請個蓋澆飯吧……”
“呵呵,我其實是開玩笑的,我們南門口新開了一家刀削面……”
“我暈,我倒……走吧……”
(這不是他們最后一次談論關于C++的話題)