Hacker News 中文摘要

RSS订阅

Seed:基于Common Lisp的交互式软件环境 -- Seed: Interactive software environment based on Common Lisp

文章摘要

Seed 是一个基于 Common Lisp 的交互式软件环境,旨在提供一个高效的开发平台。该项目托管在 GitHub 上,展示了其核心功能和开发进展,适合对 Lisp 语言感兴趣的开发者使用。

文章总结

GitHub - phantomics/seed: 基于Common Lisp的交互式软件环境

项目概述
Seed 是一个基于 Common Lisp 的交互式软件环境,允许用户以多种方式创建和使用计算机程序。它运行在 Web 浏览器中,支持在本地或远程计算机系统上构建软件,并能够以多种显示模式呈现程序及其输出。Seed 将程序以树状网格的形式展示,使用不同的符号表示不同的函数和数据类型。所有显示模式都共享基本的界面原则,使用户能够快速适应不同的程序呈现方式。

背景
Lisp 语言家族在定义软件时提供了无与伦比的灵活性,但这种灵活性并未体现在通常用于表达软件的字符字符串中。尽管可视化编程范式在某些领域取得了进展,但大多数可视化编程工具都与特定领域紧密耦合。Lisp 的创造者选择放弃详细的语法,转而采用符号表达式,这为语言开发者开辟了一条少有人走的道路。Seed 旨在实现这一目标,提供一种与语言结构正交的语言表示方式。

实践应用
Seed 可以被视为一种集成开发环境(IDE),它集成了 Common Lisp 的标准构建系统 ASDF,并通常将软件系统表达为 ASDF 系统。这些系统被分为多个分支,每个分支表达系统的输入和输出。在 Seed 系统中,通常会在包目录中放置一个 .seed 文件,用于指定系统及其每个分支的行为。

安装与运行
Seed 依赖于 Common Lisp、ASDF 和 Quicklisp,目前仅测试了 Steel Bank Common Lisp (SBCL)。此外,Seed 还需要 Node.js、NPM 和 Gulp 来构建其 Web 界面。用户可以通过克隆仓库并运行自动安装程序 install-seed.lisp 来安装 Seed。安装完成后,Seed 的 Web 界面默认会在端口 8055 上打开。

Web 界面
Seed 的 Web 界面默认位于 http://localhost:8055/portal.demo1/index.html,用户可以通过该界面访问默认的演示门户 "portal.demo1"。如果用户创建了其他门户,可以在 URI 中替换门户名称。

教程与资源
Seed 提供了一个入门教程,帮助用户快速上手使用该环境。

许可证
Seed 采用 GPL-3.0 许可证。

总结
Seed 是一个基于 Common Lisp 的交互式软件环境,旨在通过可视化方式提升编程体验。它支持多种显示模式,并集成了 ASDF 构建系统,适合在 Web 浏览器中进行本地或远程软件开发。

评论总结

评论内容总结:

  1. 项目文档和展示不足

    • 评论1指出项目未在README中嵌入浏览器运行示例:"Sooooo. if it runs in the browser why isn't it embedded in the README?"
    • 评论2建议项目需要更好的解释和截图:"This project, which seems interesting, would greatly benefit from a better explanation of what it is, and some screenshots."
  2. 项目活跃度与替代方案

    • 评论3提到项目不活跃,建议考虑使用CLOG替代:"Project is not active, but if someone likes it, consider removing node in favour of CLOG. So much easier & faster."
    • 评论4认为CLOG在文档和支持方面更优:"CLOG seems to do something similar... except CLOG has more tutorials, is better documented, has a more fleshed out README, and has ongoing support."
  3. 开发者回应与项目进展

    • 评论6中开发者澄清项目并未被放弃,正在重建中:"Seed is not abandoned but its original codebase has been; it is now in the process of being rebuilt."
    • 开发者还解释了Seed与CLOG的区别,强调Seed的目标是扩展符号表达式的表现形式:"The idea of Seed is to extend the manifestation of symbolic expressions beyond text..."
  4. 技术依赖与兼容性

    • 评论7对项目依赖Node.js和Gulp表示惊讶:"…and it tells me to install node.js and gulp? :-O"
    • 评论5希望项目能在其他平台上运行:"Get it to work on here and we’re golden."

总结:评论主要围绕项目文档不足、活跃度低、技术依赖和替代方案展开。开发者回应了项目进展,并解释了其独特目标。