Skip to main content

先天與後天程式語言風格

· 2 min read

最近看到一篇 Ruby 跟 Python 本質上不同

我也注意到一個現象:

偏向 c/c++/asp/php 的開發者對 Python 接受度較高,偏向 perl 的使用者則偏好 Ruby。 因為不管是 Python 還是 Ruby,要開發網頁都得寫 JavaScript,所以 JavaScript 沒有辨識度。

Python 像是先天武功密笈,不論資質,學了後一旦出招,都帶有 Pythonic 風格。 因為每個人寫起來的 Python 程式風格一致,更容易讓自己專注於內容。 而且學了 Pythonic 風格,自己使用其他語言寫作時也會想要盡量同樣簡明。

Python 社群的 Web 開發上也有更多的選擇,可以由禪入道 (TurboGears)、由佛入道 (Django),或從諸多現成的組件中挑選,自行花幾個鐘頭打造一個。

魔幻語言則是武林密笈,靠著投靠門派,依師父傳授某些密籍 (開發、命名方法) 來鍛鍊自己的風格。

例如 Javascript 就從早期混著寫的方式,到近期 AJAX 興起,鼓吹 JS 與 HTML 分離的風格。永遠得追逐著非關語言的變化,來調整自己出招的方式。

學的好的有了自己的風格,學的不好的如邯鄲學步。

接了別人開始的案子要維護時,要按自己的風格重改過呢,還是照著前人的風格呢? 或是,就這麼接受風格混亂的程式碼,到最後難以維護?

開源的 Java 社群正向著水銀遷移

· One min read

剛剛發現開源的 Java 社群在版本控制系統 (version control) 的選擇,正向著 Python mercurial 遷移。

證據是 Mercurial 的官方網站上列出了近期的幾個 Sun 的重要專案都採用了 Mercurial:

2007-12-05 OpenJDK (aka Java) switches to Mercurial

2006-10-18 OpenSolaris announces ON Mercurial repository mirror

包含 Sun 官方的 Java、NetBeans 跟 OpenSolaris 都採用 mercurial 分散式版本控制系統。 這對社群有極佳的示範作用。

試想一下,就跟許多 Linux 發佈套件開始用 BT 來分流一樣。 既然都開放下載了,用分散式的版本控制系統有助 Sun 降低其公司的網路流量,應該能省下不少花費。

另外,在 Windows 上相當有名的 tortoise 系列圖形化版本控制工具也出了 Mercurial 版囉,名叫tortoisehg。(另外兩種是 tortoisecvs 跟 tortoisesvn)

深入淺出 Android 手機應用程式設計,發佈

· 3 min read

深入淺出 Android 手機應用程式設計 是我從 11/12 Android 剛發佈即開始著手準備的寫作計畫。

當 Android 剛發佈時我馬上下載來玩了幾天,發現這是個很有趣的平台:Android 既是手機作業系統,卻有跨多平台 (Windows、Mac、Linux) 的開發工具;既是 Linux 平台,卻有許多類似 Web 開發的感覺。獨特的行程 (Process) 管理方式,讓程式運作起來頗有 Palm 平台反應迅速的風範。完整的上網功能,搭配 Google 地圖、Gmail 等服務,讓我看到許多不一樣的可能性。手上 Palm Treo650 用了多年,看來下一隻應該就是 Android 手機了。

我本身有一些 Palm 程式開發經驗、也有一些 Web 開發經驗,從 Android 並不是那麼完整的文件裡,也得到了一些領會。 個人自覺程式才華沒有到賺那大獎賽千萬獎金的境界,而快速地理解並與其他人分享才是我的長處。因此,寫些快快樂樂學 Android 教學文件,讓台灣的朋友也能快速上手 Android ,讓大家更有把握去賺那 Android 大獎賽的 1000 萬也許是個好主意。於是有了要寫些什麼的概念後,找了同學 Crota 一起腦力激盪,就開始動鍵盤寫作了。

寫作的同時當然也有想出書的念頭。透過朋友 Tib 跟 Yu 聯繫過 D 出版社跟 F 出版社,兩個出版社紛紛反應現在書市慘澹。由於手機軟體開發並非一般程式員會接觸到的課題,所以出版社覺得在台灣的市場恐怕不大,暫時沒有出版的計畫。

我想,既然一時沒有出版的計畫,那麼就乾脆回到原本的初衷,抱著希望讓台灣的朋友也能快速上手 Android 而能去參與比賽的想法,就來公開目前寫好的章節吧 XD

本書的目標讀者是這些人,你是否也是其中之一呢?

  • Windows/Mac/Linux 各平台使用者
  • 想學寫 Android 手機應用程式的人
  • 想知道如何取得 Android 免費開發工具與資源的人
  • 懂英文能上網的人
  • 想知道怎麼查 Android 線上文件的人
  • 有點物件導向 (OO) 程式經驗的人
  • J2ME/Java 學習者 / 開發者目前已於 GoogleCode 上公開了一部份章節內容,剩下的將慢慢補上。有些部份還只是初步的草稿,請持續關注深入淺出 Android 手機應用程式設計 。並歡迎提供建議。

PS: androidbmi 專案中的程式碼,即來自於書中的範例。