c v开发语言,被质疑的 V 语言
近日,V 语言开发者在 Twitter 上发布消息,V0.1 已开源,可下载 Linux,macOS,Windows 版本或用不到一秒的时间从源代码构建它,甚至可以在 Android 上运行。
Twitter 截图据V 语言官网介绍,V 语言是一种静态编译编程语言,用于构建可维护的软件。它与 Go 类似,并受 Oberon,Rust,Swift 的影响。其操作简便,只需花费 30 分钟阅读说明即可基本学会整个语言。
目前,编程语言已经数量可观,为什么还要创建 V 语言?开发者 Alex Medvednikov 表示,因为现有语言都无法囊括以下所有功能,而 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 有所改进:
图源: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 语言官网晒出支持。
图源: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 分钟掌握一门语言“的言论。对于这样一门毁誉参半的新语言,你怎么看?
c v开发语言,被质疑的 V 语言相关推荐
- Go 语言的%d,%p,%v等占位符的使用
Go语言的%d,%p,%v等占位符的使用 1.首先需要了解哪些占位符分别代表什么 这些是死知识,把常用的记住,不常用的直接查表就行了 golang 的fmt 包实现了格式化I/O函数,类似于C的 pr ...
- 在Livemedia的基础上开发自己的流媒体客户端 V 0.01
在Livemedia的基础上开发自己的流媒体客户端 V 0.01 桂堂东 xiaoguizi@gmail.com 2004-10 2004-12 友情申明: 本文档适合已经从事流媒体传输工作或者对网络 ...
- Go语言开发(九)、Go语言并发编程
Go语言开发(九).Go语言并发编程 一.goroutine简介 1.并发与并行简介 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同 ...
- Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1
Gox语言是以Go语言(Golang)为基础的解释型/脚本语言,它除了具有一般脚本语言所具有的编写快捷.语言简洁.易于理解等特点外,还支持其他语言所不具备的跨平台原生图形界面(GUI)开发,并且代码写 ...
- python基于什么语言-一种基于Python语言的EDA开发平台及其使用方法与流程
本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...
- oracle v$sql last_load_time,Oracle 等待事件V$视图
等待事件V$视图 本节包含一些显示等待事件的V$ 脚本.从个人角度来说,我更喜欢使用STATSPACK 报表.AWR 报表或企业管理器来查找等待事件.也就是说,有些很好的视图可以查看等待事件. Ora ...
- 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?
C语言相比其他高级语言,就像内功和剑法一样.只会C语言可能并不能写出一个看起来就很厉害的程序,但C语言是你学好其他一切语言的基础.有了C语言的底子,再学别的语言就很容易上手了. 你能想到的,C语言都能 ...
- 前端开发最基本的3个语言
做软件开发,是从事编程开发工作,必须先从语法基础开始学习,通过语法组成产品效果. 前端开发的基础语法,由HTML+CSS+JavaScript组成,这是前端开发最基本的3个语言. 网页布局基础:HTM ...
- 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...
最新文章
- Google Test(GTest)使用方法和源码解析——自定义输出技术的分析和应用
- Java帝国对Python的渗透能成功吗?
- ubuntu phpinfo mysql_Ubuntu 16.04 apache+php+mysql环境搭建
- 技术实践 | 网易云信 QUIC 加速服务架构与实践
- Java的agent机制简述
- 利用有名管道实现进程间的通信
- Java中implies_boolean implies(Permission p)
- java 学习笔记_java学习笔记
- mysql 无法创建用户_mysql不能创建用户
- pandas 下的 one hot encoder 及 pd.get_dummies() 与 sklearn.preprocessing 下的 OneHotEncoder 的区别
- 安装SQL2000时弹出“以前的某个程序安装已在安装计算机上创建挂起的文件操作、、、”...
- json rpgmv 加密_【RPG Maker MV插件编程】【实例教程6】存档的加密解密与保护
- 2019\National _C_C++_A\试题 A: 三升序列
- 小程序实现6位数密码框
- redis 8.Redis持久化之RDB (如何触发RDB快照;rdb备份恢复)
- ubuntu清理缓存
- 电子政务网络智慧运维方案
- NVMe系列专题之二:队列(Queue)管理
- jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip等格式的文件
- CSP 202012-5 星际旅行(60分)
热门文章
- 编译报错unable to initialize decompress status for section .debug_info
- 听课感悟——信息与信息特征
- ROS机器人建模与仿真(一)——URDF模型的建立和改进
- linux内存占用过高问题解决方法
- 5g宣传方案_活动创意策划方案要向“5G时代”看齐
- 54. Java序列化三连问,是什么?为什么需要?如何实现?
- JavaScript笔记(狂神说)
- ElementUI表格中显示图片,悬浮显示放大图片
- [TIM] 微信登录TIM生产QQ号【并独立使用】
- Unity3d中的走路动画