0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

結(jié)合了 Go 和 Rust 特性的新語言——Vlang登頂GitHub

5RJg_mcuworld ? 來源:YXQ ? 2019-08-06 11:40 ? 次閱讀

這個結(jié)合了 Go 和 Rust 特性的新語言 V,正式發(fā)布了首個可用版本。

長久以來,編程語言在語法、語義和標(biāo)準(zhǔn)庫等方面都存在著千差萬別,使得程序員在選擇時不得不面臨著差異化等難題。自然選擇下,就會有舊語言的淘汰(PHP 是個意外,至今還存在)和新語言的誕生。在JetBrains 最新發(fā)布的《2019 開發(fā)人員生態(tài)系統(tǒng)現(xiàn)狀》報告中,Java、Python、C/C#、JavaScript 等主流的編程語言在歷經(jīng)實踐考驗后依然是開發(fā)者們的心頭好。

而本文的主角 V 語言,在千呼萬喚之后,終于于近日開源了,并正式發(fā)布了首個可用版本(預(yù)構(gòu)建的二進(jìn)制文件也即將推出)!其一經(jīng)發(fā)布,便強(qiáng)勢登頂GitHub TOP1,引來開發(fā)者們的熱議圍觀。

根據(jù)介紹,V 是一種新型的靜態(tài)編譯型語言,可以“快速編譯、安全且和 C/C++ 轉(zhuǎn)換”,其提供了方便、快捷、安全的編程語言和工具包,還能夠很好地服務(wù)于區(qū)塊鏈技術(shù)。

V 語言作者 Reishi Saza 就表示,它是一種非常簡單的語言,看官方文檔 30 分鐘就能完全掌握。而且,其編譯器只有 400KB,無任何第三方依賴。

V 的核心 CPU 每秒可以編譯大約 120 萬行代碼,這種速度是通過生成的機(jī)器代碼和強(qiáng)大的模塊化來實現(xiàn)的,但是目前僅支持 x64/Mach-O,預(yù)計到今年年底才能足夠穩(wěn)定。而在性能表現(xiàn)上,V 可以做到和 C 一樣快,且能夠翻譯整個 C 或 C++ 項目,實現(xiàn)高達(dá) 400x 的編譯速度。

std::vectors;s.push_back("Vis");s.push_back("awesome");std::cout<

目前,整個 V 語言及其標(biāo)準(zhǔn)庫小于 400 KB,開發(fā)者在 0.4 秒內(nèi)就可以構(gòu)建它。并且到今年年底,這個數(shù)字還將下降到大約 0.15 秒。

此外,開發(fā)者們還在官網(wǎng)上放出了部分示例代碼。更多編譯器函數(shù)介紹可參見官方網(wǎng)站:https://vlang.io/。

1、數(shù)據(jù)庫訪問:

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、網(wǎng)絡(luò)開發(fā):

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}

當(dāng)然,目前V 語言的開發(fā)仍處于早期階段,很多方面還不夠完善,尤其是內(nèi)存管理上還面臨著與 Go 和 Rust 同樣繁瑣的生命期管理問題,但對比 C++ 等手動和半自動的管理方式還是更省心一些的。

那么開發(fā)者們怎么看?

@三川走刀口:還是要得到開發(fā)者認(rèn)可,但是對于安卓開發(fā)好像沒用?

@淡定的龍哥:Go語言同父異母的弟弟?

@Heisenber哥:語言特性只是一方面,生態(tài)也很重要。

@王的凝視:這個新語言提出來是為了解決什么問題?每種語言都有適合場景,如果沒有合適場景遲早也要被淘汰。

@楚小歡:執(zhí)行效率比C高應(yīng)該不可能,C現(xiàn)在都被認(rèn)為是匯編語言,本身語義也十分接近匯編。別的語言只要有高級點的特性,效率就不可能超過C。

總之,這個新生的 V 語言還是需要不斷的發(fā)展,得到開發(fā)者的廣泛應(yīng)用才能煥發(fā)生機(jī),也才能有望助力程序員做到真正的“人劍合一”。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    461

    瀏覽量

    16237
  • 區(qū)塊鏈
    +關(guān)注

    關(guān)注

    110

    文章

    15558

    瀏覽量

    105248

原文標(biāo)題:V語言強(qiáng)勢登頂GitHub TOP1,發(fā)布了首個可用版本!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    三十分鐘入門基礎(chǔ)Go Java小子版

    前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)、強(qiáng)類型、編譯型語言
    的頭像 發(fā)表于 08-12 14:32 ?590次閱讀
    三十分鐘入門基礎(chǔ)<b class='flag-5'>Go</b> Java小子版

    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    ? Rust 介紹 Rust 是一門注重安全的語言,相比于 C/C++/ASM 有著更高級的抽象能力、編譯器帶來的安全特性與廣泛友好的社區(qū)支持。 Linux 與 Windows 內(nèi)核也
    的頭像 發(fā)表于 07-25 09:14 ?1069次閱讀
    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上<b class='flag-5'>Rust</b>

    Linux 6.10集成RISC-V更新,支持Rust編程語言

    本次補(bǔ)丁升級中,Linux內(nèi)核進(jìn)一步擴(kuò)展對應(yīng)于RISC-V架構(gòu)的Rust編程語言支持。在此之前,Rust已可應(yīng)用在x86_64、龍芯LoongArch以及ARM64等多種架構(gòu)之上。
    的頭像 發(fā)表于 05-23 17:16 ?779次閱讀

    在Aurix Tc375Lk上使用Rust編程語言可以嗎?

    您好,如果我想在 Aurix Tc375Lk 上使用 Rust 編程語言,可以嗎?如果是,鏈接 rust 編譯器 ADS 和 freetoolchain 的步驟是什么?你有在 ADS 或 freetoolchian 中鏈接編譯器
    發(fā)表于 05-17 13:42

    [鴻蒙]OpenHarmony4.0的Rust開發(fā)

    背景 Rust 是一門靜態(tài)強(qiáng)類型語言,具有更安全的內(nèi)存管理、更好的運(yùn)行性能、原生支持多線程開發(fā)等優(yōu)勢。Rust 官方也使用 Cargo 工具來專門為 Rust 代碼創(chuàng)建工程和構(gòu)建編譯
    的頭像 發(fā)表于 02-26 17:28 ?664次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開發(fā)

    一次Rust重寫基礎(chǔ)軟件的實踐

    受到2022年“谷歌使用Rust重寫Android系統(tǒng)且所有Rust代碼的內(nèi)存安全漏洞為零” [1] 的啟發(fā),最近筆者懷著濃厚的興趣也順應(yīng)Rust 的潮流,嘗試著將一款C語言開發(fā)的基礎(chǔ)
    的頭像 發(fā)表于 01-25 11:21 ?483次閱讀

    Git開發(fā)者關(guān)注內(nèi)存安全問題,探討引入Rust語言

    根據(jù)最新披露的郵件討論,Git開發(fā)團(tuán)隊熱議在Git項目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運(yùn)用于各種開發(fā)項目。盡管現(xiàn)在Git項目主要以C與Python為主要開發(fā)語言,但探討顯示,引入Rust能顯著降
    的頭像 發(fā)表于 01-15 14:23 ?464次閱讀
    Git開發(fā)者關(guān)注內(nèi)存安全問題,探討引入<b class='flag-5'>Rust</b><b class='flag-5'>語言</b>

    Go編程語言-你應(yīng)該知道的一切

    Go 編程語言的故事始于 Google,當(dāng)時三位工程師 Robert Griesemer、Rob Pike 和 Ken Thompson 對 C++ 的復(fù)雜性以及缺乏提供高效編譯和執(zhí)行的簡單語言感到厭倦。
    的頭像 發(fā)表于 12-11 17:37 ?495次閱讀

    基于Rust開發(fā)的編程語言

    Move 是一門由 Rust 語言開發(fā)的一門面向資產(chǎn)的編程語言,最早由 Facebook (現(xiàn) Meta )投入大量的人力物力開發(fā),用于 Libra (現(xiàn) Dime )項目,處理全球性大規(guī)模支付系統(tǒng)的編程
    的頭像 發(fā)表于 11-17 12:30 ?581次閱讀

    Go語言比Python強(qiáng)多少

    1.都說Go語言性能非常強(qiáng)大,那么到底比Python強(qiáng)多少? 為了比較Go語言和Python語言在單線程性能上的差距,我們可以做一個簡單實驗
    的頭像 發(fā)表于 11-02 14:05 ?442次閱讀
    <b class='flag-5'>Go</b><b class='flag-5'>語言</b>比Python強(qiáng)多少

    如何讓Python和Go互相調(diào)度

    我們曾經(jīng)研究過如何讓Python和Go互相調(diào)度,當(dāng)時發(fā)現(xiàn),將Go語言寫的模塊打包成動態(tài)鏈接庫,就能在Python中進(jìn)行調(diào)度: 優(yōu)劣互補(bǔ)! Python+Go
    的頭像 發(fā)表于 11-02 11:24 ?461次閱讀
    如何讓Python和<b class='flag-5'>Go</b>互相調(diào)度

    使用Rust優(yōu)化Python性能

    在數(shù)據(jù)分析領(lǐng)域Python無疑是最流行的編程語言,但是Python有一個硬傷就是作為一個編譯語言在性能上有些微的欠缺。而同樣最流行的語言Rust則在性能方面表現(xiàn)優(yōu)秀。本文我們一起學(xué)習(xí)一
    的頭像 發(fā)表于 11-01 15:59 ?739次閱讀
    使用<b class='flag-5'>Rust</b>優(yōu)化Python性能

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫

    MySQL是一個廣泛使用的關(guān)系型數(shù)據(jù)庫,Rust作為一門相對較新的系統(tǒng)級編程語言,具有C語言般的高性能、安全、并發(fā)等特性,因此與MySQL一起使用是一種非常有趣的選擇。在本教程中,我們
    的頭像 發(fā)表于 09-30 17:05 ?1407次閱讀

    Rust語言如何與 InfluxDB 集成

    Rust 是一種系統(tǒng)級編程語言,具有高性能和內(nèi)存安全性。InfluxDB 是一個開源的時間序列數(shù)據(jù)庫,用于存儲、查詢和可視化大規(guī)模數(shù)據(jù)集。Rust 語言可以與 InfluxDB 集成,
    的頭像 發(fā)表于 09-30 16:45 ?969次閱讀

    Rust GUI實踐之Rust-Qt模塊

    Rust-Qt 是 Rust 語言的一個 Qt 綁定庫,它允許 Rust 開發(fā)者使用 Qt 框架來創(chuàng)建跨平臺的圖形界面應(yīng)用程序。Qt 是一個跨平臺的應(yīng)用程序框架,它提供
    的頭像 發(fā)表于 09-30 16:43 ?1382次閱讀