溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何認識Clojure編程語言

發(fā)布時間:2021-11-17 14:18:49 來源:億速云 閱讀:346 作者:柒染 欄目:web開發(fā)

這期內容當中小編將會給大家?guī)碛嘘P如何認識Clojure編程語言,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

下面就讓我們開始聊聊Clojure這種編程語言吧!

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

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

Clojure給人一種經過精心設計過的感覺

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

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

“哈哈,當然這樣不行!你看這里,在JavaScript里,這是一個特殊情況。你需要這樣做才行?!?/em>

這讓我很郁悶。我不能把這當成學到了一種知識,這只是在這種語言里的一個變通技巧。這并不像是一種知識。

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

“哈哈,這當然不行!再想想;每個東西都應該按照它自己應該的方式運行。你用錯了函數,你用錯了數據結構?!?/em>

這才是真正的長知識,這會讓我很開心。

Clojure簡潔且優(yōu)雅

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

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

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

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

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

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

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

上述就是小編為大家分享的如何認識Clojure編程語言了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)
推薦閱讀:
  1. Appium基礎認識
  2. 認識JSON

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI