这个小丑不是另一个小丑。本文要介绍的Joker是一个用Go编写的Clojure解释方言,也是一个Clojure(Script)linter。Joker代码示例1.Clojure中的脚本2.Clojure(Script)代码特性的即时检查快速启动时间改进清晰的错误消息和堆栈跟踪支持发送HTTP请求、读取和解析JSON、使用文件系统、启动外部进程等支持所有主要编辑器自动检查语法错误、函数数量不匹配、未解析的符号、未使用的命名空间、变量、绑定等...根据文档,Joker的目标包括:适合编写脚本(并且它具有以下特性轻量级和快速启动)。作者表示,这是Clojure不擅长的,也是他想解决的个人问题。方便使用的。良好的反馈错误消息和堆栈跟踪对于程序员的幸福感和生产力绝对是至关重要的。为Clojure及其方言提供一些工具。Joker有一个linter模式,可用于对Joker、Clojure和ClojureScript代码进行linting,从而捕获一些基本错误。Joker还可以格式化Clojure代码(请参阅格式化模式)或提供EDN数据结构。例如,以下命令可用于漂亮地打印EDN数据结构(从标准输入读取):joker--hashmap-threshold-1-e"(pprint(read))"尽可能接近(语法和语义)到Clojure。Joker真的应该是Clojure的一种方言,而不是受Clojure启发的语言。也就是说,Clojure的许多特性是Joker没有而且永远不会拥有的。但Joker将具有接近Clojure但仅适用于自身的特性。小丑还列出了两个没有重点的目标:性能。作者表示,如果用户关注性能,请直接使用Clojure,因为Joker只是解释器的简单实现,他并不打算优先提高性能。具有所有Clojure功能。据作者介绍,由于使用不同的宿主语言(Go和Java),Clojure的一些特性无法在Joker中实现。至于其他功能,他认为它们对于他心目中的小丑用例并不重要。语法对比在macOS上安装,最方便的安装Joker的方法是使用Homebrew:brewinstallscandid82/brew/joker如果你使用Linuxbrew,你可以在Linux上使用相同的命令。如果使用ArchLinux,则提供AUR包。如果你使用Nix,你可以在其他平台上安装Jokernix-env-ijoker(或者如果你想手动安装)如下,下载相应平台的预编译二进制文件并将它们放在你的PATH中。当然也可以从源代码构建Joker。本文转自OSCHINA文章标题:Joker:Go写的Clojure解释方言本文地址:https://www.oschina.net/news/158495/joker-lang
