2008年9月30日 星期二

《我的終極武器─VB、PHP、Python,以及開發他們的IDE。》

人人都想只學會一種語言之後就可以行遍天下,不管什麼方面的應用都可以輕鬆解決。觀望這麼久後,科技依然沒有進步到讓這個願望成真的可能。有一好,就沒兩好;重點是明白自己的需求到什麼程度。
自己比較常寫程式來跑一些科學運算的結果,和一些網路資料處理所需的CGI而已。我不是一個專業的Programmer,太高深的技術沒用。所以我的需求就是「簡單」、「能快速完成目標」的程式語言。目前主流的程式應付我的所需是足夠的,但未必都能很簡單寫出來。每個程式都有它的強項和弱點,比如說VB可以很快的把程式做出個樣子,這邊拉一拉,那邊放一放,再補些程式碼就差不多了。可是受限它的語法規則,科學運算的表示上就顯得冗長。更重要的是,VB只能在WINDOWS下跑,unix-like就要重新設計(再用什麼語言寫?),多麻煩阿!。為了維持簡單的原則,"Simplicity is rule",我決定針對不同應用,選出了最容易完成的三種程式語言。下面這個表格分析三個程式語言的特長,以及它們適用的範圍。



Visual Basic .net 2008 express
我是從VB 6.0開始接觸這種語言,進入.NET時代後,其風貌已有翻天覆地的改變了。它是由Micorsoft公司出品的,所以當然是需要$$。值得鼓勵的是在2005、2008都有針對學生族群提出所謂express的免費版本供人下載。express比較起正式版是精簡了很多功能,但對於個人的project、一般程式運用上已經足夠。它最大的優點在於能很快的表達你的想法,因為有很多好用的工具省去寫一大堆code。舉凡GUI、資料庫、網路程式設計,基本的應用都沒問題。IDE的設計非常user-friendly,很容易操作。同一家公司出的,與WINDOWS系統當然是合作無間。此外,要稍微注意它的系統要求,2008版須在.net framework 2.0以上,如果你不確定的話就升級到最新,目前是.net framework 3.5 sp1。升級過程中,是會驗證是否為正版的WINDOWS軟體,所以若你用的不是正版可能就要用其他管道升級了。

PHP
PHP可說是為了Web的應用而發展的程式,凡是瀏覽的網頁涉及資料處理、數據運算、記錄、資料庫之類的動態網頁,都是它的專長範圍。它屬於一種腳本程式(scripting language),可內嵌在HTML語言中,也可單獨存在。由於他是專門處理網頁資訊,所以運行環境當然必須是具備apache(freeware)或是iis(在WINDOWS XP Professional光碟本身就有)的伺服器(server)電腦才行。在PHP的安裝過程中(建議下載installer比較方便),它會問你是使用前者還是後者。如果用apache,就選你用的版本;如果是用iis,就選有的"iis ISAPI module"字樣選項。
我使用的開發環境是eclipse。它可是赫赫有名阿,本來是ibm用來開發java的平台,開放後各路人馬加入不同的plug-in擴充成無所不能的大怪獸XD。PHP語言本身是跨平台,更棒的是eclipse在WINDOWS、Linux32,64、Mac OS X 都可以跑。「PDT」就是eclipse專為撰寫PHP程式所發展的專案,只要去它們的官網下載馬上就能用。目前穩定版本是PDT 1.0.3,今年12月底2.0版應該就會出。順道一提另一個有名的專案「CDT」是專為C/C++開發的project,有在用C的人可以參考一下,畢竟是免費的。

Python
這是我最近學的語言,它的語法對於處理數值或文字資料相當方便。又支援正規表示法,可以從混亂的資料中擷取出有用的資訊。事實上它的功能幾乎是無所不能,從GUI、一般應用程式、網路程式、資料庫、CGI都可以使用,只是未必都這麼容易達成。比如說要寫個GUI的介面,可以用PythonWin、Tkinter、PyGTK、wxPython...等,評估下來對我來說都太麻煩、太複雜,不如用VB來得簡單。所以我只會用Python來處理科學上的運算或是資料的整理方面。
巧的是在eclipse也有開發給Python的plug-in,稱為Pydev。安裝過程很簡單,只要在eclipse內help功能表內進行新增套件即可。要注意的是預設的套間網站並未含有Pydev,須新增它們的網址http://pydev.sourceforge.net/updates/ 才找得到此套件。所以Python和PHP用同一個IDE介面進行程式設計就可以了。


藉由PHP、VB、Python三者的合作,我就可以寫出具備較多功能的project。理想上,三者彼此可以透過內部網路(port)進行溝通,VB和Python會比較順利,但與PHP可能會有困難。不過,PHP是用來處理網頁的部份,stand by的機會本來就不多。近期可能會嘗試寫一個具有單機和網路介面的會員管理系統,來證實一下這鐵三角的可行性。