V语言横空出世,C/C++/Java/Python/Go地位不保
V语言已在github正式开源,目前已收获近9000星,引发开发者的强烈关注。
V语言到底是怎样一门语言?已经有了C/C++/Java/Python/Go..., 我们还需要另外一门语言吗?
先看看V语言对自己的定位:
Simple, fast, safe, compiled language for developing maintainable software。
V语言将编写可维护软件,作为自己的定位。其鲜明的特点是简单、高效、安全、编译型语言。
大家都有这样的经历:接手别人的代码,发现代码极度混乱、阅读起来极其费解、修改起来极其困难,心里一万个草泥马飘过......。这就是典型的不可维护软件。
如果能有一门语言,能够改变这种状况,将软件可维护性作为首要宗旨,并且开发简单,生产力极高,并且软件运行效率极高,这样的编程语言,不是程序员一直梦想的吗?
而目前,C/C++/Java/Python/Go/Rust 等语言,都没有实现上述的目标。咱们来吐槽一下:
C:开发效率极低,维护成本非常高,生态系统非常差。
C++: 语言极度复杂,维护成本非常高,生态系统非常差。
Java:运行效率差,资源占用高
Python:运行效率差
Go:语言并不简单,内置GC是永远的痛。对社区的呼声响应不高。
Rust:语言复杂,开发效率不高,与编译器做斗争,消耗了无谓的青春。
V语言,带来了全新的体验:
编译器极为小巧,才400多K
编译速度极快,目前10万行/秒,目标是120万行/秒的编译速度
语法超级简单,半小时就能学会
语言跨平台,开发者无需考虑平台相关问题
运行性能:与C语言相比,<5%
安全:没有空指针,没有全局变量,没有未定义的行为,变量缺省是不可修改的(immutability)
支持将C源码直接转成V,C++源码的转换也正在开发中
热代码加载(Hot code reloading)
语言自带UI图形库
V语言官网主页上的代码:
fn main() {
areas := ['game','web','tools','science','systems',
'embedded','GUI','mobile']
for area in areas {
println('Hello, $area developers!')
}
}
对于游戏开发、Web开发、工具开发、科学计算、系统编程、嵌入式、图形界面开发、移动开发,都是V语言擅长的领域。
并且,V语言能够跨平台,使得可以用V语言开发Shell脚本,这样就能在不同的平台上保持一份源码,从而避免了bat, bash, kshell 等无法跨平台的问题。
V语言目前,处于极其快速的开发过程中,几天就会发布一个新的版本。2019年底,会Release 1.0版本。因此,C/C++/Java/Python/Go的地位会受到严峻的挑战。
未来,如果V语言进一步,提供工具将Java/Python/Go/Rust 的源码都直接转换为V,那么将极大摧毁这些语言的地位。
V语言的未来,让我们拭目以待!
更多V语言的介绍,可以关注微信号 vlangdev 或扫描二维码 
V语言横空出世,C/C++/Java/Python/Go地位不保的更多相关文章
- 编程语言基础:用“收集器”理解各种语言(C++、Java、Python)中的可变参数!
[C++通常用一种特殊的List收集可变形参,而Java通常用一个数组,Python收集为tuple.dict.] 1.Java中的可变参数的函数:void f(ClassName... object ...
- 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)
使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...
- 【Hbase三】Java,python操作Hbase
Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...
- java的this static public protected private abstract interface 在python的对应,java python一些区别
1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百 ...
- redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐
redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐 1.Redis 官方网站下载: http://redis.io/dow ...
- (八)map,filter,flatMap算子-Java&Python版Spark
map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...
- 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙
长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电 有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...
- paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较
paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi copy() =====java的无,要自己写... ====php copy ...
随机推荐
- 1407251735-hd-美素数.cpp
#include<stdio.h> int s1[1005000],s2[1005000]; //如果main该阵列外部函数中定义,全局变量的数组,自己主动初始化数组0: //在main里 ...
- matlab 工具函数 —— axnote(在坐标轴上写文本内容)
function axnote(string) font_size = get(0, 'DefaultAxesFontSize'); if 1 h1 = text(0.99, 0.05, string ...
- JPlayer-MP3播放器(带播放列表)
第一篇随笔,写的不好的地方,各位不要见笑.其他的也不多说了,下面是我在工作中用的一个基于JQuery开源的插件,官方地址:http://www.jplayer.org/.先看下要实现的效果图: 首先引 ...
- vs2015 生成 cordova 页面中文乱码
原文:vs2015 生成 cordova 页面中文乱码 1.用VS2015新创建Cordova项目,启动运行index.html 中文显示乱码 解决方案: 1.使用text/html通用解析编码utf ...
- 基于Spring开发
1. XML Schema 1.1 最简单的标签 一个最简单的标签,形式如: <bf:head-routing key="1" value="1" to= ...
- SQLite Expert Professional 打开加密SQLite数据库
原文 SQLite Expert Professional 打开加密数据库 (已修改) 版本:sqlite expert professional 4.2.0.739 (x86) 目的:用SQLite ...
- ef调用 access
<add name="AccessConnection" connectionString="Provider=Microsoft.ACE.OleDb.12.0;D ...
- .NET错误提示之:无法更新EntitySet“TableName”因为它有一个DefiningQuery
使用LINQ 进行提交数据时发生的错误提示 原因:提交的对象表 没有设主键.
- Model-View-Controller Explained in C++
The Permanent URL is: Model-View-Controller Explained in C++. The Model-View-Controller (MVC) is not ...
- 浅谈Linux(Centos7.4)环境下NTP服务器的构建
一.软件环境 1.操作系统版本 [root@Geeklp201 etc]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core ...