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地位不保的更多相关文章

  1. 编程语言基础:用“收集器”理解各种语言(C++、Java、Python)中的可变参数!

    [C++通常用一种特殊的List收集可变形参,而Java通常用一个数组,Python收集为tuple.dict.] 1.Java中的可变参数的函数:void f(ClassName... object ...

  2. 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)

    使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...

  3. 【Hbase三】Java,python操作Hbase

    Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...

  4. java的this static public protected private abstract interface 在python的对应,java python一些区别

    1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百 ...

  5. redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐

    redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐 1.Redis 官方网站下载: http://redis.io/dow ...

  6. (八)map,filter,flatMap算子-Java&Python版Spark

    map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...

  7. 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙

    长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电   有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...

  8. paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较

    paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...

  9. paip.复制文件 文件操作 api的设计uapi java python php 最佳实践

    paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi   copy() =====java的无,要自己写... ====php   copy ...

随机推荐

  1. 张汝京:CIDM模式进可攻、退可守,建议尝试

    飞象网讯(路金娣/文)大约30多年前一些美国.日本和欧洲的IDM半导体工厂把多余的产能出来做代工服务,因为代工的公司不会与客户竞争,所以专业代工的模式成为半导体市场的新宠.那么,究竟国内半导体行业更加 ...

  2. Android备注26.Android异步任务(AsyncTask)

    转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.引言     我们知道Android的UI线程主要负责处理用户的按键事件.用户触屏事件及屏幕画 ...

  3. 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)

    之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中: [C/S通信交互之Socket篇]Cocos2dx(Client)使用BSD Socke ...

  4. .NET Core 中使用 Humanizer 显示友好时间格式

    今天在将一个 .net framework 项目迁移至 .net core 的过程中,在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)的代码时,找了找看有没有对应的开源库,结果找到了 Hum ...

  5. Web service的学习资源

    看了半天的Web service,总算是对它有了一点眉目,不枉此行:)那就整理一下吧,来日还需要用到呢! 1.什么是Web service(请看这儿). 2.Web service的开发        ...

  6. DLL编写与调用全解

    DLL编写与调用全解 DELPHI学习   2008-12-23 22:52   阅读8   评论0   字号: 大  中  小 第一章 为什么要使用动态链接库(DLL) top 提起DLL您一定不会 ...

  7. 图像滤镜艺术---(Sketch Filter)素描滤镜

    原文:图像滤镜艺术---(Sketch Filter)素描滤镜 (Sketch Filter)素描滤镜 素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下: 1,对原图S进行去色命令得到灰度图A ...

  8. 图像滤镜艺术--Toaster滤镜

    原文:图像滤镜艺术--Toaster滤镜     根据Instagram CEO的说法,Toaster滤镜是Instagram所有滤镜中最复杂的滤镜,这个滤镜给人一种新奇的红色烘烤感,很能让人联想起这 ...

  9. background-blend-mode叠加代码

    <html> <head> <style> .container { background: url("p1.jpg"), url(" ...

  10. JVM的几个介绍

    关于jvm内存的几点 jvm在运行时分为方法区(Method Area) .虚拟机栈(VM Stack).本地方法栈(Native Method Stack).堆 (Heap).程序计数器 (Prog ...