В је нови, статички куцани програмски језик отвореног кода који је креирао Александар Медведников. В обећава да ће бити једноставан, брз и безбедан за прављење софтвера за одржавање. Неколико језика је утицало на В-ов дизајн, укључујући Оберон, Свифт, Котлин и Питхон.

Сазнајте више о В, његовим карактеристикама и упоређивању са другим језицима.

Ствари које можете учинити са В

В има велику снагу и можете га користити у скоро свакој индустрији, укључујући системско програмирање, развој веба и развој игара. Језик је једноставан, брз и безбедан.

В нуди широк спектар моћних графичких библиотека за развој игара. Они се надограђују на ГДИ+/Цоцоа Дравинг и ОпенГЛ за софистицираније 2Д/3Д апликације.

В има УИ модул који користи изворне ГУИ алате за мобилне апликације, ВинАПИ/ГДИ+ за Виндовс, Цоцоа за мацОС и прилагођено цртање за Линук.

Разлози за покушај В

Иако је В нови језик, ове предности га чине легитимном опцијом.

Једноставност

Да бисте направили свој пројекат, само треба да покренете:

в.

Не морате да подешавате окружење за прављење, креирате макефиле, увозите заглавља или подешавате виртуелно окружење. Ако желите да инсталирате нове библиотеке преко

впм (В пакет менаџер), само покрените

в инсталирати <Назив пакета>

Сигурност

Подразумевано, В има:

  • непроменљиве променљиве
  • непроменљиве структуре
  • опција/резултат и обавезне провере грешака
  • врсте збира
  • генерички
  • непроменљива функција аргс

и без:

  • нула
  • променљиво сенчење
  • недефинисано понашање
  • глобалне променљиве (могу се омогућити за апликације ниског нивоа као што су кернели, преко заставице)

Брзина компилације

Неки програмски језици су бржи од других, у смислу извршења или компилације. В је ефикасан као Ц. Може да се похвали временом компилације од око 110к лоц/с са позадином Ц и приближно 1 милион лоц/с са изворним и тцц позадинским делом. В такође избегава непотребне алокације како би обезбедио приступ кодирању без апстракције.

Управљање меморијом

В не користи сакупљач смећа, што га чини другачијим од језика као што су Го и Јава. Уместо тога, В управља меморијом у време компајлирања, али ради само у основним ситуацијама. Морате ручно управљати њиме за сложеније случајеве.

Форматирање за доследност стила кода

Можете користити вфмт форматер за форматирање вашег В кода и побољшање његове читљивости покретањем:

в фмт -в <иоур_филенаме>

Пријатељске поруке о грешкама

В-ове поруке о грешци су детаљне, информативне и корисне. Погледајте овај пример:

усер.в:8:14: грешка: `упдате_усер` параметар `корисник` је променљив, морате да обезбедите `мут`: `упдате_усер (мут усер)`
7 | мут усер := Корисник{}
8 | упдате_усер (корисник)
| ~~~~
9 | }

Уз помоћ поруке о грешци, можете поправити овај код:

мут усер := Корисник{}
упдате_усер (мут усер)

Ц++ вс. Го вс. В: Поређење три језика

У овим примерима можете видети како се код Ц++, Го и В разликује у специфичним случајевима програмирања.

Здраво Свете

У Ц++:

#инцлуде <иостреам>

интглавни(){
стд:: цоут <<"Здраво Свете!"<< стд:: ендл;
}

У Го:

пакет главни
увоз "фмт"

фунц главни(){
фмт. Принтлн("Здраво Свете!")
}

У В:

принтлн('Здраво Свете!')

У овом веома основном програму -штампање текста "Хелло Ворлд!"— можете видети да је В много једноставнији од Ц++ или Го. Не морате да увезете или укључите библиотеке за тако једноставан програм.

Иницијализација вектора

У Ц++:

стд:: вектор<инт> бројеви = {1, 2, 3, 4};

У Го:

бројеви := []инт{1, 2, 3, 4}

У В:

бројеви := [1, 2, 3, 4]

У овом случају употребе, можете видети да В и даље производи чистији код од друга два. За разлику од Го и Ц++ вектори, В не захтева да његови вектори држе вредности фиксног типа.

Штампање вектора

У Ц++:

стд::цопи (нумберс.бегин(), бројевима.крај(),
стд:: остреам_итератор<инт>(стд:: цоут, ""));

стд:: цоут << стд:: ендл;

У Го:

фмт.Принтлн(бројевима)

У В:

принтлн (бројеви)

В-ова функција принтлн може изворно да штампа векторску променљиву, баш као што може и Го, иако ова друга користи фмт пакет. Ц++ иостреам датотеке заглавља пружају сличну функционалност. Ипак, и даље ћете морати сами да се побринете за штампање појединачних елемената вектора.

Читање датотеке

У Ц++:

#укључити
#укључити

интглавни(){
стд::низ пут = "/етц/хостс";
стд::ифстреам ф(пут);
стд::низ текст;
тект.ассигн(стд::истреамбуф_итератор<цхар>(ф), {});

ако (!ф)
стд::церр << "грешка читања из датотеке" << стд::ендл;
}

У Го:

пакет главни

увоз (
"ио/иоутил"
"Пријава"
)

фунц главни(){
пут := "/etc/hosts"
б, ерр := иоутил. РеадФиле (путања)

ако грешка != нил {
Пријава.Принтлн(ерр)
повратак
}

текст := стринг (б)
}

У В:

увоз ос

пут := "/etc/hosts"
тект := ос.реад_филе (путања) или {
епринтлн (ерр)
повратак
}

За читање датотека, В користи ос модул да обезбеди заједничке функције независне од ОС/платформе. Они се баве задацима као што су приступ аргументима командне линије, читање датотека и руковање процесима. У овом случају желимо да прочитамо датотеку пут и вратите садржај, тако да ћете користити реад_филе (путања) функција. реад_филе враћа грешку ако нема постојећег садржаја у датом пут. Ако желите да сазнате више о остали модули В, можда бисте желели да погледате њихову документацију.

Спремни да испробате В?

В је нови програмски језик који је још увек у раној фази развоја. Упркос томе, има велику снагу и брз је, сигуран, лак и одржаван.

В има чистији код од Ц++ и Го. Ово сугерише да В може помоћи програмерима да се придржавају једног од основних принципа програмирања. Дакле, да ли сте спремни да испробате В?