適合新手的程式語言

最近在 Quora 討論區上,發現有許多人會問那個程式語言適合新手,我相信國內也有一些朋友會詢問這個問題。很多人會說 Python,也有一些人說 Java 或其他的語言。雖然這是一個老問題,但筆者也提出一些個人的意見,供大家參考。 說實在的,語言的選擇,其實並沒有想像中那麼重要。在程式設計中,學習語法其實只是其中一部分,占學習程式設計的時間不會很久。對於初學者來說,第一個語言的時間會比較久,這是由於一開始沒有相關的經驗,一邊學習新語法,一邊還要學習程式設計的概念。但對於有經驗的程式設計者來說,語法本身不是占最多時間的,反而是這個語言相關的生態圈,包括套件、函式庫、框架等,需要花更多的時間去熟悉。所以,筆者也不建議頻繁地更換語言,這樣只是在基本的議題上打轉。 撰寫程式的目的,是將待解...
「點我閱讀更多」

Corona SDK 小感

由於 Corona SDK 不是主流的框架,說實在的,相關的資源也不多,中文相關的資料更是稀少,這種現象對於初學者來說相對不利。日前剛好使用 Corona SDK 實作一個專案的軟體,剛好在這裡提供一些想法,供日後有需要的讀者一些參考。我要先說明一下,我的 mobile app 不是電腦遊戲,而是 business app,這篇文章僅代表 Corona SDK 一部分的面貌。 首先,Corona SDK 使用 Lua 做為其腳本語言,而這不是一個主流的程式語言。筆者先前已撰寫另一篇文章討論這個議題,基本上,Lua 是一個易學的語言,讀者不太需要過度擔心這件事情。由於 Corona SDK 所提供的 Lua API 的方法呼叫都蠻簡短的,也有提供範例和專案展示,足以學習這個框架。不過,...
「點我閱讀更多」

Lua 小感

雖然 Lua 不是一個主流語言,我們可能會在不經意的情況下接觸到 Lua,像是 Corona (原 Corona SDK)、Cocos2d-x、Gideros Studio、Defold、World of Warcraft 外掛等。由於 Lua 的執行環境很小,很容易內嵌在其他軟體中,很多遊戲引擎或其他軟體選擇 Lua 做為腳本語言。由於 Lua 不是一個主流的語言,可能會讓人遲疑是否要使用這些 Lua 相關的軟體。筆者先前以 Corona SDK 開發了一個專案,剛好來談談 Lua 這個語言。 整體來說,Lua 相當易學,這也是當初 Lua 設計的目標之一。有程式設計經驗的 Lua 使用者,可以在幾週內就學完大部分的 Lua 語法,開始將 Lua 用於自己的專案。以筆者為例,筆者非...
「點我閱讀更多」

跨平台工具的甜蜜陷阱

跨平台 (cross-platform) 一直是程式設計圈子不斷出現的話題,從 C 開始,程式設計師試著處理平台可攜性 (portability),到了 Java,跨平台變成了一個響亮的口號,影響後來,近年來的高階語言很少不能跨平台的,甚至還有 Haxe 這種直接以跨平台為主打的語言。隨著行動科技及 Raspberry Pi 等裝置的興起,程式設計師又要面對更多的異質平台。如果以 “cross-platform mobile framework” 為關鍵字,也可以搜尋到不少新的框架,像是 Xamarin、Corona SDK、RubyMotion、LiveCode、Xojo 等等。對於不想學習那麼多種程式語言的程式設計者來說,跨平台工具就像是蜜糖般誘人。實際上真的那麼好嗎? 雖然演算...
「點我閱讀更多」

領域專用語言:程式語言的利基市場

對於程式語言有興趣的讀者,可能會主動接觸數個主流市場的程式語言,包括 C++、Java、Python 等,甚至,會開始將注意力伸向其他相對冷門的語言,像是 Clojure、Haskell 等。除了學習許多不同的語言外,是否也有想過創造自己的程式語言呢?如果我們將 Python 視為軟體,那麼,Python 命令稿就是操作 Python 的方法。程式語言背後的執行者就是編譯器和直譯器,而製作編譯器和直譯器不是黑魔法,而是有科學的方法可遒循。那麼,我們要如何切入程式語言的領域呢? 一個通用型程式語言的流行,不是一朝一夕可成的。松本行弘 (Ruby 發明者) 就曾經說過,程式語言大約要經過十年的時光,才能變成廣泛討論及使用的語言。而我們要開發一個新的語言,是否一定要用 C 語言從頭開始打造...
「點我閱讀更多」