2019独角兽企业重金招聘Python工程师标准>>>

谈谈我使用clojure的感觉。

其实写程序除了关注某种语言能实现什么功能以外,使用语言的感觉其实也是非常重要的。在我的心目中,好用的语言的标准其实是不断变化的。最早当我对编程不是很熟悉的时候,一直觉得最好的编程语言应该和自然语言一样。后来就发现其实是不现实的,就算计算机能够理解自然语言,但是,程序很大程度上是写给人看的,没有一定的专业技能,就算用自然语言写的程序估计也看不懂。而且,自然语言本身是有歧义的,特别是中文。中文这个语言还比较特别,和英文不同。英文是需要上下文的,中文也需要,不过中文是依赖某个中心的,所以有的时候需要推测很多,我记得有本专业的书籍中有过描述,我想不起来了。总之用自然语言来当作计算机的语言,就算可行,也不能描述大规模复杂的系统。

所以计算机的语言应该和数学比较相似,在这个领域里面,自然语言就显得无比的啰嗦。所以,计算机的语言应该尽量的简洁,并接近数学的语言,我觉得这才是比较好的编程语言。那么现在看来只有LISP最符合了。当然LISP不是数学,但是就我的感觉来说,比较像。

用简短的代码来描述复杂的事物,那种感觉是什么?对,就如同电影里面魔法师的咒语。只见他默念了几个字,挥动了一下魔法棒,于是天崩地裂了。。。用更中文的感觉描述一下:谈笑间,樯橹灰飞烟灭。就是这种感觉。

写clojure的时候,往往在几行代码上停留很久的时间。代码很少,但是其所代表的意境却很大。

转载于:https://my.oschina.net/clarkhill/blog/111443

clojure的感觉相关推荐

  1. 对《Clojure in Action》第二版的书评与作者问答

    由Amit Rahore及Francis Avila撰写,Manning出版的<Clojure in Action>第二版以本质性的.通透的.结构组织良好的方式对Clojure 1.6进行 ...

  2. Scala vs. Groovy vs. Clojure [已结束]

    有人可以解释Scala,Groovy和Clojure之间的主要区别. 我知道这些编译中的每一个都在JVM上运行,但我想在它们之间进行简单的比较. #1楼 它们可以与它们来自何处或主要针对哪些开发人员区 ...

  3. Clojure入门教程: Clojure – Functional Programming for the JVM中文版

    http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ api:h ...

  4. clojure with postgres

    主要关注访问pg.不关心其他db 1 clojure.java.jdbc https://github.com/clojure/java.jdbc http://clojure-doc.org/art ...

  5. Clojure Project 工程文件分析

    捣鼓了一天,今天就学习了一下project.clj的工程配置文件. 最终要的就是理解各个配置的内容,自己记录一下心得. 1 (defproject cljsbuild-example-simple & ...

  6. Clojure的引用类型:var,ref,agent和atom

    作为其他值的容器,也都可以解引用. deref不会阻塞. add-watch (add-watch reference key fn) 可以定义引用值发生改变时的回调,fn是4个参数 :key (at ...

  7. Clojure – Functional Programming for the JVM中文版

    Clojure – Functional Programming for the JVM中文版 发表于 2011 年 12 月 07 日 由xumingming 作者: xumingming | 可以 ...

  8. Clojure入门教程

    Clojure入门教程: Clojure – Functional Programming for the JVM中文版 发表于 2011 年 12 月 07 日 由 xumingming 作者: x ...

  9. Clojure基础语法学习笔记(一)

    首先推荐两个目前正在学的免费学习资源: Functional programming in Clojure Clojure for the Brave and True 都是英文的,第一个是边学边练的 ...

最新文章

  1. Nature Methods | 用深度多任务神经网络探索单细胞数据
  2. linux文件明明存在却无法vim打开_教你几招,让你vim编辑器变得友善起来(特别水,不要点进来)...
  3. Memcache 安装和常见命令
  4. Microsoft Teams的保留策略
  5. python数据处理常用函数_Python大数据处理模块Pandas
  6. Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
  7. java传递引用参数
  8. Json在线格式化校验 bejson.com
  9. Ubuntu下ssh安装、配置及使用
  10. wind river -diab
  11. Oralce性能优化-绑定变量窥视
  12. 【公开课预告】:如何借助Google Cloud在海外部署音视频业务?
  13. 黑马(7) 冷启动 基于内容的推荐
  14. 数学建模--优化类模型
  15. Windows Server 2008简体中文语言包体验
  16. 【OSTEP】分页: 快速地址转换(TLB) | TLB命中处理 | ASID 与页共享 | TLB替换策略: LRU策略与随机策略 | Culler定律
  17. TCP TSO/GSO初步探索
  18. 闲逸联运平台为何迎来加盟热?
  19. mega16驱动1602液晶
  20. CUDA ERROR: device-side assert triggered at 和unable to get repr for <class ‘torch.Tensor‘>问题及解决思路

热门文章

  1. bmp调色板颜色信息重复_PASCAL VOC数据集-分割标签索引颜色对照及程序
  2. MySQL怎么导入webcontent_把网页信息添加到mysql,在MyEclipse运行Tomcat出现下面的错误,弄不明白,求助怎么解决呀...
  3. android edittext html 图片,Android EditText加载HTML内容(内容包含网络图片) -电脑资料...
  4. MyBatis Plus入门
  5. 如果CRC等于炒鸡蛋,那么...
  6. DRV8834用于驱动双电机
  7. 大赛归来的你们,依然青春少年
  8. AP计算机科学有几门,2017新增AP计算机科学考试科目
  9. thankpad p15改善大风扇的转动
  10. 查看平台内核信息脚本