V puo ea lenaneo mohloli o bulehileng

E fetoletsoe mokhahlelong oa mokopanyi ea bulehileng bakeng sa puo V. V ke puo e bokelletsoeng ka mochini ka mokhoa o hlophisitsoeng e shebaneng le ho etsa hore nts'etsopele e be bonolo ho e hlokomela le ho e bokella kapele. Khoutu ea pokello, lilaeborari le lisebelisoa tse amanang bula tlas'a laesense ea MIT.

Syntax ea V e ts'oana haholo le Go, e alima meaho e meng ho tsoa ho Oberon, Rust, le Swift. Puo e nolofalitsoe ka hohle kamoo ho ka khonehang, ho ea ka moqapi, metsotso e 30 ea ho ithuta e lekane ho ithuta lintho tsa motheo. litokomane. Ka nako e ts'oanang, puo e ntse e le matla haholo 'me e ka sebelisoa ho etsa mesebetsi e tšoanang le ea lipuo tse ling tsa lenaneo (mohlala, lilaebrari li fumaneha bakeng sa litšoantšo tsa 2D / 3D, ho theha li-GUI le lisebelisoa tsa marang-rang).

Ho thehoa ha puo e ncha ho susumelitsoe ke takatso ea ho finyella motsoako oa mokhoa o bonolo oa puo ea Go ea syntax, lebelo la ho bokella, boiketlo ba ho tšoana ha ts'ebetso, ho khoneha le ho boloka khoutu ka ts'ebetso ea C / C ++, ts'ireletso ea Rust le tlhahiso ea khoutu ea mochini sethaleng sa pokello ea Zig. Ke ne ke boetse ke batla ho fumana komporo e kopanetsoeng le e potlakileng e ka sebetsang ntle le ho its'etleha ka ntle, ho tlosa maemo a lefats'e (liphetoho tsa lefats'e) le ho fana ka bokhoni ba ho "chesa" ho kenya khoutu hape.

Ha e bapisoa le C ++, puo e ncha e bonolo haholo, e fana ka lebelo la ho bokella ka potlako (ho fihlela makhetlo a 400), e sebelisa mekhoa e sireletsehileng ea mananeo, ha e na mathata a boitšoaro bo sa hlalosoang, 'me e fana ka lisebelisoa tse hahiloeng bakeng sa ts'ebetso e tšoanang. Ha e bapisoa le Python, V e potlakile, e bonolo, e bolokehile ebile e ka hlokomeloa haholoanyane. Ha e bapisoa le Go, V ha e na mefuta e fapaneng ea lefats'e, ha e na letho, litekanyetso tsohle tse feto-fetohang li tlameha ho hlalosoa kamehla, lintho tsohle ha li fetohe ka mokhoa o ikhethileng, ke mofuta o le mong feela oa kabelo o tšehetsoeng ("a := 0"), e kopaneng haholo. nako ea ho sebetsa le boholo ba lifaele tse ka phethoang tse hlahisoang, boteng ba ho nkeha ka ho toba ho tloha ho C, ho ba sieo ha moqoqo oa lithōle, ho etsa serialization ka potlako, bokhoni ba ho kenyelletsa likhoele ("println ('$ foo: $bar.baz')").

fn main() {
libaka := ['papali', 'web', 'thulusi', 'saense', 'litsamaiso', 'GUI', 'mobile'] a := 10
haeba 'nete {
ho:=20
}
sebakeng sa libaka {
println('Lumela, bahlahisi ba sebaka sa $!')
}
}

Likarolo tsa Morero:

  • Compact and fast compiler, eo mmoho le laeborari e tloaelehileng e nkang hoo e ka bang 400 KB. Lebelo le phahameng la ho bokella le fihlelleha ka tlhahiso e tobileng ea khoutu ea mochini le modularity. Lebelo la ho bokella ke mela e ka bang limilione tse 1.2 tsa khoutu ka motsotsoana ho motsoako o le mong oa CPU (ho hlokomeloa hore nakong ea ts'ebetso V e ka sebelisa C, ebe lebelo le theohela ho mela e likete tse 100 motsotsoana). Ho ipokella ha motho ea bokellang, e ngotsoeng hape ka puo ea V (ho boetse ho na le mofuta oa litšupiso ho Go), ho nka metsotsoana e ka bang 0.4. Qetellong ea selemo, ho lebeletsoe hore mosebetsi oa ho ntlafatsa ka ho eketsehileng o phethoe, o tla fokotsa nako ea ho haha ​​​​mohahi ho fihlela metsotsoana e 0.15. Ho latela liteko tse entsoeng ke mohlahlami, ho ipokella ha Go ho hloka 512 MB ea sebaka sa disk mme e matha ka motsotso o le mong le halofo, Rust e hloka 30 GB le metsotso e 45, GCC - 8 GB le metsotso e 50, Clang - 90 GB le Metsotso e 25,
    Swift - 70 GB le metsotso e 90;

  • Mananeo a bokelloa hore e be lifaele tse phethiloeng ntle le ho itšetleha ka kantle. Boholo ba faele bo sebetsang ba seva se bonolo sa http ka mor'a kopano ke 65 KB feela;
  • Ts'ebetso ea likopo tse hlophisitsoeng e maemong a likopano tsa mananeo a C;
  • Bokhoni ba ho sebelisana hantle le khoutu ea C, ntle le ho feta. Mesebetsi ka puo ea C e ka bitsoa ho tloha khoutu ka puo ea V, 'me ka tsela e fapaneng, khoutu ka puo ea V e ka bitsoa ka puo leha e le efe e lumellanang le C;
  • Tšehetso ea ho fetolela merero ea C/C++ hore e be moemeli oa puo ea V. Ho sebelisoa mohlahlobi oa Clang bakeng sa phetolelo. Ha se likarolo tsohle tsa C standard tse tšehetsoeng hajoale, empa bokhoni ba hona joale ba mofetoleli bo se bo lekane phetolelo ka puo ea papali ea V DOOM. Mofetoleli oa C ++ o ntse a le boemong ba pele ba tsoelo-pele;
  • Ts'ehetso ea serialization e hahiloeng, ntle le ho tlamelloa ho nako ea ho sebetsa;
  • Ho fokotsa ts'ebetso ea kabo ea memori;
  • Ho netefatsa polokeho: ha ho NULL, mefuta e fapaneng ea lefats'e, boleng bo sa hlalosoang le tlhaloso e fapaneng e fapaneng. E hahelletsoeng ka hare ho buffer ho feta tlhahlobo. Tšehetso bakeng sa mesebetsi e akaretsang (Kakaretso). Lintho le meaho e ke keng ea fetoloa ka ho sa feleng;
  • Monyetla oa ho kenya khoutu e "chesang" hape (ho bonts'a liphetoho tsa khoutu ka fofa ntle le ho bokelloa hape);
  • Lisebelisoa tsa ho netefatsa hore multithreading. Joalo ka puo ea Go, moaho o kang "run foo()" o sebelisoa ho qala khoele e ncha ea ts'ebetso (e ts'oanang le "go foo()"). Nakong e tlang, ho reriloe tšehetso bakeng sa li-goroutines le mohlophisi oa likhoele;
  • Ts'ehetso bakeng sa Windows, macOS, Linux, * BSD sistimi e sebetsang. Ho reriloe ho eketsa tšehetso bakeng sa Android le iOS mafelong a selemo;
  • Tlhokomelo ea memori ka nako ea ho bokella (joalo ka Rust), ntle le ho sebelisa pokello ea lithōle;
  • Ho fumaneha ha lisebelisoa tsa lisebelisoa tse ngata bakeng sa tlhahiso ea litšoantšo, ho sebelisoa GDI+/Cocoa le OpenGL bakeng sa ho fana (ho reriloe tšehetso bakeng sa DirectX, Vulkan le Metal APIs). Ho na le lisebelisoa tsa ho sebetsa ka lintho tsa 3D, animation ea marapo le taolo ea khamera;
  • Ho fumaneha ha laeborari bakeng sa ho hlahisa li-interface tsa graphical tse nang le likarolo tsa moralo tse tsoang ho OS ka 'ngoe. Windows e sebelisa WinAPI/GDI+, macOS e sebelisa Cocoa, 'me Linux e sebelisa li-widget tsa eona. Laebrari e se e sebelisoa ntlafatsong Volt - moreki oa Slack, Skype, Gmail, Twitter le Facebook;

    Morero ke ho theha sesebelisoa sa sebopeho sa sebopeho sa sebopeho sa Delphi, ho fana ka API e phatlalatsang e ts'oanang le SwiftUI le React Native, le ho fana ka ts'ehetso bakeng sa ho theha lisebelisoa tsa mohala tsa iOS le Android;

    V puo ea lenaneo mohloli o bulehileng

  • Ho fumaneha ha moralo oa marang-rang o hahelletsoeng, o sebelisetsoang ho theha sebaka sa marang-rang, foramo le blog bakeng sa baetsi ba morero. Ho hlophisoa esale pele litempele tsa HTML hoa tšehetsoa, ​​ntle le ho li sebetsana ka kopo e 'ngoe le e' ngoe;
  • Tšehetso ea ho bokella sefapano. Ho aha faele e sebetsang bakeng sa Windows, matha feela "v -os windows", 'me bakeng sa Linux - "v -os linux" (ts'ehetso ea li-cross-compilation bakeng sa macOS e lebelletsoe hamorao). Cross-compilation e boetse e sebetsa bakeng sa ts'ebeliso ea litšoantšo;
  • Motsamaisi oa ts'epo ea hahelletsoeng, mookameli oa sephutheloana le lisebelisoa tsa ho aha. Ho aha lenaneo, matha feela "v.", ntle le ho sebelisa make kapa lisebelisoa tsa kantle. Ho kenya lilaebrari tse eketsehileng, matha feela, mohlala, "v get sqlite";
  • Ho fumaneha ha li-plugins bakeng sa nts'etsopele ea puo ea V ho bahlophisi Code VS и ke ile ka.

Ntlafatso lemohile sechaba le pelaelo, kaha khoutu e hatisitsoeng e bontšitse hore ha se matla ohle a phatlalalitsoeng a e-s'o sebelisoe 'me ho hlokahala mosebetsi o moholo haholo ho phethahatsa merero eohle.
Ho feta moo, qalong polokelo e ne e na le behiloe khoutu e robehileng e nang le mathata a kopano le ho phethahatsa. Ho nahanwa hore mongodi ha a eso fihle boemong boo ba qalang ho bo lemoha Molao oa Pareto, ho latela hore na 20% ea boiteko bo hlahisa 80% ea sephetho, 'me karolo e setseng ea 80% ea boiteko e hlahisa 20% feela ea sephetho.

Ho sa le joalo, Project V's bug tracker e se e tlositsoe likheo tse ka bang 10 pontsho khoutu ea boleng bo tlase, mohlala, e bonts'a ts'ebeliso ea li-C-inserts le ts'ebeliso ea laebrari ea mesebetsi bakeng sa ho hlakola bukana ea taelo ea rm ka mohala os.system("rm -rf $path"). Mongoli oa morero e phatlalalitsoehore o hlakotse melaetsa feela, phatlalalitsoe troll (ka liphetoho tse tiisang bonnete ba ho nyatsuoa, lula в fetola nalane).

Source: opennet.ru

Eketsa ka tlhaloso