В је нови, статички куцани програмски језик отвореног кода који је креирао Александар Медведников. В обећава да ће бити једноставан, брз и безбедан за прављење софтвера за одржавање. Неколико језика је утицало на В-ов дизајн, укључујући Оберон, Свифт, Котлин и Питхон.
Сазнајте више о В, његовим карактеристикама и упоређивању са другим језицима.
Ствари које можете учинити са В
В има велику снагу и можете га користити у скоро свакој индустрији, укључујући системско програмирање, развој веба и развој игара. Језик је једноставан, брз и безбедан.
В нуди широк спектар моћних графичких библиотека за развој игара. Они се надограђују на ГДИ+/Цоцоа Дравинг и ОпенГЛ за софистицираније 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"
тект := ос.реад_филе (путања) или {
епринтлн (ерр)
повратак
}
За читање датотека, В користи ос модул да обезбеди заједничке функције независне од ОС/платформе. Они се баве задацима као што су приступ аргументима командне линије, читање датотека и руковање процесима. У овом случају желимо да прочитамо датотеку пут и вратите садржај, тако да ћете користити реад_филе (путања) функција. реад_филе враћа грешку ако нема постојећег садржаја у датом пут. Ако желите да сазнате више о остали модули В, можда бисте желели да погледате њихову документацију.
Спремни да испробате В?
В је нови програмски језик који је још увек у раној фази развоја. Упркос томе, има велику снагу и брз је, сигуран, лак и одржаван.
В има чистији код од Ц++ и Го. Ово сугерише да В може помоћи програмерима да се придржавају једног од основних принципа програмирања. Дакле, да ли сте спремни да испробате В?