0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

结合了 Go 和 Rust 特性的新语言——Vlang登顶GitHub

5RJg_mcuworld 来源:YXQ 2019-08-06 11:40 次阅读

这个结合了 Go 和 Rust 特性的新语言 V,正式发布了首个可用版本。

长久以来,编程语言在语法、语义和标准库等方面都存在着千差万别,使得程序员在选择时不得不面临着差异化等难题。自然选择下,就会有旧语言的淘汰(PHP 是个意外,至今还存在)和新语言的诞生。在JetBrains 最新发布的《2019 开发人员生态系统现状》报告中,JavaPython、C/C#、JavaScript 等主流的编程语言在历经实践考验后依然是开发者们的心头好。

而本文的主角 V 语言,在千呼万唤之后,终于于近日开源了,并正式发布了首个可用版本(预构建的二进制文件也即将推出)!其一经发布,便强势登顶GitHub TOP1,引来开发者们的热议围观。

根据介绍,V 是一种新型的静态编译型语言,可以“快速编译、安全且和 C/C++ 转换”,其提供了方便、快捷、安全的编程语言和工具包,还能够很好地服务于区块链技术。

V 语言作者 Reishi Saza 就表示,它是一种非常简单的语言,看官方文档 30 分钟就能完全掌握。而且,其编译器只有 400KB,无任何第三方依赖。

V 的核心 CPU 每秒可以编译大约 120 万行代码,这种速度是通过生成的机器代码和强大的模块化来实现的,但是目前仅支持 x64/Mach-O,预计到今年年底才能足够稳定。而在性能表现上,V 可以做到和 C 一样快,且能够翻译整个 C 或 C++ 项目,实现高达 400x 的编译速度。

std::vectors;s.push_back("Vis");s.push_back("awesome");std::cout<< s.size();mut s := []s << 'V is 's << 'awesome'println(s.len)

目前,整个 V 语言及其标准库小于 400 KB,开发者在 0.4 秒内就可以构建它。并且到今年年底,这个数字还将下降到大约 0.15 秒。

此外,开发者们还在官网上放出了部分示例代码。更多编译器函数介绍可参见官方网站:https://vlang.io/。

1、数据库访问:

structUser{/*...*/}structPost{/*...*/}structDB{/*...*/}structRepo{dbDB}fnnew_repo(dbDB)Repo{returnRepo{db:db}}fn(rRepo)find_by_id(idint)T?{//`?`meansthefunctionreturnsanoptionaltable_name:=T.name//inthisexamplegettingthenameofthetypegivesusthetablenamereturnr.db.query_one('select*from$table_namewhereid=?',id)}fnmain(){db:=new_db()users_repo:=new_repo(db)posts_repo:=new_repo(db)user:=users_repo.find_by_id(1)or{eprintln('Usernotfound')return}post:=posts_repo.find_by_id(1)or{eprintln('Postnotfound')return}}

2、网络开发:

structStory{titlestring}//FetchestopHNstoriesin8coroutinesfnmain(){resp:=http.get('https://hacker-news.firebaseio.com/v0/topstories.json')?ids:=json.decode([]int,resp.body)?mutcursor:=0for_in0..8{gofn(){for{lock{//Withoutthislocktheprogramwillnotcompileifcursor>=ids.len{break}id:=ids[cursor]cursor++}resp:=http.get('https://hacker-news.firebaseio.com/v0/item/$id.json')?story:=json.decode(Story,resp.body)?println(story.title)}}()}runtime.wait()//Waitsforallcoroutinestofinish}

当然,目前V 语言的开发仍处于早期阶段,很多方面还不够完善,尤其是内存管理上还面临着与 Go 和 Rust 同样繁琐的生命期管理问题,但对比 C++ 等手动和半自动的管理方式还是更省心一些的。

那么开发者们怎么看?

@三川走刀口:还是要得到开发者认可,但是对于安卓开发好像没用?

@淡定的龙哥:Go语言同父异母的弟弟?

@Heisenber哥:语言特性只是一方面,生态也很重要。

@王的凝视:这个新语言提出来是为了解决什么问题?每种语言都有适合场景,如果没有合适场景迟早也要被淘汰。

@楚小欢:执行效率比C高应该不可能,C现在都被认为是汇编语言,本身语义也十分接近汇编。别的语言只要有高级点的特性,效率就不可能超过C。

总之,这个新生的 V 语言还是需要不断的发展,得到开发者的广泛应用才能焕发生机,也才能有望助力程序员做到真正的“人剑合一”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GitHub
    +关注

    关注

    3

    文章

    471

    浏览量

    16435
  • 区块链
    +关注

    关注

    111

    文章

    15562

    浏览量

    105991

原文标题:V语言强势登顶GitHub TOP1,发布了首个可用版本!

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在学习go语言的过程踩过的坑

    作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向go语言,从2021年到现在,笔者手上也先后开发了两个go项目。在学习
    的头像 发表于 11-11 09:22 161次阅读

    go语言如何解决并发问题

    作为一个后端开发,日常工作中接触最多的两门语言就是PHP和GO。无可否认,PHP确实是最好的语言(手动狗头哈哈),写起来真的很舒爽,没有任何心智负担,字符串和整型压根就不用区分,开发
    的头像 发表于 10-23 13:38 135次阅读
    <b class='flag-5'>go</b><b class='flag-5'>语言</b>如何解决并发问题

    如何用Rust编写一个ChatGPT桌面应用(保姆级教程)

    用IDEA开发的java仔) 安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rus
    的头像 发表于 09-25 11:19 348次阅读
    如何用<b class='flag-5'>Rust</b>编写一个ChatGPT桌面应用(保姆级教程)

    三十分钟入门基础Go Java小子版

    前言 Go语言定义 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态、强类型、编译型语言
    的头像 发表于 08-12 14:32 732次阅读
    三十分钟入门基础<b class='flag-5'>Go</b> Java小子版

    未来嵌入式系统的黄金搭档 MCX N947遇上Rust

      Rust 介绍 Rust 是一门注重安全的语言,相比于 C/C++/ASM 有着更高级的抽象能力、编译器带来的安全特性与广泛友好的社区支持。 Linux 与 Windows 内核也
    的头像 发表于 07-25 09:14 1351次阅读
    未来嵌入式系统的黄金搭档 MCX N947遇上<b class='flag-5'>Rust</b>

    Vector和HighTec推出基于Rust和AUTOSAR Classic实现安全应用的解决方案

    Vector和HighTec两家公司成功展示Rust应用程序与基于C语言的AUTOSAR Classic基础软件的集成,这在行业内还属首次。这样一来,Rust及其优势可以被应用在有最
    的头像 发表于 07-17 14:42 746次阅读
    Vector和HighTec推出基于<b class='flag-5'>Rust</b>和AUTOSAR Classic实现安全应用的解决方案

    Linux 6.10集成RISC-V更新,支持Rust编程语言

    本次补丁升级中,Linux内核进一步扩展对应于RISC-V架构的Rust编程语言支持。在此之前,Rust已可应用在x86_64、龙芯LoongArch以及ARM64等多种架构之上。
    的头像 发表于 05-23 17:16 958次阅读

    在Aurix Tc375Lk上使用Rust编程语言可以吗?

    您好,如果我想在 Aurix Tc375Lk 上使用 Rust 编程语言,可以吗?如果是,链接 rust 编译器 ADS 和 freetoolchain 的步骤是什么?你有在 ADS 或 freetoolchian 中链接编译器
    发表于 05-17 13:42

    鸿蒙OpenHarmony开发板解析:【Rust模块配置规则和指导】

    Rust是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust官方也使用Cargo工具来专门为Rust代码创建工程和构建编译。 OpenHarm
    的头像 发表于 05-10 11:32 1295次阅读
    鸿蒙OpenHarmony开发板解析:【<b class='flag-5'>Rust</b>模块配置规则和指导】

    [鸿蒙]OpenHarmony4.0的Rust开发

    背景 Rust 是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust 官方也使用 Cargo 工具来专门为 Rust 代码创建工程和构建编译
    的头像 发表于 02-26 17:28 887次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    谷歌捐款100万美元给Rust基金会,以增强C++与Rust的交互性

    如今,谷歌多项核心业务仍以 C++为主要编程语言,虽然无法直接使用Rust替代现有的C++程序,但谷歌依然选择支持Rust基金会的“Interop Initiative”计划,帮助那些选用C++的机构更为顺畅地过渡至
    的头像 发表于 02-19 15:41 650次阅读

    鸿蒙OS之Rust开发

    Rust是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。
    的头像 发表于 01-29 17:19 953次阅读

    一次Rust重写基础软件的实践

    受到2022年“谷歌使用Rust重写Android系统且所有Rust代码的内存安全漏洞为零” [1] 的启发,最近笔者怀着浓厚的兴趣也顺应Rust 的潮流,尝试着将一款C语言开发的基础
    的头像 发表于 01-25 11:21 640次阅读

    Git开发者关注内存安全问题,探讨引入Rust语言

    根据最新披露的邮件讨论,Git开发团队热议在Git项目中引入Rust的可行性。作为一种开源的分布式代码版本管理工具,广泛运用于各种开发项目。尽管现在Git项目主要以C与Python为主要开发语言,但探讨显示,引入Rust能显著降
    的头像 发表于 01-15 14:23 623次阅读
    Git开发者关注内存安全问题,探讨引入<b class='flag-5'>Rust</b><b class='flag-5'>语言</b>

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3. Rust在windows上为什么需要安装Visual studio?
    的头像 发表于 01-02 11:00 531次阅读