在 Lispcn 邮件列表看盖楼.. 为此去把 Scheme 的模块用法看了一些
再拿来和别的我了解过的编程语言对比...
Node.js 我最熟悉的, 用 npm 命令可以上传下载中央仓库的模块
脚本会到系统 Path 和当前路径和父(父*)路径检测 node_modules 文件
下载的文件是 JS 源码, 可能有 C/C++ 写的扩展自动编译
简单的比如直接 Github 上下载来, require 函数写对就能用了
浏览器端按 SeaJS 就是模块在项目路径下, 按路径引用
Lua 似乎是用户主目录下用 rocks 安装的, 跟 JS 相似点很多
从路径引用也是有的.
Python 是用 pip easy_install 命令下载到全局的某个路径.
Python 的仓库不清楚在哪.. 我猜不止一个吧
Ruby 使用 gem 命令下载到用户目录下的某个路径
Gems 至少是有在线的搜索, 仓库模块数量很大
这样都是引用模块的名字, 虽然也有路径
Racket 用 raco planet 把模块下载到用户路径下载的某个路径
Racket 有 PLaneT 中央仓库, 不少的模块
Guile 模块是放到安装目录下一个 site 文件夹下才能被索引到
Chicken chicken_install 也是在用户目录下, 下载的代码会被编译到二进制码
Chicken Eggs 里用不少模块, 目测比 PLaneT 要多
Scheme 语言还有个 load 函数按照路径引用模块
不过 Scheme 没有直接类似 JS 的表结构, 暴露的都是函数?
Clojure 用 lein deps 安装依赖, 在项目路径下一个文件夹放 .jar 包
根据路径的引用, 安装 Java 的 com.example 好难懂的感觉
印象比较深的说按 'dir/file.clj' 路径引用不被推荐.
而自己写的 Clojure 打包可以上传到 clojar 仓库里, 数量就大了
Haskell 的 cabal 印象最深就是编译, Wiki 和包的数量都很多
Hackage 上估计不难上传模块, 我没有了解过..
Haskell 能很自然地按路径引用. 下载的包安装在用户主目录下
CommonLisp 听说过 QuickLisp 用来管理模块, 可看页面上内容挺少的
没有使用经验...
更多语言求补充吧... 还有纠正...
Node 以外我都只是看了文档尝试下, 错误见谅
上面凭印象写的.. 细节应该会有错, 我拿这个来对比
看 Lisp Curse 时我一直在抱怨, Lisp 模块管理工具太不顺手
自打用了 Linux, 我觉得下载模块拓展一个平台是很正常的事情
而且 Firefox, GNOME3, Sublime, 这些工具都是靠扩展才强大的
Lisp 一直被赞誉, 强大的宏, 扩展能力不需要怀疑了
可是模块管理上, 我能下载模块看几眼文档来直接 require 过来用么?
Clojure 用的 Java 的包, 大多压缩过的 jar
Chicken 用的 C 写的模块, 也是下载过来编译了
Guile 在 GNOME 平台上才玩得好, Racket 是我没看懂的 .plt 文件
那种从 Github 看文档 clone 下载直接用的感觉就不用想了
也许对于大项目的语言, Lisp 依然有些特性神一样存在着
可是相对某些动态语言的灵活, Lisp 真心没那么方便
..以上 Scheme 入门水平的个人观点..
我想再对比下别的语言, 还有一些我不懂的和没考虑到的, 求水..
再拿来和别的我了解过的编程语言对比...
Node.js 我最熟悉的, 用 npm 命令可以上传下载中央仓库的模块
脚本会到系统 Path 和当前路径和父(父*)路径检测 node_modules 文件
下载的文件是 JS 源码, 可能有 C/C++ 写的扩展自动编译
简单的比如直接 Github 上下载来, require 函数写对就能用了
浏览器端按 SeaJS 就是模块在项目路径下, 按路径引用
Lua 似乎是用户主目录下用 rocks 安装的, 跟 JS 相似点很多
从路径引用也是有的.
Python 是用 pip easy_install 命令下载到全局的某个路径.
Python 的仓库不清楚在哪.. 我猜不止一个吧
Ruby 使用 gem 命令下载到用户目录下的某个路径
Gems 至少是有在线的搜索, 仓库模块数量很大
这样都是引用模块的名字, 虽然也有路径
Racket 用 raco planet 把模块下载到用户路径下载的某个路径
Racket 有 PLaneT 中央仓库, 不少的模块
Guile 模块是放到安装目录下一个 site 文件夹下才能被索引到
Chicken chicken_install 也是在用户目录下, 下载的代码会被编译到二进制码
Chicken Eggs 里用不少模块, 目测比 PLaneT 要多
Scheme 语言还有个 load 函数按照路径引用模块
不过 Scheme 没有直接类似 JS 的表结构, 暴露的都是函数?
Clojure 用 lein deps 安装依赖, 在项目路径下一个文件夹放 .jar 包
根据路径的引用, 安装 Java 的 com.example 好难懂的感觉
印象比较深的说按 'dir/file.clj' 路径引用不被推荐.
而自己写的 Clojure 打包可以上传到 clojar 仓库里, 数量就大了
Haskell 的 cabal 印象最深就是编译, Wiki 和包的数量都很多
Hackage 上估计不难上传模块, 我没有了解过..
Haskell 能很自然地按路径引用. 下载的包安装在用户主目录下
CommonLisp 听说过 QuickLisp 用来管理模块, 可看页面上内容挺少的
没有使用经验...
更多语言求补充吧... 还有纠正...
Node 以外我都只是看了文档尝试下, 错误见谅
上面凭印象写的.. 细节应该会有错, 我拿这个来对比
看 Lisp Curse 时我一直在抱怨, Lisp 模块管理工具太不顺手
自打用了 Linux, 我觉得下载模块拓展一个平台是很正常的事情
而且 Firefox, GNOME3, Sublime, 这些工具都是靠扩展才强大的
Lisp 一直被赞誉, 强大的宏, 扩展能力不需要怀疑了
可是模块管理上, 我能下载模块看几眼文档来直接 require 过来用么?
Clojure 用的 Java 的包, 大多压缩过的 jar
Chicken 用的 C 写的模块, 也是下载过来编译了
Guile 在 GNOME 平台上才玩得好, Racket 是我没看懂的 .plt 文件
那种从 Github 看文档 clone 下载直接用的感觉就不用想了
也许对于大项目的语言, Lisp 依然有些特性神一样存在着
可是相对某些动态语言的灵活, Lisp 真心没那么方便
..以上 Scheme 入门水平的个人观点..
我想再对比下别的语言, 还有一些我不懂的和没考虑到的, 求水..