10分鐘嘗試10種程式語言

類別: IT
標籤: 程式語言

世界上有很多有趣的程式語言,但下載它們、安裝程式設計環境可能會是一件非常耗時的事情,而你很可能只想試一下。好訊息是,你可以直接在瀏覽器裡執行很多的程式語言,通常還有附帶有一些教程來指導你瞭解基礎知識。

學著《七週七種語言》這本書的模式,下面是更簡潔的版本。

動態語言

厭煩了長時間的編譯、渴望一種輕量級的指令碼環境?動態語言一定會讓你喜歡。

嘗試Lua語言

Lua是一種輕量級的動態程式語言,對協程(coroutine)有著很好的支援,因為有著簡單的C API,使得它在遊戲視訊指令碼處理方面非常流行。比如遊戲引擎LÖVE Marmalade Quick

嘗試Clojure語言

Clojure是大演講家Rich Hickey的智力結晶,它是一種最古老的程式語言LISP的後裔。關於Clojure語言的社群很多,我最喜歡的一個Clojure專案是Sam AaronOvertone,一種即時音訊編碼工具。

嘗試 R 語言 (需要簡單的註冊)

R語言是一種統計及圖表技術的免費語言環境,有著大量的使用者提交的程式包。你在思考如何畫一個雞蛋嗎?試一下吧。

函數語言程式設計語言

函數語言程式設計的思想已經滲透到了大多數主流程式語言裡,從C++到VB。然而,如果想真正的體驗函數語言程式設計的富於表達特徵,你需要一種以函式式為主的語言。

嘗試Erlang語言

Erlang絕對是一種非常有趣的語言,它能幫你打造永不當機的高容錯並行系統。它提供了非常棒的模式匹配能力。有很多的產品應用和工具都是用它開發的,包括RabbitMQ訊息系統和分散式資料庫Riak

嘗試Haskell語言

Haskell語言深度的依賴Miranda程式語言,Miranda在80年代和90年代用於英國大學的教學。Haskell在此基礎上增加了Monads和Type類,在一些大學裡仍然有它的課程。它也非常流行於學院研究方面。

嘗試OCaml語言

OCaml語言很像Miranda,是基於ML程式語言,在其中增加了物件導向結構。F#語言是基於OCaml語言的,甚至還有它的一個相容模式。OCaml在業內仍然有使用,例如Jane Street Capital 和 XenSource。

Web 語言

我們已經知道有太多的語言可以編譯成JavaScript語言。但仍然有價值看一下JavaScript語言的一些新功能特徵。不妨看看去年Brendan EichStrangeloop上的一個談話,題目是《The State of JavaScript》。下面是3個我認為非常有趣的指令碼語言:

LiveScript

LiveScript是CoffeeScript的間接後裔,有著函數語言程式設計特徵,例如模式匹配函式函式組合。有興趣的可以看一下10 LiveScript one liners to impress your friends

嘗試 Elm 語言

Elm是一種函式式兼反應式(reactive)語言,適合開發高互動軟體,包括各種遊戲。反應式程式設計是一種有趣的趨勢,我認為一些專門針對此設計的語言值得去研究一下。

PogoScript

不幸的是,沒有針對這種語言的線上編輯器,但有一個命令列工具REPL。PogoScript適合做DSL開發,它能允許函式名中有空格。

祕教語言

祕教(Esoteric)語言基本上是隻寫不用的語言,有點像Perl,但用來娛樂。

嘗試Brainfuck

Brainfuck是程式語言中的魔方。我去年用純JavaScript開發出這個網站,你可以試一下fib的例子。

瀏覽器IDE

因為網上有這麼多用來嘗試的程式語言線上環境,可以推想,整合開發環境(IDE)也可以放到網上。可以預見以後不需要再等4小時來安裝Visual Studio了。

Cloud 9是一個線上的開發Node.js應用的平臺,整合了各種相關程式包。像Sploder這樣的工具可以讓你線上開發遊戲。

Try F#網站無可爭議的提供了廣泛的學習這種語言的功能。雲Tsunami IDE也提供了大量的學習開發F#的工具。CloudSharper也很快會提供一個利用WebSharper開發F# web應用的IDE。

提升級別

一旦用一種新語言完成了一些簡單任務,你就可能想著提升到一些稍微大的任務上。我喜歡做Kata Catalogue裡的一些習題,例如FizzBuzzGame of LifeMinesweeper

有些人喜歡研究Project Euler裡的問題,另外一些人有自己的Hello World應用。比如Martin Trojer,這是一個Scheme直譯器。而Luke Hoban在開發一個Ray跟蹤器。

我建議去參加一些本地的研討學習小組。倫敦Scala語言交流會每月都有一個程式設計活動,F#unctional倫敦人交流會剛好在月中有一個會議,下一次是關於Machine Learning

在每節後面有問題和習題的程式設計書籍是很好的學習工具,可以練習你學到的知識,但這樣的書很少。最近出版的《Functional Programming with F#》是一個很優秀的例子,它的每章後面都有問題習題。

也許幾個小時你就能熟悉一種語言的基本知識,但熟練掌握至少要幾個星期,而精通,那就要至少幾個月了。

想寫出自己的程式語言嗎?Pete Sestoft的《程式設計語言概念》對這個主題提供了很好的介紹。

10分鐘嘗試10種程式語言原文請看這裡