十分鐘學(xué)習(xí)十種語言

2018-02-24 15:18 更新

中文出處:http://www.vaikan.com/try-10-programming-languages-in-10-minutes/
英文原文:Try 10 Programming Languages in 10 minutes?

世界上有很多有趣的編程語言,但下載它們、安裝編程環(huán)境可能會是一件非常耗時的事情,而你很可能只想試一下。好消息是,你可以直接在瀏覽器里運行很多的編程語言,通常還有附帶有一些教程來指導(dǎo)你了解基礎(chǔ)知識。

學(xué)著《七周七種語言》這本書的模式,下面是更簡潔的版本。

動態(tài)語言

厭煩了長時間的編譯、渴望一種輕量級的腳本環(huán)境?動態(tài)語言一定會讓你喜歡。

嘗試Lua語言

Lua是一種輕量級的動態(tài)編程語言,對協(xié)程(coroutine)有著很好的支持,因為有著簡單的C API,使得它在游戲視頻腳本處理方面非常流行。比如游戲引擎L?VE?Marmalade Quick。

嘗試Clojure語言

Clojure是大演講家Rich Hickey的智力結(jié)晶,它是一種最古老的編程語言LISP的后裔。關(guān)于Clojure語言的社區(qū)很多,我最喜歡的一個Clojure項目是Sam AaronOvertone,一種即時音頻編碼工具。

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

R語言是一種統(tǒng)計及圖表技術(shù)的免費語言環(huán)境,有著大量的用戶提交的程序包。你在思考如何畫一個雞蛋嗎?試一下吧。

函數(shù)式編程語言

函數(shù)式編程的思想已經(jīng)滲透到了大多數(shù)主流編程語言里,從C++到VB。然而,如果想真正的體驗函數(shù)式編程的富于表達(dá)特征,你需要一種以函數(shù)式為主的語言。

嘗試Erlang語言

Erlang絕對是一種非常有趣的語言,它能幫你打造永不宕機(jī)的高容錯并行系統(tǒng)。它提供了非常棒的模式匹配能力。有很多的產(chǎn)品應(yīng)用和工具都是用它開發(fā)的,包括RabbitMQ消息系統(tǒng)和分布式數(shù)據(jù)庫Riak。

嘗試Haskell語言

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

嘗試OCaml語言

OCaml語言很像Miranda,是基于ML編程語言,在其中增加了面向?qū)ο蠼Y(jié)構(gòu)。F#語言是基于OCaml語言的,甚至還有它的一個兼容模式。OCaml在業(yè)內(nèi)仍然有使用,例如Jane Street Capital 和 XenSource。

Web 語言

我們已經(jīng)知道有太多的語言可以編譯成JavaScript語言。但仍然有價值看一下JavaScript語言的一些新功能特征。不妨看看去年Brendan EichStrangeloop上的一個談話,題目是《The State of JavaScript》。下面是3個我認(rèn)為非常有趣的腳本語言:

LiveScript

LiveScript是CoffeeScript的間接后裔,有著函數(shù)式編程特征,例如模式匹配函數(shù)函數(shù)組合。有興趣的可以看一下10 LiveScript one liners to impress your friends。

嘗試 Elm 語言

Elm是一種函數(shù)式兼反應(yīng)式(reactive)語言,適合開發(fā)高交互軟件,包括各種游戲。反應(yīng)式編程是一種有趣的趨勢,我認(rèn)為一些專門針對此設(shè)計的語言值得去研究一下。

PogoScript

不幸的是,沒有針對這種語言的在線編輯器,但有一個命令行工具REPL。PogoScript適合做DSL開發(fā),它能允許函數(shù)名中有空格。

秘教語言

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

嘗試Brainfuck

Brainfuck是編程語言中的魔方。我去年用純JavaScript開發(fā)出這個網(wǎng)站,你可以試一下fib的例子。

瀏覽器IDE

因為網(wǎng)上有這么多用來嘗試的編程語言在線環(huán)境,可以推想,集成開發(fā)環(huán)境(IDE)也可以放到網(wǎng)上??梢灶A(yù)見以后不需要再等4小時來安裝Visual Studio了。

Cloud 9是一個在線的開發(fā)Node.js應(yīng)用的平臺,集成了各種相關(guān)程序包。像Sploder這樣的工具可以讓你在線開發(fā)游戲。

Try F#網(wǎng)站無可爭議的提供了廣泛的學(xué)習(xí)這種語言的功能。云Tsunami IDE也提供了大量的學(xué)習(xí)開發(fā)F#的工具。CloudSharper也很快會提供一個利用WebSharper開發(fā)F# web應(yīng)用的IDE。

提升級別

一旦用一種新語言完成了一些簡單任務(wù),你就可能想著提升到一些稍微大的任務(wù)上。我喜歡做Kata Catalogue里的一些習(xí)題,例如FizzBuzz,Game of Life?和?Minesweeper

有些人喜歡研究Project Euler里的問題,另外一些人有自己的Hello World應(yīng)用。比如Martin Trojer,這是一個Scheme解釋器。而Luke Hoban在開發(fā)一個Ray跟蹤器。

我建議去參加一些本地的研討學(xué)習(xí)小組。倫敦Scala語言交流會每月都有一個編程活動,F#unctional倫敦人交流會剛好在月中有一個會議,下一次是關(guān)于Machine Learning

在每節(jié)后面有問題和習(xí)題的編程書籍是很好的學(xué)習(xí)工具,可以練習(xí)你學(xué)到的知識,但這樣的書很少。最近出版的《Functional Programming with F#》是一個很優(yōu)秀的例子,它的每章后面都有問題習(xí)題。

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

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號