FAQ

V语言是一个简单、快速、安全的编译型语言,比较适合于开发可维护的软件。

Google讨论组:


V语言有中文网了吗?

必须的,V语言中文网请访问:https://vlang-zh.cn

已经有了Go、Rust、C++、Python这么多语言,已经学不动了,为何又要造一个轮子?

V和其他语言的详细比较

原文说的比较含蓄,翻译下:就是其它语言太烂了,V语言才是真NB。

V语言是什么语言写的?

V语言。V的编译器可以编译自身。原始版本是Go语言写的。

V是不是又偷偷用了LLVM?

绝对没有!V编译器直接生成目标机器码。因此它才能这么飞快(潜台词就是LLVM的语言比较慢,好像是说那个什么Xust语言)。目前只有支持x64 Mach-O格式。但是当V开源后,其它的CPU平台和格式会飞快得到支持(这是指望大家来帮忙填坑吗)。

V还可以生成人类可读的C代码,因此可以编译到任何支持C的平台。但是这种方式速度要降低10倍。

性能是不是很烂?

目前V生成C代码,然后通过GCC和Clang来进行优化。通过这种方式可以使用复杂的优化技术。

不过这种方式构建的速度比V编译要慢150倍(但是依然比C++的编译速度快一个数量级)。

如果在开发期间就需要终极的优化(例如游戏中的AAA问题),这可能是一个问题。对于这种情形,可以使用代码的热加载技术。

在未来的计划中,V将拥有自己的优化器。

有自动垃圾内存回收吗?

没有GC!V在编译时管理内容(和Rust类似)。目前只有基础部分被管理,复杂的场景需要手动管理内存。更多信息请参考:https://vlang.io/docs#memory

是否会有包管理?

必须的!V是模块化的语言,并且鼓励创建可复用的模块。会有一个中央仓库,安装模块就是这么简单:

$ v get sqlite

有并发吗?

将会和Go语言一样。并发调用一个foo()函数,只需要go foo()。目前一个并发基于一个系统线程。马上会实现类似goroutine的调度机制。

是否可以不依赖libc构建V程序?

必须的!

支持自定义分配器吗?

必须的。不过目前还没有实现,但是在6月正式开源之后会尽快实现。

在v1.0之前,V还会发生很大的变化吗?

应该不会,目前文档中的特性将保持不变。当然会有一些新的功能会加入(例如Goroutine)。

在设计V语言的时候,作者已经经过深思熟虑以确保在未来语法不会出现大的变化。

即使有语法变化发生,vfmt格式化工具也将会自动处理。

在v1.0发布之后也同样如此。

什么时候发布v1.0?

计划是在2019年底之前推出v1.0。

这个计划虽然听起来有点疯狂,但是V是一个短小而简单的语言。其中大部分特性已经实现。

为开发人员提供确定性和稳定的正式版本非常终于,我们不会让语言长时期处于Beta状态。

支持了几个平台?

Windows/macOS/Linux/*BSD已经支持,Android和iOS已经纳入明年的搬砖计划。

V有豪华的团队支持吗?

就作者一个码农。是不是不敢用了:D

翻译C++代码的原理是什么?毕竟C++编译器不是人写的。

Clang编译器先进行语法解析,然后在翻译到V代码。

编辑支持V语言吗?

VSCode和Vim都有基本的插件。另可以试试Vid编辑器,该编辑器以V语言编写,它内置支持V语言。

Emacs的插件和其他主流的编辑器插件即将推出。

V是一种小而简单的语言,它不需要强大的IDE。

V有什么梗吗?

语言最初的名字和用它来开发的产品同名,就是Volt。文件扩展名也是.v,我们不想串改git历史,因此我们将它命名为V语言。

这个简单的名字也反映来语言的简介,并且每个码农都容易说出正确读音。

请注意,V语言的名称是“V”,而不是“Vlang”或“V-Lang”等(不要再搞出Golang那种笑柄来)。

有没有使用GPL开源版权?

我们用的是MIT!


关注光谷码农公众号,了解V语言更多资讯: