V reo whakahōtaka tuwhera puna

Kua whakamaoritia ki te kāwai o te whakahiato tuwhera mo reo V. Ko te V he reo whakahiato-miihini kua whakahiatohia e aro ana ki te whakangwari ake i te whanaketanga me te tere rawa ki te whakahiato. Waehere whakahiato, whare pukapuka me nga taputapu e pa ana kei te tuwhera i raro i te raihana MIT.

He tino rite te wetereo a V ki a Haere, ka tono i etahi hanga mai i Oberon, Rust, me Swift. Ka whakangwarihia te reo ka taea, a, e ai ki te kaiwhakawhanake, 30 meneti te roa o te ako hei ako i nga kaupapa matua. tuhinga. I te wa ano, ka kaha tonu te reo, ka taea te whakamahi ki te mahi i nga mahi pera i te wa e whakamahi ana i etahi atu reo whakamaoritanga (hei tauira, kei te waatea nga whare pukapuka mo nga whakairoiro 2D/3D, te hanga GUI me nga tono paetukutuku).

Ko te hanga i tetahi reo hou na te hiahia ki te whakatutuki i te whakakotahitanga o te ngawari o te reo Go o te wetereo, te tere whakahiato, te ngawari o te whakarara o nga mahi, te kawe me te pupuri i te waehere me te mahi a C/C++, te haumarutanga o Rust me te whakatipuranga o te waehere miihini i te wahanga whakahiato Zig. I hiahia ano ahau ki te tiki i tetahi kaitoha kiato me te tere ka taea te mahi me te kore e whakawhirinaki ki waho, ka whakakore i te whānuitanga o te ao (nga taurangi o te ao) me te whakarato i te kaha ki te "wera" te whakahou i te waehere.

Ki te whakatauritea ki te C++, he tino ngawari ake te reo hou, he tere ake te whakahiato (tae atu ki te 400 nga wa), ka whakahaere i nga tikanga whakamaoritanga haumaru, kaore he raruraru me te whanonga kore tautuhi, me te whakarato taputapu hanga-i roto mo te whakarara i nga mahi. Ka whakatauritea ki te Python, he tere ake te V, he maamaa, he haumaru, he pai ake te tiaki. Ka whakatauritea ki a Haere, karekau he taurangi ao a V, karekau he null, me tautuhi tonu nga uara taurangi katoa, ka kore e rerekee nga mea katoa ma te taunoa, kotahi noa te momo mahi e tautokohia ana ("a := 0"), he tino totika ake. te wa whakahaere me te rahi o nga konae ka taea te whakaputa, te noho tika mai i te C, te kore o te kaikohi paru, te tere o te raupapatanga, te kaha ki te whakauru aho ("println('$foo: $bar.baz')").

fn matua() {
wāhi := ['kēmu', 'tukutuku', 'taputapu', 'pūtaiao', 'pūnaha', 'GUI', 'pūkoro'] a := 10
ki te pono {
ki: = 20
}
mo te waahi i nga waahi {
println('Kia ora, $nga kaiwhakawhanake rohe!')
}
}

Ngā Āhuatanga Kaupapa:

  • He whakahiato kiato me te tere, me te whare pukapuka paerewa ka nui ake te 400 KB. Ko te tere whakahiato teitei ka tutuki ma te hanga tika o te waehere miihini me te whakarereketanga. Ko te tere whakahiato he tata ki te 1.2 miriona nga rarangi waehere mo ia hekona i runga i te matua PTM kotahi (e kiia ana i te wa e mahi ana ka taea e V te whakamahi C, ka heke te tere ki te 100 mano nga rarangi ia rua). Ko te whakahiato-whaiaro o te kaikohikohi, he mea tuhi ano ki te reo V (kei reira ano he putanga tohutoro kei Go), tata ki te 0.4 hēkona. Hei te mutunga o te tau, ko te mahi mo etahi atu arotautanga e tika ana kia oti, ka whakaitihia te wa hanga o te kaitoi ki te 0.15 hēkona. Ma te whakatau i nga whakamatautau i whakahaerehia e te kaiwhakawhanake, ko te huihuinga-whaiaro o Go me 512 MB mokowā kōpae ka rere i roto i te kotahi me te hawhe meneti, Ko te Rust me 30 GB me te 45 meneti, GCC - 8 GB me te 50 meneti, Clang - 90 GB me 25 meneti,
    Tere - 70 GB me te 90 meneti;

  • Ka whakahiatohia nga papatono ki roto i nga konae ka taea te whakahaere me te kore e whakawhirinaki ki waho. Ko te rahi o te konae ka taea te whakahaere o tetahi tūmau http ngawari i muri i te huihuinga he 65 KB anake;
  • Ko te mahinga o nga tono whakahiato kei te taumata o nga huihuinga o nga kaupapa C;
  • Te kaha ki te mahi tahi me te waehere C, kaore he taapiri atu. Ko nga mahi i roto i te reo C ka taea te karanga mai i te waehere i roto i te reo V, me te rereke, ko te waehere i te reo V ka taea te karanga i roto i tetahi reo e hototahi ana ki te C;
  • Tautoko mo te whakamaori i nga kaupapa C/C++ ki roto i te reo V. Ka whakamahia he parser mai i Clang mo te whakamaori. Kaore ano kia tautokohia nga ahuatanga katoa o te paerewa C, engari ko nga kaha o te kaiwhakamaori o naianei kua ranea whakamaoritanga i roto i te reo o te kēmu V DOOM. Ko te kaiwhakamaori C++ kei te timatanga o te whanaketanga;
  • Tautoko raupaparanga-a-roto, me te kore e herea ki te wa mahi;
  • Te whakaiti i nga mahi tohatoha mahara;
  • Te whakarite i te haumaru: kahore he NULL, taurangi o te ao, nga uara kaore i tautuhia me te tautuhi ano. Ko te arowhai i runga i te parepare i roto. Tautoko mo nga mahi whanui (Generic). Ko nga mea me nga hanganga kaore e taea te whakarereke ma te taunoa;
  • Ka taea te whakahou i te waehere "wera" (e whakaatu ana i nga huringa o te waehere i runga i te rere kaore he taapiri);
  • Nga taputapu hei whakarite i te miro maha. Pērā i te reo Haere, ka whakamahia he hanga penei i te "run foo()" ki te timata i tetahi miro mahi hou (he rite ki te "go foo()"). I te wa kei te heke mai, ka whakamaherehia te tautoko mo nga goroutine me te raarangi miro;
  • Tautoko mo Windows, macOS, Linux, *BSD punaha whakahaere. Kua whakaritea ki te taapiri tautoko mo te Android me te iOS hei te mutunga o te tau;
  • Te whakahaere mahara i te wa whakahiato (penei i te Rust), me te kore whakamahi i te kaikohi paru;
  • Te waatea o te kete taputapu-maha mo te whakaputanga whakairoiro, ma te whakamahi i te GDI+/Cocoa me te OpenGL mo te whakaputa (kua whakaritea te tautoko mo DirectX, Vulkan me Metal API). He taputapu mo te mahi me nga taonga 3D, te hākoritanga koiwi me te whakahaere kamera;
  • Te waatea o te whare pukapuka mo te whakaputa atanga kauwhata me nga huānga hoahoa taketake ki ia OS. Ka whakamahi a Windows i te WinAPI/GDI+, ka whakamahia e te macOS te Cocoa, ka whakamahi a Linux i tana ake huinga widget. Kua whakamahia kētia te whare pukapuka ki te whanaketanga wae ngaohiko - kaihoko mo Slack, Skype, Gmail, Twitter me Facebook;

    Ko te mahere ko te hanga i tetahi tono hoahoa atanga rite Delphi, te whakarato i te API korero e rite ana ki te SwiftUI me te React Native, me te whakarato tautoko mo te hanga tono waea mo iOS me Android;

    V reo whakahōtaka tuwhera puna

  • Te waatea o te angamahi tukutuku i hangaia, e whakamahia ana hei hanga paetukutuku, huinga me te rangitaki mo nga kaihanga kaupapa. Ka tautokohia te whakahiatotanga o nga tauira HTML, me te kore e tukatuka i runga i ia tono;
  • Tautoko whakahiato ripeka. Hei hanga i te konae ka taea te whakahaere mo Windows, whakahaere noa i te "v -os windows", me te Linux - "v -os linux" (kei te tumanakohia te tautoko whakahiato whakawhiti mo te macOS i muri mai). Ka mahi hoki te whakahiato-whakawhitiwhiti mo nga tono kauwhata;
  • Kaiwhakahaere whakawhirinaki-i roto, kaiwhakahaere kete me nga taputapu hanga. Hei hanga i te kaupapa, whakahaere noa "v.", me te kore e whakamahi i nga taputapu hanga, o waho ranei. Hei whakauru i etahi atu whare pukapuka, rere noa, hei tauira, "v get sqlite";
  • Te waatea o nga taputapu mo te whanaketanga i te reo V i roto i nga kaiwhakatika Waehere VS и VIM.

Te whanaketanga kua kitea hapori me pohehe, i te mea i whakaatuhia e te waehere kua whakaputaina kaore ano kia whakatinanahia nga kaha katoa kua whakapuakihia, me te nui rawa o nga mahi hei whakatinana i nga mahere katoa.
I tua atu, i te tuatahi i te putunga whakairihia waehere pakaru he raruraru ki te huihuinga me te mahi. Ko te whakapae kare ano te kaituhi i eke ki te waahi ka timata te kite Te ture a Pareto, e ai ki te 20% o te kaha ka whakaputa i te 80% o te hua, a ko te toenga o te 80% o te kaha ka whakaputa noa i te 20% o te hua.

I taua wa, tata ki te 10 nga pou i tangohia mai i te kaitirotiro bug a Project V whakaaturanga waehere kounga iti, hei tauira, e whakaatu ana i te whakamahinga o nga whakauru-C me te whakamahi i roto i te whare pukapuka o nga mahi mo te whakakore i te raarangi o te whakahau rm ma te waea os.system("rm -rf $path"). Kaituhi o te kaupapa i kiihiai mukua e ia nga karere, whakaputaina troll (me nga huringa e whakamana ana i te mana o te whakahe, i noho в whakatika hītori).

Source: opennet.ru

Tāpiri i te kōrero