V语言今天正式,欢迎访问V语言中文网:https://vlang-zh.cn/
在线运行:https://vlang.io/play
fn main() {
areas := ['game', 'web', 'tools', 'science', 'systems', 'GUI', 'mobile']
for area in areas {
println('Hello, $area developers!')
}
}
注:如果二维码过期,可以通过“光谷码农”微信公众号底部菜单扫码进入。
V语言还处于非常早期的开发阶段。很多特性都标记为开发中状态(WIP,work in progress)。不过此页面相关的内容和代码都会在2019年6月22号开源。如果所有的WIP开发工作都完成,那么将是发布V1.0的时候。
在Intel i5-7500 @ 3.40GHz, SM0256L SSD没有优化的环境,每秒钟可以编译120万行V代码。这是通过模块化和直接输出机器码来实现快速编译的。
V语言编译器也可以直接输出C语言代码,但是输出的性能将下降到10行每秒钟。
注:直接输出机器码还处于非常早期的阶段,目前只支持X64环境的Mach-O格式的目标文件。因此目前必须先输出C代码再进行编译。
没有空值
没有全局变量
没有未定义的值
没有未定义的行为
没有变量屏蔽
边界检查
Option/Result类型
泛型(WIP)
默认变量不可变
默认函数是纯函数
模式结构体不可变
快如C语言
和C语言对接没有额外成本
最小化内存分配行为
内置的序列化没有基于运行时反射
输出的二进制没有外部依赖,一个Web服务才65KB
你可以在半个小说读完全部的自带文档。虽然简洁,但是不简单!你可以用V语言做任何其它语言可以做的事情!
语言的标准库小雨400KB。V语言已经自举,用V语言编写,可以在0.4秒内构建(到今年地,时间继续降到0.15秒)。
时间对比:
语言 内存大小 编译时间
Go 525 MB 1m 33s
Rust 30 GB 45m
GCC 8 GB 50m
Clang 90 GB 25m
Swift 70 GB 90m
V 0.4 MB 0.4s
目前V语言只依赖C语言编译器,用于启动。一旦语言完备,就可以不再需要C语言编译器。
先在0.4秒内构建V,然后使用生成的编译器再次构建自己:
V可以翻译整个C/C++代码到V代码,以享受带来的安全性、简单性和高达400x的编译速度。
比如C++代码:
std::vector<std::string> s;
s.push_back("V is ");
s.push_back("awesome");
std::cout << s.size();
将翻译为以下V代码:
mut s := []
s << 'V is '
s << 'awesome'
println(s.len)
关于翻译DOOM的博客文章即将发布。
翻译几乎支持全部的C语言标准,但是对C++对支持还处于早期阶段。上面是简单的例子,复杂的C++代码可能有困难。C++是一个比较复杂的语言,我们希望今年年底能完成这个工作。
更多的信息请访问V语言中文网:https://vlang-zh.cn/