Clojure 零基础 学习笔记
A language that doesn't affect the way you think about programming, is not worth knowing. --- Alan J. Perlis
如果一门语言无法对你的编程思想造成影响,那么它不值得你去了解 --- Alan J. Perlis
本文集使用 WTFPL 协议
这意味着,欢迎各位随意的转载、修改,以及做一切你想要做的事儿。这正是我想看到的结果。
但务必留一个指向这里的链接,以便读者获取到最新的内容。
(不留的话也无所谓咯)
本人也是一名初学者,水平极为有限。
一方面作为学习笔记使用。
另一方面希望能用最易为理解的语言来描述,让零编程基础的同学也能读懂。
我需要你们的反馈,以提高这个系列严谨性与可读性,使之能为更提供更好的服务!
本系列文章的内容可能随时改动,以优化阅读体验,具体改动内容恕不另行说明。
也许再读的时候会发现变化很大了呢。
如果文中出现了一些非常难以理解的晦涩词句,在仔细思考后仍无法理解,那一定是我的表述存在问题。请直接在文章下方留言,我会详细地解释。再次感谢你的交流与意见。
絮叨
在阅读本文之前,你可能已经学习过其它程序设计语言
Clojure 也许与你接触过的语言有很大的不同
无论如何,请忘记它们
为什么选择 Clojure
传奇语言 Lisp 的一门方言 ,简洁而优雅。
可以方便地与 Java 进行交互:
Clojure 运行于 JVM 之上,这表示你可以直接使用庞大丰富的 Java 库,而 Java 程序也可以反过来调用 Clojure 代码。使得你在 Java 平台上投入的精力不被浪费。
Clojure 能做什么
虽然理论上来说,任何一个完备的程序设计语言,在功能上都是相等的,
也就是说,A 语言可以做到的事情 B 语言一样可以做到。
但是每一种语言是有自己擅长的领域的,
语言的特性决定了其领域。
C / C++ 就比较适合开发一些对效率要求很高的东西。(比如图形引擎,操作系统)
而 Java 则适合用来做后台服务器。(或者写一个 Android 程序,感谢 Android 实现了 Java ME 未竟之事)
Clojure 则借助于 Lisp 得天独厚的优势,提供了解决复杂问题的优雅解决途径:
使用函数式编程,来大大简化你的程序,提高开发效率。
通过宏这种强大的工具,使得你可以编写属于你自己的领域特定语言。(DSL)
同时由于她的不可变特性,以及提供了一些处理多线程的操作,在处理并发时 Clojure 也能显露优势。
我们并不指望你可以一下子感受到语言之间的异同,
但是大概的意思是想让你明白,Clojure 作为一门 Lisp 方言,以强大的表达能力著称, 使之能以更优雅的方式来解决问题。clojure 入门
并不是在贬低其它语言不够优雅,而是这是事实。(雾)(说完就被打了)
在今后的学习中,你会逐渐感受到这种优势带给你的便捷。
为什么 Clojure / Lisp 没有流行
流行只代表着它的使用者很多,与它本身的优秀与否不存在简单的关联。
流行很大程度上与历史情况有关,在 Lisp 刚刚诞生的时候,计算机的运行速度很慢,这导致使用垃圾自动回收、动态特性的 Lisp 的运行速度非常缓慢。
在其之后的诞生的语言 --- 如C,其运行速度和其易用性的平衡,在当时的计算机上达 到了一个相当高的水平,从而成为了一种真正实用的程序设计语言。
而流行这种东西类似“滚雪球”,使用者越滚越多,一旦确立其地位就很难被取代。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-41631-1.html