当前位置: 首页 > news >正文

Roto一周年:新特性、新机制、新应用,编译型脚本语言发展正当时!

语言特性更新

为Roto语言添加了许多新特性,如支持 `while` 和 `for` 循环、f 字符串、更多运算符(如 `%`)、`enum`、复合赋值运算符(如 `+=`)、全局 `const` 绑定以及类型的泛型参数。最大的新增特性之一是 `List` 类型,可创建任何Roto类型的列表并进行操作。还调整了语法,使用 `fn` 代替 `function`,用 `//` 进行注释,更接近Rust,但Roto不会是Rust的完整子集。

const DUTCH_CITIES: List[String] = [ "Amsterdam", "Rotterdam", "Utrecht", "Delft", ]; fn is_dutch_location(x: String) -> String { // 注意:你也可以使用列表的 contains 方法,但这里展示了更多新的语言特性。 for city in DUTCH_CITIES { if x == city { return f"The beautiful Dutch city of {x}!"; } } f"{x} is not in the Netherlands..." }

此为展示Roto新语言特性的小脚本。若想了解Roto支持的所有特性,可查看[语言参考](https://roto.docs.nlnetlabs.nl/en/stable/reference/language_reference.html)。

注册机制改进

Roto与Rust良好集成很重要,关键是将Rust类型、函数和常量注册到Roto脚本中。重大创新是 `library!` 宏,可轻松批量注册类型和函数。对比之前的实现方式,现在注册函数更像编写普通Rust代码,支持使用 `impl` 块、文档字符串和 `self`,还能为注册的函数构建模块树。

标志设计

Roto有了由 [Richard de Ruijter](https://richardderuijter.com) 设计的标志,传达了有趣且富有创意的理念。标志有多种变体,可在 [手册](https://roto.docs.nlnetlabs.nl/en/stable/index.html)、幻灯片和贴纸(很快会有)上看到。

会议演讲

自去年5月发布Roto以来,团队在2025年的EuroRust和2026年的FOSDEM上进行了相关演讲。EuroRust演讲全面介绍了Roto及其工作原理,还有有趣的演示;FOSDEM演讲更深入探讨了Roto的底层工作原理以及列表的实现方式。

项目亮点:Iocaine

过去一年,Roto在NLnet Labs之外得到应用,第一个采用者是 [Iocaine](https://iocaine.madhouse-project.org/),这是一个可脚本化的代理,用于保护Web服务器免受AI爬虫攻击并提供虚假数据。Iocaine可使用Roto、Lua或Fennel进行脚本编写,默认脚本用Roto编写,因其性能最佳。Iocaine的使用促进了Roto的大规模测试,其作者 [Algernon](https://gergo.csillger.hu/) 提交了大量Bug和功能请求。

未来展望

虽然Roto比去年成熟很多,但工作还未结束。对于某些用例,可能缺少关键特性,如哈希表、用户自定义状态、泛型函数等。除语法高亮功能外,还想在工具方面投入更多精力,如开发格式化工具和语言服务器协议(LSP)。若对使用Roto感兴趣但发现缺少所需功能,可在 [论坛](https://community.nlnetlabs.nl/c/roto/7) 上反馈。想尝试Roto,可查看 [手册](https://roto.docs.nlnetlabs.nl/)、[代码仓库](https://codeberg.org/NlnetLabs/roto) 和 [示例](https://codeberg.org/NLnetLabs/roto/tree/main/examples)。团队将继续开发Roto及其周边工具,持续关注未来更新。

http://www.jsqmd.com/news/925394/

相关文章:

  • 新能源汽车电机测试必备,广东犸力扭矩传感器权威测评报告 - 品牌速递
  • 服务稳定性达99.995%,成本降低32%——Gemini升级实测报告,仅限首批认证开发者获取
  • 81k Star! RAGFlow:开源RAG引擎,深度文档理解+Agent编排
  • 深度实战:5步构建高性能Sunshine游戏串流服务器
  • Video2X终极指南:5个简单步骤实现AI视频增强与画质修复
  • 运维测试人员转网安必看:转行方向 + 方法 + 避坑指南
  • 90%的人根本不会跟AI说话:AI老兵的DeepSeek Prompt实战避坑指南
  • 绝对值 - ace-
  • 如何快速实现网盘直链下载:免费开源工具的完整使用指南
  • 告别‘调包侠’:在EduCoder上用纯NumPy实现CNN前向传播的避坑指南
  • 5分钟精通跨平台资源下载:res-downloader全面实战指南
  • OpenCode 源码解读报告
  • Gemini账号彻底删除操作手册:从界面点击到服务器级数据擦除的12个关键节点验证
  • Claude Code效率翻倍的秘密:老程序员压箱底的快捷键圣经
  • 2026 电动快枪盘 vs 气动快换盘 vs 气动换枪盘|焊接与通用快换全场景对比推荐(源头厂家实测) - GrowthUME
  • Jsxer:Adobe脚本二进制文件的终极解码方案
  • 面向法律合规Agent的Harness规则引擎
  • 196、运动控制中的行业应用:人形机器人运动控制
  • 电子投票小程序怎么做,小程序免费教程 - 投票小程序
  • 实时风控延迟突破800ms?Gemini模型轻量化改造实录:FP16+结构剪枝+ONNX Runtime加速,端到端压降至42ms
  • RAG :构建测试数据集
  • 戴森球计划工厂蓝图库:5000+模块化工业设计解决方案深度解析
  • Multi-Agent商业模式:平台化生态构建与开发者激励策略
  • 用Arduino Nano与8x8 LED矩阵复刻《太空侵略者》街机游戏
  • 047、知识蒸馏改进 YOLO:用大模型软标签指导小模型训练的全流程实战
  • 企业级微信自动化解决方案:基于Python的智能机器人实战指南
  • 社区老年人健康监护系统原型设计作业 - xiaoxi
  • 如何永久保存微信聊天记录:WeChatMsg让你轻松掌控数字记忆的完整指南
  • 能快速导出无水印的AI证件照一键生成工具有哪些?2026免费无水印AI证件照工具推荐 - 科技大爆炸
  • 197、运动控制中的行业应用:四足机器人步态控制