Luuqadda barnaamijka V il furan

La turjumay galay qaybta isu-ururinta u furan luqadda V. V waa luqad mashiin lagu soo ururiyay oo diirada saaraysa samaynta horumarka si sahlan loo joogteeyo oo si degdeg ah loo ururiyo. Koodhka ururinta, maktabadaha iyo qalabka la xidhiidha furid hoos shatiga MIT.

V's syntax aad ayuu ula mid yahay Go, oo ka soo amaahday qaar ka mid ah dhismooyinka Oberon, Rust, iyo Swift. Luqadda waa la fududeeyay sida ugu badan ee suurtogalka ah, sida uu qabo horumariyaha, 30 daqiiqo oo daraasad ah ayaa ku filan in la barto aasaaska dukumentiyo. Isla mar ahaantaana, luqaddu aad bay u xoog badan tahay waxaana loo isticmaali karaa in lagu qabto hawlo la mid ah marka la isticmaalayo luqadaha barnaamijyada kale (tusaale ahaan, maktabadaha ayaa diyaar u ah sawirada 2D/3D, abuurista GUIs iyo codsiyada shabakada).

Abuuritaanka luqad cusub waxa keenay rabitaanka ah in la gaadho isku-darka fududaynta luqadda Go ee isku-dhafka, xawaaraha isku-darka, fududaynta is-barbar-dhigga hawlaha, qaadista iyo ilaalinta koodhka oo leh waxqabadka C/C++, amniga miridhku iyo abuurista koodhka mashiinka ee heerka isku-darka Zig. Waxa kale oo aan rabay in aan helo qalab isku dhafan oo degdeg ah oo shaqayn kara iyada oo aan ku tiirsanayn dibadeed, ka takhalusaan baaxadda caalamiga ah (doorsoomayaasha caalamiga ah) oo bixiya awoodda "kulul" dib u soo celinta koodhka.

Marka la barbardhigo C++, luqadda cusubi aad bay uga fudud tahay, waxay bixisaa xawaare isku-dubbarid oo degdeg ah (ilaa 400 jeer), waxay ku dhaqmaan farsamooyin barnaamijyo ammaan ah, way ka madax bannaan yihiin dhibaatooyinka hab-dhaqanka aan la qeexin, waxayna siisaa qalab ku dhisan isbarbar-dhigga hawlgallada. Marka la barbardhigo Python, V waa ka dhakhso badan yahay, ka fudud yahay, ka badbaado badan yahay, oo la ilaalin karo. Marka la barbar dhigo Go, V ma laha doorsoomayaal caalami ah, ma jiro wax aan waxba ka jirin, dhammaan qiyamka doorsoomayaasha waa in had iyo jeer la qeexaa, dhammaan walxaha waa kuwo aan isbeddelayn, kaliya hal nooc oo shaqo ah ayaa la taageerayaa ("a: = 0"), oo ah mid aad u badan oo is haysta Runtime iyo cabbirka faylalka la fulin karo ee ka dhalanaya, joogitaanka qaadista tooska ah ee C, maqnaanshaha qashin ururiyaha, taxaneynta degdega ah, awoodda isku xidhka xargaha ("println('$ foo: $bar.baz')").

fn main() {
meelaha: = ['ciyaarta', 'web', 'qalabka', 'sayniska', 'nidaamyada', 'GUI', 'mobile'] a:= 10
hadday run tahay {
ku:= 20
}
aagga aagagga {
println ('Hello, horumariyeyaasha $ area!')
}
}

Tilmaamaha Mashruuca:

  • Isku-dubarid kooban oo degdeg ah, oo ay weheliso maktabadda caadiga ah waxay qaadataa ilaa 400 KB. Xawaaraha sare ee isku-dubbaridka waxaa lagu gaaraa iyada oo si toos ah loo soo saari karo koodhka mashiinka iyo qaab-dhismeedka. Xawaaraha isku-dubbaridku waa qiyaastii 1.2 milyan oo xariiq oo kood ah ilbiriqsigiiba hal CPU (waxaa la xusay in inta lagu jiro hawlgalka V uu isticmaali karo C, ka dibna xawaaruhu wuxuu hoos ugu dhacayaa 100 kun oo xariiq ilbiriqsikii). Isku-dubbarididda isku-dubaridiyaha, oo sidoo kale ku qoran luqadda V (waxaa sidoo kale jira nuqul tixraac ah oo ku yaal Go), waxay qaadataa qiyaastii 0.4 ilbiriqsi. Dhammaadka sanadka, shaqada hagaajinta dheeraadka ah ayaa la filayaa in la dhammeeyo, taas oo yareyn doonta wakhtiga isku-darka dhismaha ilaa 0.15 ilbiriqsi. Marka la eego imtixaanada uu sameeyay horumariyaha, is-ururinta Go waxay u baahan tahay 512 MB oo disk ah waxayna socotaa hal daqiiqo iyo badh, miridhku wuxuu u baahan yahay 30 GB iyo 45 daqiiqo, GCC - 8 GB iyo 50 daqiiqo, Clang - 90 GB iyo 25 daqiiqo,
    Swift - 70 GB iyo 90 daqiiqo;

  • Barnaamijyada waxaa lagu soo ururiyey faylal la fulin karo oo aan ku tiirsanayn dibadeed. Cabbirka faylka la fulin karo ee server-ka fudud ee http ka dib shirku waa 65 KB;
  • Waxqabadka codsiyada la soo ururiyey waa heerka shirarka ee barnaamijyada C;
  • Awoodda in si aan kala go 'lahayn ula falgalaan koodhka C, iyada oo aan lahayn wax dheeraad ah. Hawlaha luqadda C waxa loogu yeeri karaa koodka luqadda V, beddelkeedana, koodka luqadda V waxaa loogu yeeri karaa luqad kasta oo ku habboon C;
  • Taageerada tarjumaada mashaariicda C/C++ ee matalaad luuqada V ah Dhammaan sifooyinka heerka C weli lama taageero, laakiin awoodaha tarjumaha ee hadda waa ku filan yihiin turjumaad luqadda ciyaarta V ciyaarta DOOM. Turjubaanka C++ wuxuu weli ku jiraa heerkii hore ee horumarka;
  • Taageerada isku xidhka ah ee ku dhex dhisan, iyada oo aan lagu xidhin wakhtiga runtu socoto;
  • Yaraynta hawlaha qoondaynta xusuusta;
  • Xaqiijinta badbaadada: ma jiro NULL, doorsoomayaal caalami ah, qiimayaal aan la qeexin iyo dib u qeexid doorsooma. Ku dhex-dhismay hubinta xad dhaafka ah. Taageerada hawlaha guud (Generic). Shayooyin iyo qaab-dhismeedyo aan la beddeli karin sida caadiga ah;
  • Suurtagalnimada dib u dejinta koodka "kulul" (oo ka tarjumaysa isbeddelada koodhka duulista iyada oo aan dib loo soo uruurin);
  • Aaladaha lagu hubinayo akhrinta badan. Sida luqadda Go, dhisme sida "run foo()" ayaa loo isticmaalaa si loo bilaabo dunta cusub ee fulinta (oo la mid ah "go foo()"). Mustaqbalka, taageerada gorutines iyo jadwalka dunta ayaa la qorsheeyay;
  • Taageerada Windows, macOS, Linux, * nidaamyada hawlgalka BSD. Waxaa la qorsheeyay in lagu daro taageerada Android iyo iOS dhamaadka sanadka;
  • Maareynta xusuusta wakhtiga la ururinayo (sida ku jirta Rust), iyada oo aan la isticmaalin ururiyaha qashinka;
  • Helitaanka qalab badan oo madal ah oo loogu talagalay soo saarista garaafyada, iyadoo la isticmaalayo GDI+/Kookaha iyo OpenGL si loo bixiyo (taageerada DirectX, Vulkan iyo Biraha APIs waa la qorsheeyay). Waxaa jira qalab lagu shaqeeyo walxaha 3D, animation qalfoofka iyo xakamaynta kamarada;
  • Helitaanka maktabad loogu talagalay soo saarista is dhexgal garaafyada leh walxaha naqshadaynta ee OS kasta. Windows waxa ay isticmaashaa WinAPI/GDI+, macOS waxa ay isticmaashaa Cocoa, Linux-na waxa ay isticmaashaa qalab u gaar ah. Maktabadu waxa horeba loogu isticmaalay horumarinta Waat - macmiilka Slack, Skype, Gmail, Twitter iyo Facebook;

    Qorshuhu waa in la abuuro codsi naqshadayn interface ah oo Delphi ah, oo la bixiyo API caddayn ah oo la mid ah SwiftUI iyo React Native, iyo in la bixiyo taageero abuurista codsiyada mobaylada ee iOS iyo Android;

    Luuqadda barnaamijka V il furan

  • Helitaanka qaab dhismeed shabakadeed, kaas oo loo isticmaalo in lagu abuuro degel, gole iyo baloog loogu talagalay horumarinta mashruuca. Diyaarinta qaab-dhismeedka HTML waa la taageerayaa, iyada oo aan la socodsiin codsi kasta;
  • Taageerada isu-ururinta Si aad u dhisto faylka la fulin karo ee Windows, kaliya ku orod "v -os windows", iyo Linux - "v-os linux" (taageerada iskutallaabta ee macOS ayaa la filayaa mar dambe). Iskudubbaridu waxay sidoo kale u shaqeysaa codsiyada garaafyada;
  • Maamulaha ku-tiirsanaanta, maareeyaha xirmada, iyo qalab dhis. Si aad u dhisto barnaamijka, kaliya orod β€œv”, adiga oo aan isticmaalin wax-samaynta ama adeegyada dibadda. Si aad u rakibto maktabado dheeri ah, kaliya orod, tusaale ahaan, β€œv get sqlite”;
  • Helitaanka plugins ee horumarinta luqadda V ee tifaftirayaasha VS Code ΠΈ Vim.

Horumarinta gartay bulshada leh shakiga, maadaama koodka la daabacay uu muujiyay in dhammaan awoodaha la sheegay aan weli la hirgelin oo loo baahan yahay shaqo aad u badan si loo fuliyo dhammaan qorshayaasha.
Intaa waxaa dheer, markii hore bakhaarku lahaa dhajiyay code jabay oo dhibaato ka haysta isu imaatinka iyo fulinta. Waxa loo malaynayaa in qoraagu aanu weli gaadhin heerkii ay ku ogaan lahaayeen Sharciga Pareto, sida laga soo xigtay 20% dadaalku wuxuu soo saaraa 80% natiijada, 80% ee soo hadhayna wuxuu soo saaraa 20% kaliya natiijada.

Dhanka kale, Mashruuca V's bug tracker ayaa laga saaray ilaa 10 qoraal bannaanbax kood tayada hooseeya, tusaale ahaan, wuxuu muujinayaa isticmaalka C-inserts iyo isticmaalka maktabadda hawlaha si loogu tirtiro tusaha amarka rm iyada oo loo marayo call os.system ("rm -rf $path"). Qoraaga mashruuca dhawaaqayin uu kaliya tirtiray fariimaha, la daabacay rogrogid (oo leh isbedello xaqiijinaya ansaxnimada dhaleeceynta, joogtay Π² taariikhda wax ka beddel).

Source: opennet.ru

Add a comment