Darklang 在一月底发布了第九个版本。
Darklang 是一门 “deployless” 部署的编程语言(具有内置的基础结构)。严格来说,它是语言、编辑器和基础设施的混合体,主要用于构建后端 Web 服务。
Darklang 的初衷是打破工具集爆炸的情况,让代码部署到生产环境的过程更轻松:程序员只需编写代码,代码会直接投入生产。简单来说,Darklang 可直接在 ide 里写代码,Darklang 的基础设施会顺带帮你进行编译部署、版本管理,AB 测试,以及进行云环境的配置,如负载均衡,容灾,扩缩容,服务发现等,让你从写代码到用于生产不超过 1 分钟。
这个新版本带来下面这些重大改动:
&& 和 || 的改动
这个版本有新的 &&
和 ||
运算符, Darklang 之前对 ||
和 &&
使用了函数,意味着这两个表达式总是被求值。
||
和 &&
函数调用的旧用法仍然像以前一样工作(复制粘贴代码、调用现有函数等),但现已被标记为弃用。可使用 convert-to-short-circuiting
内置命令,自动将旧版本转换为新版本。
||
和 &&
的新用法将默认使用短路版本(short-circuiting versions)。如果你更喜欢旧版本,可以直接调用 Bool::and
和 Bool::or
。
Character-functions 字符函数
Darklang 内置了一些字符功能,版本 9 开始对其进行扩展(Darklang 中的“字符”是单个屏幕可见字符”),添加了功能,包括:
Char::isUppercase_v0
Char::isLowercase_v0
Char::toUppercase_v1
Char::toLowercase_v1
Char::isDigit_v0
Char::isASCII_v0
Char::isASCIILetter_v0
还添加了在函数参数和返回类型中添加 Char
类型的功能。
其他面向用户的变化
在等宽字体不合适的地方使用新字体(Source Sans Pro),将来新字体将成为 Dark 语言新的默认字体。
此外还添加了 List::partition_v0
,扩展了对元组的实验性支持。
内部变化
- 在客户端增加了对浏览器 API 的 ReScript 库的使用,并增加了对 Tailwind 的使用。
- 在后端合并了
backend
和fsharp-backend
目录,将跟踪从数据库中移出并移到云存储中。 - 删除了旧的内部设置,并重构了
match
模式,为即将到来的let
模式腾出空间。 - 还添加了更好的序列化检查,以防止无法读取用户代码的部署