这个项目能做什么
V 是一种静态类型、编译型编程语言,专为构建可维护的软件而设计。其既定目标是简单、快速编译、性能可与 C 媲美以及安全性。编译器本身由 V 编写,在典型硬件上可在不到一秒内完成引导编译。
项目描述的主要特性:
- 简单性:该语言旨在短时间内即可学会。
- 快速编译:README 引用在特定测试机器上,使用 Clang 后端约 11 万行/秒,使用原生和 tcc 后端约 50 万行/秒。
- 自托管:V 快速编译自身,主后端生成人类可读的 C 代码。
- 安全特性:无 null、无全局变量、默认不可变,并致力于消除未定义行为。
- 内存管理选项:默认垃圾回收,另有手动(`-gc none`)、竞技场分配(`-prealloc`)和自动释放(`-autofree`)模式。
- C 到 V 的转换,通过 DOOM 转换演示展示。
- 热代码重载。
- 内置 ORM 和内置 Web 框架(veb)。
- C 和 JavaScript 后端,以及 REPL。
- 跨平台 UI 库和内置图形库。
- 简易交叉编译,包括通过 Alpine/musl Docker 镜像生成静态二进制文件。
安装主要从源码进行:克隆仓库并运行 `make`(Windows 上为 `makev.bat`,BSD/Solaris 上为 `gmake`)。当存在兼容版本时,构建会下载捆绑的 Tiny C Compiler。同时提供 Docker 和 Alpine Dockerfile。`v up` 更新编译器,`v symlink` 将其添加到 PATH。
编辑器和 IDE 支持可用于 Atom、CodeLite、Emacs、JetBrains、Sublime Text、Vim/Neovim、VS Code 和 Zed,语言服务器功能由 v-analyzer 提供。
示例涵盖 hello world、单词计数器、新闻抓取器、俄罗斯方块和 2048。使用 sokol 或 gg 模块的 GUI 和游戏示例需要额外的系统开发库。网络模块(net.http、net.websocket)和 `v install` 可以使用捆绑的 Mbed-TLS 或通过 `-d use_openssl` 使用系统 OpenSSL。sync 模块依赖 libatomic。
README 指出该语言处于 1.0 之前,可能仍会变化,语法更改主要由 vfmt 处理。1.0 之后,项目计划像 Go 一样冻结功能,只进行错误修复和性能改进。
评论
0 评分人数达到10人后显示
登录后参与讨论。