曾有朋友想要學習寫一些window ap,但是並非專業的程式設計人員,只是想自己寫幾個給自己用的工具程式。所以請我推薦一下他可以怎麼學習,學習什麼工具。既然只是業餘的程式設計,當然就不用推荐太heavy的工具或是要他從頭學起,畢竟他只需要寫幾個輔助性質的工具程式,真要他從基礎學起會嚇所有人。
其實我一直認為像這種真正可以對人的生活幫的上忙的程式才是最有用的工具程式。E化或自動化的目的是要減少人的負擔或是消弭因為人有些行為無法很精準帶來的困擾。
當然以light user來說,一樣重新學一種程式語言的話。我的推薦當然會是Java或C#為首選。如果有C/C++的基礎,那就採用C/C++即可。當然Visual basic也是一種選擇。因為以一般的user來說,大部分的程式設計語言都能滿足他們的一般性需求。所以重點就變成選擇一個學習門檻不要太高、有較多人討論、有豐富的函式庫以及另一個重點-可視覺化的設計視窗介面-的開發工具。這樣有問題時較容易和別人討論得到解答,也可以用豐富的函式庫協助他省下許多事。
有許多商業的開發工具像Borland的C++ Builder,Microsoft的Visual Studio, 都很優秀,也很便利。不過在價格上就比較不親和一點。所以我這裡就記錄一下個人知道的免費開發工具裡比較好用又有視覺化的設計適合light user。C#我比較不熟悉,所以就以Java和C/C++為主 了。
Java
Eclipse
Java的領域裡提到免費IDE第一個想到的就是Eclipse。雖然說Java本身就提供了視窗計設的package,但是為Eclipse所開發出來的SWT (Standard Widget Toolkit) 比Java內建的AWT或Swing更好用,效能也更好。SWT的最佳範例就是Eclipse本身,Eclipse就是使用SWT來開始他的視窗介面。基本的Eclipse並沒有包含可視覺化的設計視窗,但有其他免費及商業的Plug-in可用。而且Eclipse不只可用於Java,也可利用Plug-in擴充成為開發其他語言的IDE。
NetBeans
NetBeans是由Java的老大哥Sun所開放出來的免費IDE,本身就有視覺化的設計視窗介面。但是他是使用Java的Swing做為視窗介面元件和Eclipse不一樣。
C/C++
C/C++的視窗設計需要視窗函式庫。如果視窗函式庫還具有跨平台的能力,那設計出來的程式自然也就具有跨平台的能力了。這裡我只提C/C++具有跨平台的又具有視覺化的設計視窗的IDE。
wxDev-C++
wxDev-C++看名字就可以猜到跟Dev-C++跟wxWidgets應該有點關連。沒錯,wxDev-C++就是Dev-C++的擴充。加上一個form designer讓你可以用視覺化設計wxWidgets的dialog及frame。但是由於Dev-C++是由Delphi開發的,所以只有windows的版本可使用。wxWidgets是一套跨平台的函式庫。可以讓你的程式在不需大幅修改就能跨平台執行。wxWidgets不只提供了視窗的函式庫,連socket, xml, 甚至是OpenGL都有提供,是很好的跨平台solution。另外值得一提的是除了C/C++,配合一些binding ,wxWidgets也可以讓其他的語言使用,python, ruby, perl都能用。
Ultimate++
Ultimate++既是一個IDE也是一個視窗函式庫。支援標準的C++,設計理念也很新。但是因為比較年輕,所以相關的討論和文件相較之下比較少。也可以配合其他如GCC或是Visual C++的compiler使用。不過他的函式庫和IDE是整合在一起的,所以要用他的函式庫好像就只能使用他本身這個IDE了。
KDevelop
KDevelop一開始是要給KDE(K Desktop Environment 可用於Unix-like系統上的桌面環境)一個比較好用的IDE。後來慢慢變成一個通用的IDE環境。如果使用KDevelop最直接就是配合QT這個視窗函式庫使用。QT也是一個相當完整又成熟的跨平台視窗函式庫,還得過許多大獎。QT甚至還有embedded版本。不過比較可惜是QT for windows不是免費的,不過仍是相當好的一個選擇。KDevelop不管在Linux或Windows都可使用,配合QT-Designer,就能有視覺化視窗介面設計能力。
另外有一些是只有做視覺化視窗介面設計,但並沒和開發環境整合在一起,對新手來說是比較麻煩一點,但順便紀錄一下。
Glade
Glade是gtk+的UI Designer,只能做UI的design,做完後存成xml。其他的任何language只要配合libglade這個library就能使用你的UI設計。
wxGlade
wxGlade由名字可猜得到可能是由Glade所啟發的Idea。事實上,wxGlade一樣是UI designer,也只能做UI design。但是wxGlade做出來的結果是使用wxWidgets,他能將你的設計轉化成程式碼,讓你的程式使用。特別要提的是wxGlade是用python+wxWidget寫的。
沒有留言:
張貼留言