【Hacker News搬运】Rye:具有一些新思想的同构动态编程语言
-
Title: Rye: Homoiconic dynamic programming language with some new ideas
Rye:具有一些新思想的同构动态编程语言
Text:
Url: https://github.com/refaktor/rye
Rye 语言是一种高级的动态编程语言,它基于 Rebol、Factor、Linux 壳程序和 Golang 的概念。它仍然是一个语言设计实验,但随着时间推移,它应该会变得越来越有用。 Rye 语言的特点包括: - 使用 Golang 作为解释器和控制台,可以看作是 Go 语言的脚本伴侣,因为 Go 的库很容易集成,Rye 也可以作为 Go 程序的脚本或配置语言嵌入。 - 强调交互式使用(Rye 控制台),在这里可以探索语言的用户界面边界。 - 语言是同构的(homoiconic),没有关键字或特殊形式(一切都是函数调用,一切都是值),一切都会返回某个结果(是表达式),具有多种语法类型,函数是一等公民,代码块和作用域(上下文)也是。它有多个方言(特定的解释器)。 - 尝试在灵活性和安全性之间保持平衡,例如,它没有直接更改当前上下文(父或子)外状态的语法。它将纯函数和 impure 函数分开,大多数内置函数都是纯函数。验证方言是其核心的一部分,所以输入验证是容易且明确区分的,而不是在其他代码中散布。更改状态的少数函数以 "!" 结尾(通常不需要使用)。函数永远不会返回 null,它们返回结果或特定的失败(这也是一个 Rye 值,你可以在此特定位置处理)。 Rye 语言的示例包括: - "Hello World" 打印 - 字符串替换和打印 - 加载、去重和求和列表 - 过滤并打印姓名 - 计算阶乘的函数 - 打印 1 到 10 的阶乘列表 - 设置用户类型为 "admin" 的 SQLite 数据库查询 - 从文件中读取名称并发送 HTTP POST 请求 Rye 语言的核心理念已经形成,大多数实验至少在这个阶段都已经完成。目前,重点是使核心和运行时对尝试使用它的任何人都有用。这意味着我们正在改进 Rye 控制台、文档,并提高运行时和核心函数的质量。 Rye 语言的库包括: - Bcrypt - 密码散列 - Bson - 二进制(j)son - Crypto - 加密函数 - Email - 电子邮件生成和解析 - Html - HTML 解析 - Http - HTTP 服务器和客户端 - IO(!}- 可以在构建时间排除 - Json - JSON 解析 - Mysql - 数据库 - Postgresql - 数据库 - Psutil - Linux 进程管理 - Regexp - 正则表达式 - Smtpd - SMTP 服务器(接收器) - Sqlite - 数据库 - Sxml - 类似 SAX 的 XML 流式方言 - 验证 - 验证方言 Rye 语言还有与桌面技术和 Web 视图相关的单独项目,它集成了这些很酷的 Go 库: - Fyne - 跨平台的以材料设计为灵感的 GUI 框架 - Ebitengine - 2D 游戏引擎 - Webview - Webview GUI Rye 语言的开发者在 Linux 和 Mac 上进行开发,但他们还发布了 Docker 镜像和 WASM 模块。如果您需要其他架构或操作系统,请提出问题。Rye 可以在 Go 编译到的任何地方运行。 您可以在 Releases 部分找到针对 Linux 和 macOS 的预编译二进制文件。Docker 镜像发布在 Packages 部分。 Rye 语言的开发博客和 Reddit 组是了解语言最新示例和发展动态的地方。如果您对代码有兴趣,我们的 GitHub 页面是所有 Rye 相关事物的中央位置。您被邀请参与协作、提出问题或 PR。
Post by: nnx
Comments:
warvariuc: The blog entry titled "Less variables, more flows example vs Python" is strange. ( <a href="https://ryelang.blogspot.com/2021/11/less-variables-more-flows-example-vs.html?lr=1" rel="nofollow">https://ryelang.blogspot.com/2021/11/less-variables-more-flo...</a> )<p>The Python version uses intermediate variables so the author of the code is to blame for verbosity, not the language.
warvariuc: 标题为“;更少的变量,更多的流示例与Python“;很奇怪。(<a href=“https://;/;ryelang.blogspot.com/!2021/:11/,less-variables-more-flows-example-vs.html?lr=1”rel=“nofollow”>https://;#xx2F;ryelang.bogspot.com#xx22021ȏ;11/;less variables more-flo…</a>)<p>Python版本使用中间变量,因此代码作者应为冗长而非语言负责。
c4pt0r: Seems like a good Swiss Army Knife-like addition to the shell script (reminds me of awk as well). It would be interesting to keep it that simple (not another Perl)
c4pt0r: 这似乎是一个很好的瑞士军刀般的外壳脚本(也让我想起了awk)。保持它的简单(不是另一个Perl)会很有趣
gumby: > Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value)<p>How does it implement <i>and</i>, <i>or</i>, or <i>if</i>?
gumby: >;Rye是同源的,它没有关键字或特殊形式(一切都是函数调用,一切都是值)<p>如果</i>,它如何实现<i>和</i>、<i>或</i>或<i>?
kunley: About getters.. are they foo? or ?foo ? The examples have it mixed, "Meet Rye" doc has it as ?foo
kunley: 关于getters。。他们是福吗?或foo?这些例子是混合的;认识Rye";医生把它当作?foo
carterschonwald: The detail about input validation is a really nice one that hopefully the next generation of programming languages all do standard.
carterschonwald: 关于输入验证的细节非常好,希望下一代编程语言都是标准的。