自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Clojure:讓我興奮的編程語言

開發(fā) 前端 開發(fā)工具
最近我一直有想寫一點(diǎn)關(guān)于Clojure的東西的沖動(dòng)。但不巧的是,還有一個(gè)更大的沖動(dòng)經(jīng)常出現(xiàn),就是要用Clojure語言重寫我的這個(gè)博客網(wǎng)站,這也就讓這篇文章的出爐延遲了一段時(shí)間。那么,下面就讓我們開始聊聊Clojure這種編程語言吧!

最近我一直有想寫一點(diǎn)關(guān)于Clojure的東西的沖動(dòng)。但不巧的是,還有一個(gè)更大的沖動(dòng)經(jīng)常出現(xiàn),就是要用Clojure語言重寫我的這個(gè)博客網(wǎng)站,這也就讓這篇文章的出爐延遲了一段時(shí)間。那么,下面就讓我們開始聊聊Clojure這種編程語言吧!

我真正用到的***種編程語言是Ruby。目前仍然每天在用Ruby為客戶開發(fā)工作,大多是Rails應(yīng)用。用Ruby大量的開發(fā)制作原型——這是一種非常帥的語言,盡管對(duì)編程的程序員需要極大的自律性來避免落入一些常見的陷阱。

各種各樣的編程語言

我關(guān)注Clojure語言很久了,讀了不少關(guān)于這種語言的書,看了不少談?wù)撨@種語言的視頻,但大多時(shí)候都是淺嘗輒止。前幾周,我遇到了一次機(jī)會(huì),要為一個(gè)客戶用Clojure寫一個(gè)小的簡單的服務(wù)程序,這讓我有了完全不同的體驗(yàn)。從那以后,我開始感覺用Clojure制作原型和編寫程序變得更自然順手。下面就是我在用這種語言開發(fā)過程中獲得的感受和想法,以及為什么Clojure現(xiàn)在會(huì)變成我最喜歡最常用的編程語言。先免責(zé)聲明,我既不是一個(gè)Clojure語言編程高手,也不能保證我說的都是正確的——這些只是我短期的在有限的一些項(xiàng)目中使用這種編程語言的過程中獲得的體驗(yàn)。

Clojure給人一種經(jīng)過精心設(shè)計(jì)過的感覺

從Ruby中出來,這是Clojure最讓我感到震驚的特征。Clojure語言在發(fā)布前足足經(jīng)歷了兩年的設(shè)計(jì)(甚至沒有任何代碼產(chǎn)生,完全在稿紙上)。你可以在***次接觸它的過程中就能感受到這些。

在使用一種編程語言的時(shí)候,我通常會(huì)遇到一些情況——無法理解為什么寫出的代碼并沒有按照預(yù)期的結(jié)果輸出。當(dāng)這種情況發(fā)生時(shí),比如使用JavaScript,最終弄清問題出在什么地方的結(jié)果讓人非常的泄氣——大多數(shù)時(shí)候當(dāng)我向一個(gè)更有經(jīng)驗(yàn)的JS程序員求助時(shí)他會(huì)說:

“哈哈,當(dāng)然這樣不行!你看這里,在JavaScript里,這是一個(gè)特殊情況。你需要這樣做才行。”

這讓我很郁悶。我不能把這當(dāng)成學(xué)到了一種知識(shí),這只是在這種語言里的一個(gè)變通技巧。這并不像是一種知識(shí)。

而在Clojure里,我通常會(huì)想明白是我錯(cuò)了(比如,把lazy序列當(dāng)成普通序列來處理),這種語言會(huì)以某種途徑讓你去把事情做對(duì)。感覺就像,如果我詢問Rich Hickey (Clojure語言的發(fā)明人),他會(huì)告訴我:

“哈哈,這當(dāng)然不行!再想想——每個(gè)東西都應(yīng)該按照它自己應(yīng)該的方式運(yùn)行。你用錯(cuò)了函數(shù),你用錯(cuò)了數(shù)據(jù)結(jié)構(gòu)。”

這才是真正的長知識(shí),這會(huì)讓我很開心。

Clojure簡潔且優(yōu)雅

Clojure并不是一種純函數(shù)式編程語言,通常這會(huì)讓這種語言更容易為大多數(shù)人接受和學(xué)習(xí)。但它仍然是非常函數(shù)式的,這使得這種語言非常優(yōu)雅,簡潔和強(qiáng)大。

使用Clojure編程,我發(fā)現(xiàn)自己會(huì)先開發(fā)出非常小且可復(fù)用的函數(shù),然后巧妙的組合它們,構(gòu)建成更大的程序。它的超級(jí)簡單的模塊化系統(tǒng)使得你非常容易的理清你的程序的模塊和它們的依賴模塊。

還有,無論何時(shí),當(dāng)我寫的接口有丑陋的地方,或什么地方有重復(fù)的代碼,我都能明顯的感覺到,而且要去思考它,想辦法重構(gòu)它,這種語言會(huì)驅(qū)動(dòng)你尋找***編程方案。這跟以前的跟那些編程語言做斗爭的感受完全不一樣。它會(huì)幫助你實(shí)現(xiàn)最簡潔、***雅編程策略。這對(duì)于我,一個(gè)曾大量使用過Ruby,C語言和JavaScript的程序員來說,是***的新奇的感覺。

Clojure程序的開發(fā)流程讓人驚嘆

在我的認(rèn)識(shí)里,編程工作中一個(gè)最讓人頭疼的問題是,我們大量的腦力浪費(fèi)在一遍又一遍的等待程序反饋中。而用Clojure開發(fā)程序的流程解決了這個(gè)問題。如果你使用過Lisp語言,相信不會(huì)對(duì)此驚奇。

使用Clojure編程,你的編輯器(可以是Vim,Emacs,Light Table…)一直和運(yùn)行環(huán)境實(shí)時(shí)聯(lián)通。你對(duì)函數(shù)的開發(fā)、測試、修改能立刻得到反饋。你的大腦在編程中處于流狀態(tài),緩慢的反饋會(huì)打斷你的邏輯思維,這是不可接受的。這也是最喜歡Clojure的原因。

所以,這些就是我目前對(duì)Clojure這種編程語言的感覺。如果你還沒有嘗試過它,我高度推薦你試一試:到官方網(wǎng)站看看如何入手。

英文原文:Why I am excited about Clojure

譯文出處:http://www.vaikan.com/clojure/

責(zé)任編輯:林師授 來源: 外刊IT評(píng)論 編譯
相關(guān)推薦

2012-04-23 14:35:29

JVMJavaClojure

2009-08-27 17:12:04

Clojure編程語言Java

2014-03-26 14:19:00

ClojureJVM

2013-03-04 09:30:38

ClojureJVM

2009-03-10 14:51:31

IBM小肥羊擴(kuò)張

2015-07-20 11:32:07

編程語言

2013-03-25 11:11:37

編程語言編程語言書籍編程語言書

2011-09-20 15:01:40

Scala語言

2013-01-29 13:46:28

Fedora 18

2014-03-06 15:48:37

李奕泓編程程序媛

2012-07-25 09:56:52

編程程序員

2018-12-04 15:46:53

編程語言Python

2014-07-28 09:43:58

編程語言鑒別編程

2024-01-03 15:09:21

云原生Go語言

2023-10-04 00:18:00

云原生Go語言

2013-04-11 09:23:36

.NET編程Haskell

2013-06-27 10:31:39

2019-11-18 15:07:54

編程語言C#

2020-12-12 16:08:04

編程語言開發(fā)

2013-03-20 10:01:40

Google云筆記
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)