被质疑的 V 语言

近日,V 语言开发者在 Twitter 上发布消息,V0.1 已开源,可下载 Linux,macOS,Windows 版本或用不到一秒的时间从源代码构建它,甚至可以在 Android 上运行。

图0:被质疑的 V 语言

Twitter 截图
V 语言官网介绍,V 语言是一种静态编译编程语言,用于构建可维护的软件。它与 Go 类似,并受 Oberon,Rust,Swift 的影响。其操作简便,只需花费 30 分钟阅读说明即可基本学会整个语言。

目前,编程语言已经数量可观,为什么还要创建 V 语言?开发者 Alex Medvednikov 表示,因为现有语言都无法囊括以下所有功能,而 V 语言可以实现。

图1:被质疑的 V 语言

图源:V 语言官网

开发者提及的主要特性

  • 快速编译

每个 CPU 核心每秒大约可编译 120 万行代码;
这一速度是通过直接的机器代码生成和强大的模块化实现的;
可在 0.3-0.6 秒内自我编译;
V 也可以发出 C,但编译速度会有所下降。

  • 性能

和 C 一样快;
与 C 互操作无需任何成本;
分配数量最少;
没有运行时反射的内置序列化;
编译为没有任何依赖关系的本机二进制文件:一个简单的 Web 服务器只有 65 KB。

  • 400 KB 编译器 零依赖性

整个语言及其标准库小于 400 KB。V 用 V 语言编写,人们可以在 0.4 秒内构建它。到今年年底,这个数字将会提升至约 0.15 秒。以下是各种语言的对比结果:

语言 所需空间 建立时间
Go 525MB 1 分 33 秒
Rust 30GB 45 分
GCC 8GB 50 分
Clang 90GB 25 分
Swift 70GB 90 分
V 0.4MB 0.4 秒

现在 V 编译器确实有一个依赖,那就是 C 编译器。未来,一旦 x64 代足够成熟就不需要它。

  • C / C ++ 翻译

V 可以翻译整个 C 或 C ++ 项目,提供安全性、简单性和高达 400x 的编译速度。

  • 轻松完成交叉编译

要交叉编译软件,只需运行 v -os windows . 或 v -os linux .,不需要额外的步骤,即使对于 GUI 和图形应用程序!

与其他语言的差异

与 C ++ 相比,V 要简单得多。它提供高达 400 倍的编译速度,安全性强,缺少未定义的行为,易于并发,编译时间代码生成等。

与 Python 相比,V 更快,更简单,更安全,更易于维护。

V 与 Go 非常相似,在以下方面,V 有所改进:

图2:被质疑的 V 语言

图源:V 语言官网
V 的域与 Rust 类似,Rust 是一种复杂的语言,具有越来越多的功能和陡峭的学习曲线。V 的目标是允许构建可维护且可预测的软件,这就是 V 语言为何如此简单。它的好处在于,你可以跳进项目中的任何部分,了解正在发生的事情,它只有一种做事方式。此外,Rust 的编译速度很慢,与 C ++ 相当,而 V 每秒每个 CPU 可编译 120 万行代码。

官网显示,V 语言支持 Windows,macOS,Linux,* BSD 系统,今年晚些时候,在 Android 和 iOS 上也可以投入使用。开发者 Alex Medvednikov 表示,V1.0 将于今年年底前推出。在 V1.0 发布前,V 语言不会有太大的变化,除了可能会添加一些新功能,如 goroutines。

网友评论褒贬不一

对于这门新兴的语言,一些网友在 V 语言官网晒出支持。

图3:被质疑的 V 语言

图源:V 语言官网
然而,6 月下旬 V0.1 开源后,质疑声纷至沓来。InfoQ 对网上观点进行了简要汇总,具体观点如下:

观点一:实际体验与开发者介绍不符

在 Reddit 上的一篇热门文章《V is for Vaporware》下,有近 350 条网友评论,可以看出,人们对这门新语言开源后的表现非常关注。文章开篇即指出,“V 语言是一种被大肆宣传的语言,(V 语言官网)提及的一些功能都是处于’正在进行中‘的状态或源存储库中完全不存在”。

在网友评论上,提及最多的便是技术实现粗糙的问题。如,翻译出来的 C 语言混乱;一些基础的数据结构都没有得到好的支持;没有二维或更高维的数组支持;Map 只是一个数组;测试用例过于简单;总共不足 50 个文件。基本上,不能称之为是一个完整的项目,离真正的语言还相距甚远。

观点二:东拼西凑的半成品语言 没有新特性

新语言的开拓离不开生态系统。V 语言能否屹立市场,很大程度上在于能否建立具有个人风格的生态系统。而整个 V 语言的开发者只有一人,虽然达到这样的完成度实属不易,但 V 语言本身没有任何新特性产生,看上去像是 Go 的翻版。此外,V 语言的开发者几乎就是把 Rust 的一些特性牵强地揉进 Go 里,造成 Go 和 Rust 都失去了自身的优点。有网友甚至认为,V 语言就目前看来就是一个翻译机,根本不能称之为语言。

观点三:站在巨人的肩膀上 夸大自身特性

开发者在介绍中表示, V 语言目前是没有 GC 的,V 的内存管理类似于 Rust 。但 Rust 中引入的所有权和生命周期的概念,在 V 语言中都还没有得到体现。那么,V 语言在内存管理方面就不得不令人存疑。V 语言的目标是不用 LLVM,直接生成机器码。而作为一个翻译到 C 语言的新语言表示自己没有依赖 LLVM 和自己的速度显得有失偏颇。

对于这个出自新手的新语言,《V is for Vaporware》的作者 Christine Dodrill 总结道,这是一款非常 alpha 的产品。

在评论中可以明显看到,一些网友往往会联想到近期颇为火爆的 Go,称其为 Go 的孪生兄弟,甚至是山寨版,并且把 V 语言在传播层面的成功归结为一种盲目的跟风、炒作,同样遭受质疑的还有官网中提到的“30 分钟掌握一门语言“的言论。对于这样一门毁誉参半的新语言,你怎么看?

本文文字及图片出自 InfoQ

余下全文(1/3)
分享这篇文章:

请关注我们:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注