当前位置: 首页 > 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.gsyq.cn/news/1436726.html

相关文章:

  • VinXiangQi:智能象棋AI连线工具的终极创新方案
  • 服务稳定性达99.995%,成本降低32%——Gemini升级实测报告,仅限首批认证开发者获取
  • 运维测试人员转网安必看:转行方向 + 方法 + 避坑指南
  • Gemini账号彻底删除操作手册:从界面点击到服务器级数据擦除的12个关键节点验证
  • Claude Code效率翻倍的秘密:老程序员压箱底的快捷键圣经
  • 2026 电动快枪盘 vs 气动快换盘 vs 气动换枪盘|焊接与通用快换全场景对比推荐(源头厂家实测) - GrowthUME
  • 实时风控延迟突破800ms?Gemini模型轻量化改造实录:FP16+结构剪枝+ONNX Runtime加速,端到端压降至42ms
  • 戴森球计划工厂蓝图库:5000+模块化工业设计解决方案深度解析
  • Multi-Agent商业模式:平台化生态构建与开发者激励策略
  • 用Arduino Nano与8x8 LED矩阵复刻《太空侵略者》街机游戏
  • 企业级微信自动化解决方案:基于Python的智能机器人实战指南
  • 如何永久保存微信聊天记录:WeChatMsg让你轻松掌控数字记忆的完整指南
  • 井下做业实景透明.智能预警透明化三维立体重构AI预判盲区管控
  • 如何打造终极随身游戏库:Playnite便携版完整配置教程
  • RAG-Anything:港大开源多模态RAG框架,统一处理文本/图像/表格/公式
  • UVa 340 Master-Mind Hints
  • Harness Engineering:Agent任务优先级调度算法
  • 200、运动控制算法总结与未来展望:AI与边缘计算
  • 抖音批量下载助手:3分钟掌握全自动视频保存的终极方案
  • GHelper终极指南:华硕笔记本性能优化与AMD降压超频完整教程
  • 199、运动控制中的行业应用:微纳运动控制(压电陶瓷)
  • ComfyUI ControlNet Aux完全指南:40+预处理节点故障排查与性能优化
  • 【权威发布】Gemini监测方案效果实测:某快消巨头ROI提升3.8倍的关键配置参数
  • 5步掌握AMD Ryzen调试神器:SMUDebugTool终极使用指南
  • Slidev深度探索:开发者如何用代码思维重塑演示文稿创作
  • Android进程内存安全机制深度剖析
  • Online-disk-direct-link-download-assistant:九大网盘直链解析终极指南
  • Beyond Compare 5授权密钥生成技术深度解析:从原理到实践的高级指南
  • 【图像融合】基于matlab扩展高斯差分和边缘保持的医学图像融合【含Matlab源码 15583期】
  • 【Gemini数据迁移黄金法则】:20年专家亲授5大避坑指南与实时迁移成功率提升92%的实操路径