如何认识Clojure编程语言

发布时间:2021-11-17 14:18:49 作者:柒染
来源:亿速云 阅读:346

这期内容当中小编将会给大家带来有关如何认识Clojure编程语言,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

下面就让我们开始聊聊Clojure这种编程语言吧!

目前仍然每天在用Ruby为客户开发工作,大多是Rails应用。用Ruby大量的开发制作原型;这是一种非常帅的语言,尽管对编程的程序员需要极大的自律性来避免落入一些常见的陷阱。

我关注Clojure语言很久了,读了不少关于这种语言的书,看了不少谈论这种语言的视频,但大多时候都是浅尝辄止。前几周,我遇到了一次机会,要为一个客户用Clojure写一个小的简单的服务程序,这让我有了完全不同的体验。从那以后,我开始感觉用Clojure制作原型和编写程序变得更自然顺手。下面就是我在用这种语言开发过程中获得的感受和想法,以及为什么Clojure现在会变成我最喜欢最常用的编程语言。先免责声明,我既不是一个Clojure语言编程高手,也不能保证我说的都是正确的;这些只是我短期的在有限的一些项目中使用这种编程语言的过程中获得的体验。

Clojure给人一种经过精心设计过的感觉

从Ruby中出来,这是Clojure最让我感到震惊的特征。Clojure语言在发布前足足经历了两年的设计(甚至没有任何代码产生,完全在稿纸上)。你可以在第一次接触它的过程中就能感受到这些。

在使用一种编程语言的时候,我通常会遇到一些情况;无法理解为什么写出的代码并没有按照预期的结果输出。当这种情况发生时,比如使用JavaScript,最终弄清问题出在什么地方的结果让人非常的泄气;大多数时候当我向一个更有经验的JS程序员求助时他会说:

“哈哈,当然这样不行!你看这里,在JavaScript里,这是一个特殊情况。你需要这样做才行。”

这让我很郁闷。我不能把这当成学到了一种知识,这只是在这种语言里的一个变通技巧。这并不像是一种知识。

而在Clojure里,我通常会想明白是我错了(比如,把lazy序列当成普通序列来处理),这种语言会以某种途径让你去把事情做对。感觉就像,如果我询问Rich Hickey (Clojure语言的发明人),他会告诉我:

“哈哈,这当然不行!再想想;每个东西都应该按照它自己应该的方式运行。你用错了函数,你用错了数据结构。”

这才是真正的长知识,这会让我很开心。

Clojure简洁且优雅

Clojure并不是一种纯函数式编程语言,通常这会让这种语言更容易为大多数人接受和学习。但它仍然是非常函数式的,这使得这种语言非常优雅,简洁和强大。

使用Clojure编程,我发现自己会先开发出非常小且可复用的函数,然后巧妙的组合它们,构建成更大的程序。它的超级简单的模块化系统使得你非常容易的理清你的程序的模块和它们的依赖模块。

还有,无论何时,当我写的接口有丑陋的地方,或什么地方有重复的代码,我都能明显的感觉到,而且要去思考它,想办法重构它,这种语言会驱动你寻找编程方案。这跟以前的跟那些编程语言做斗争的感受完全不一样。它会帮助你实现最简洁、***雅编程策略。这对于我,一个曾大量使用过Ruby,C语言和JavaScript的程序员来说,是新奇的感觉。

Clojure程序的开发流程让人惊叹

在我的认识里,编程工作中一个最让人头疼的问题是,我们大量的脑力浪费在一遍又一遍的等待程序反馈中。而用Clojure开发程序的流程解决了这个问题。如果你使用过Lisp语言,相信不会对此惊奇。

使用Clojure编程,你的编辑器(可以是Vim,Emacs,Light Table)一直和运行环境实时联通。你对函数的开发、测试、修改能立刻得到反馈。你的大脑在编程中处于流状态,缓慢的反馈会打断你的逻辑思维,这是不可接受的。这也是最喜欢Clojure的原因。

所以,这些就是我目前对Clojure这种编程语言的感觉。如果你还没有尝试过它,我高度推荐你试一试:到官方网站看看如何入手。

上述就是小编为大家分享的如何认识Clojure编程语言了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Appium基础认识
  2. 认识JSON

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

clojure

上一篇:Tableau软件如何安装

下一篇:jquery如何获取tr里面有几个td

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》