V harshen shirye-shirye bude tushen

Fassara cikin rukunin buɗaɗɗen tarawa don harshe V. V harshe ne da aka haɗa na'ura mai ƙima wanda ke mai da hankali kan sauƙaƙe haɓakawa don kiyayewa da sauri sosai. Lambar tarawa, dakunan karatu da kayan aikin da ke da alaƙa a bude karkashin lasisin MIT.

Rubutun V yana kama da Go, yana aro wasu gine-gine daga Oberon, Rust, da Swift. Harshen yana da sauƙi kamar yadda zai yiwu kuma, bisa ga mai haɓakawa, minti 30 na nazari ya isa ya koyi kayan yau da kullum. takardun. A lokaci guda, harshen ya kasance mai ƙarfi sosai kuma ana iya amfani dashi don yin ayyuka iri ɗaya kamar lokacin amfani da wasu yarukan shirye-shirye (misali, ana samun ɗakunan karatu don zane na 2D/3D, ƙirƙirar GUIs da aikace-aikacen yanar gizo).

Ƙirƙirar sabon harshe ya samo asali ne ta hanyar sha'awar cimma haɗuwa da sauƙi na harshen Go na syntax, saurin tattarawa, sauƙi na daidaitawa na ayyuka, ɗauka da kuma kiyaye lambar tare da aikin C / C ++, tsaro na Tsatsa da kuma Ƙirƙirar lambar na'ura a matakin haɗin Zig. Har ila yau, ina so in sami m da sauri mai tarawa wanda zai iya aiki ba tare da dogara na waje ba, kawar da iyakokin duniya (masu canjin duniya) da kuma samar da damar "zafi" sake shigar da lambar.

Idan aka kwatanta da C++, sabon harshe ya fi sauƙi, yana ba da saurin tattarawa da sauri (har sau 400), yana aiwatar da dabarun tsara shirye-shirye, ba shi da matsala tare da halayen da ba a bayyana ba, kuma yana ba da kayan aikin da aka gina don daidaita ayyukan. Idan aka kwatanta da Python, V ya fi sauri, mafi sauƙi, mafi aminci, kuma mafi aminci. Idan aka kwatanta da Go, V ba shi da sauye-sauye na duniya, babu ɓarna, duk ma'auni masu canzawa dole ne a bayyana su koyaushe, duk abubuwa ba su canzawa ta tsohuwa, nau'in aiki ɗaya kawai ake goyan bayan ("a: = 0"), ƙarami mai mahimmanci. lokacin gudu da girman fayilolin aiwatarwa da aka samu, kasancewar iyawar kai tsaye daga C, rashin mai tara shara, saurin serialization, ikon shiga tsakani kirtani (“println('$ foo: $bar.baz')”).

fn main() {
yankunan: = ['wasan', 'web', 'kayan aiki', 'kimiyya', 'tsari', 'GUI', 'wayar hannu'] a:= 10
idan gaskiya {
ku: = 20
}
don yanki a yankuna {
println('Sannu, masu haɓaka yanki $!')
}
}

Siffofin aikin:

  • Karamin mai tarawa da sauri, wanda tare da daidaitaccen ɗakin karatu yana ɗaukar kusan 400 KB. Ana samun babban saurin tattarawa ta hanyar samar da lambar injin kai tsaye da daidaitawa. Matsakaicin saurin tattarawa shine kusan layin code miliyan 1.2 a sakan daya akan CPU core (an lura cewa yayin aiki V na iya amfani da C, sannan saurin ya ragu zuwa layin dubu 100 a sakan daya). Haɗin kai na mai tarawa, wanda kuma aka rubuta a cikin yaren V (akwai juzu'in nuni a cikin Go), yana ɗaukar kusan daƙiƙa 0.4. A ƙarshen shekara, ana sa ran za a kammala aiki akan ƙarin haɓakawa, wanda zai rage lokacin gina mai tarawa zuwa daƙiƙa 0.15. Yin la'akari da gwaje-gwajen da mai haɓaka ya yi, haɗin kai na Go yana buƙatar 512 MB na sararin diski kuma yana aiki a cikin minti daya da rabi, Tsatsa yana buƙatar 30 GB da minti 45, GCC - 8 GB da minti 50, Clang - 90 GB kuma Minti 25,
    Swift - 70 GB da minti 90;

  • Ana tattara shirye-shirye cikin fayiloli masu aiwatarwa ba tare da dogaro na waje ba. Girman fayil ɗin da za a iya aiwatarwa na uwar garken http mai sauƙi bayan taro shine kawai 65 KB;
  • Ayyukan da aka haɗa aikace-aikacen yana a matakin taro na shirye-shiryen C;
  • Ikon yin hulɗa tare da lambar C, ba tare da ƙarin abin hawa ba. Ana iya kiran ayyuka a cikin harshen C daga lamba a cikin harshen V, kuma akasin haka, lambar a cikin harshen V za a iya kiranta a kowane harshe da ya dace da C;
  • Taimakawa don fassara ayyukan C/C++ zuwa wakilci a cikin yaren V. Ana amfani da parser daga Clang don fassarawa. Ba duk fasalulluka na ma'aunin C ne ake goyan bayansu ba tukuna, amma iyawar mai fassara sun riga sun ishe su fassarar a cikin harshen wasan V game DOOM. Mai fassarar C ++ har yanzu yana kan matakin farko na ci gaba;
  • Tallafin serialization na ginannen, ba tare da an ɗaure shi zuwa lokacin aiki ba;
  • Rage ayyukan rarraba ƙwaƙwalwar ajiya;
  • Tabbatar da aminci: babu NULL, masu canji na duniya, ƙimar da ba a bayyana ba da sake fasalin mabambanta. Ginin buffer mai wuce gona da iri. Taimako don ayyuka na gabaɗaya (Generic). Abubuwa da tsarin da ba za a iya canzawa ta tsohuwa ba;
  • Yiwuwar sake shigar da lambar "zafi" (yana nuna canje-canje a cikin lamba akan tashi ba tare da sakewa ba);
  • Kayan aiki don tabbatar da multithreading. Kamar dai a cikin yaren Go, ana amfani da ginin kamar "run foo()" don fara sabon zaren kisa (mai kama da "go foo()"). A nan gaba, an shirya tallafi ga gooutines da mai tsara zaren;
  • Taimako don Windows, macOS, Linux, * BSD Tsarukan aiki. Ana shirin ƙara tallafi don Android da iOS a ƙarshen shekara;
  • Gudanar da ƙwaƙwalwar ajiya a lokacin tattarawa (kamar yadda yake a cikin Rust), ba tare da amfani da mai tara shara ba;
  • Samar da kayan aikin kayan aiki da yawa don fitar da hoto, ta amfani da GDI +/Cocoa da OpenGL don nunawa (an shirya tallafin DirectX, Vulkan da Metal APIs). Akwai kayan aiki don aiki tare da abubuwan 3D, raye-rayen kwarangwal da sarrafa kyamara;
  • Samuwar ɗakin karatu don samar da mu'amala mai hoto tare da abubuwan ƙira na asali ga kowane OS. Windows yana amfani da WinAPI/GDI+, macOS yana amfani da Cocoa, Linux kuma yana amfani da nasa tsarin widgets. An riga an yi amfani da ɗakin karatu don haɓakawa karfin wuta - abokin ciniki don Slack, Skype, Gmail, Twitter da Facebook;

    Shirin shine ƙirƙirar aikace-aikacen ƙirar ƙirar ƙirar Delphi-kamar, samar da API mai bayyanawa mai kama da SwiftUI da React Native, da ba da tallafi don ƙirƙirar aikace-aikacen hannu don iOS da Android;

    V harshen shirye-shirye bude tushen

  • Samar da ginannen tsarin gidan yanar gizo, wanda ake amfani da shi don ƙirƙirar gidan yanar gizo, dandalin tattaunawa da kuma bulogi don masu haɓaka aikin. Ana tallafawa ƙaddamar da samfuran HTML, ba tare da sarrafa su akan kowace buƙata ba;
  • Taimakon haɗar giciye. Don gina fayil ɗin da za a iya aiwatarwa don Windows, kawai gudanar da "v -os windows", kuma don Linux - "v -os linux" (ana sa ran haɗin haɗin giciye don macOS daga baya). Haɗin giciye kuma yana aiki don aikace-aikacen hoto;
  • Gina mai sarrafa abin dogaro, mai sarrafa fakiti da kayan aikin gini. Don gina shirin, kawai gudanar da "v", ba tare da yin amfani da kayan aiki ko na waje ba. Don shigar da ƙarin ɗakunan karatu, kawai gudu, misali, "v get sqlite";
  • Samuwar plugins don haɓakawa a cikin yaren V a cikin masu gyara VS Code и Vim.

Ƙaddamarwa gane al'umma da shakku, Tun da lambar da aka buga ta nuna cewa ba duk damar da aka bayyana ba har yanzu ba a aiwatar da su ba kuma ana buƙatar aiki mai yawa don aiwatar da duk tsare-tsaren.
Bugu da ƙari, da farko ma'ajiyar tana da aka buga karya code wanda ke da matsaloli tare da taro da kisa. Ana tsammanin cewa marubucin bai kai ga matakin da suka fara lura ba Dokar Pareto, bisa ga abin da 20% na ƙoƙari ya samar da kashi 80% na sakamakon, kuma sauran 80% na kokarin yana samar da kashi 20 kawai na sakamakon.

A halin yanzu, Project V's bug tracker an cire kusan posts 10 daga nuni low quality code, misali, yana nuna amfani da C-inserts da kuma amfani a cikin ɗakin karatu na ayyuka don share directory na umurnin rm ta hanyar kira os.system ("rm -rf $ hanya"). Marubucin aikin bayyanacewa kawai ya goge sakonnin, aka buga tattali (tare da canje-canje masu tabbatar da ingancin sukar, zauna в gyara tarihi).

source: budenet.ru

Add a comment