Visual Basic neobičan je čovjek u novom .NET-u

U nizu postova na blogu prošlog tjedna, Microsoft je detaljno predstavio temeljne promjene u načinu na koji razvija svoje .NET jezike. Bila je to dobra vijest za programere C # i F #, no dok je Microsoft pozitivno zaokružio značenje promjena za Visual Basic, čini se da je dugoročna budućnost časnog jezika manje sigurna.

Microsoftov Visual Basic odavno je jedan od svjetskih, ako ne i omiljeni, ali zasigurno jedan od najčešće korištenih jezika, i doista je stavio Microsoft u središte poslovne faze. Od prvih šest iteracija kao jezika za razvoj aplikacija klijent-poslužitelj do njegovog ponovnog rođenja kao dijela .NET platforme, Visual Basic bio je alat za brzi razvoj poslovnih aplikacija. To je dijelom i zbog velike biblioteke komponenata korisničkog sučelja, zajedno s priključcima na uobičajene baze podataka i modelom komponenata koji je omogućio trećim stranama da grade tvrtke na pružanju dodatne funkcionalnosti.

Prelazak na .NET kao temelj za Microsoftovu razvojnu strategiju imao je smisla za nove jezike poput C #, ali to je značilo promjene u Visual Basicu u kojem kôd nije mogao lako migrirati sa starog Visual Basica na novi VB.NET.

Bio je to izazovan prijelaz za programere, a Visual Basic počeo je gubiti pamet u razvoju poduzeća - i unutar Microsofta. Unatoč tome, Microsoft je obećao da će sinhronizirati C # i VB.NET. Značajke stvorene za C # postat će dio Visual Basica, dva jezika koji se razvijaju zajedno. Razlog je bio taj što su se često koristili za isti zadatak i imali su istu temeljnu prirodu: oba snažno otkucana objektno orijentirana jezika koja rade s istim alatima.

Visual Basic i C #: Dolazi nova divergencija

Prošlotjednom najavom ta koevolucija je nestala. Microsoft će pustiti dva jezika na različite načine, počevši od uskoro objavljenog Visual Basic 15-a.

Nije iznenađujuće razvod. Popularnost C #-a porasla je velikom brzinom, dok je Visual Basic polako kliznuo niz ljestvice, gotovo nestajući s radara popularnih web mjesta za programiranje poput Stack Overflowa. Mijenjaju se i slučajevi upotrebe: Visual Basic i dalje je usredotočen na svoju izvornu paradigmu klijent-poslužitelj, dok je C # postao alat za n- tier web-bazirane programe, koji rade u oblaku i u prostorijama. Sa sve više i više aplikacija izgrađenih za rad s webom i oblakom, ne čudi da C # postaje prvi izbor za mnoge projekte.

Postoje promjene i u razvoju jezika. C # se prebacio na otvoreni model dizajna, što znači da su njegovi korisnici na mjestu vozača zbog davanja prednosti novim značajkama, zahvaljujući aktivnom popisu za slanje pošte i javnom GitHub spremištu. Microsoft je već preuzeo nove značajke izvan tvrtke - velika promjena u odnosu na tradicionalne jezične inženjerske procese koji su se fokusirali na njegove istraživačke skupine i interne timove za upravljanje proizvodima.

Visual Basic također ima otvoreni model dizajna, ali ima drugačije prioritete od C #. Već podržava podskup značajki C # u svojim trenutnim verzijama kao dio kandidata za izdanje Visual Studija 2017.

Kako se C # i dalje razlikuje od Visual Basica, vidjet ćemo kako se dva jezika razvijaju odvojeno, iako bi trebali moći raditi zajedno. Obje bi se i dalje trebale obraćati istim .NET API-ima, a obje će i dalje biti dio alata Visual Studio.

Što ove promjene znače za programere poduzeća

Trenutno poduzeća mogu učiniti vrlo malo u vezi s ovom nadolazećom divergencijom.

Ali u budućnosti zasigurno postoji prostor za rad na više platformi u Visual Basicu, jer se on kreće u pružanje podrške .NET Standardnom skupu knjižnica osnovne klase uz poznati .NET Framework. Iako će neki kôd biti prenosiv, neće sav Visual Basic kôd preskočiti s jednog skupa knjižnica na drugi manji skup. Vjerojatno će postojeći kôd ostati čisto na sustavu Windows i samo u lokalnim aplikacijama.

Kao programer morat ćete birati između dovođenja Visual Basic koda na novije platforme putem .NET Standard ili prelaska na jezike poput C # koji nude širi raspon ciljnih okvira i uređaja.

Budući da je .NET Standard namijenjen svim .NET platformama, važan je ekvilajzer. Međutim, to nije potrebno za sve .NET jezike. Iako će ga Visual Basic trebati na sustavima koji nemaju puni .NET Framework, C # će se moći izravno obraćati platformama poput .NET Core, pristupajući svojim API-ima. To također olakšava izvedenicama C #, poput Unity, da podržavaju vlastite specijalizirane API-je.

C # s podrškom za .NET Framework na sustavu Windows i open source .NET Core (pokrenut na Nano poslužitelju i u spremnicima) postat će prvi izbor za oblak i za mobilne aplikacije, dok će model funkcionalnog programiranja F # biti idealan za financijske usluge i aplikacije koje se oslanjaju na strojno učenje.

Jedan od jasnih pokretača ovih promjena je Microsoftovo stjecanje Xamarina. Microsoftu je potreban višestruki set alata za podršku širem rasponu mobilnih uređaja, a Windows Mobile nije uspio postići udio na tržištu kao što se nadalo. Čak i u Windowsovim geografskim područjima poput Ujedinjenog Kraljevstva, iOS i Android zajedno imaju više od 80 posto tržišta. Microsoftovi programeri koji žele izraditi mobilne uređaje za svoje aplikacije morat će koristiti alate poput Xamarina za ciljanje dominantnih mobilnih platformi.

Budući da se Xamarin usredotočio na C #, Microsoft mora jasno staviti do znanja da je C # prvorazredni .NET jezik koji ide prema naprijed. Iako to nije izričito u Microsoftovim nedavnim najavama na jeziku, to se snažno podrazumijeva.

Kako biste trebali upravljati jezičnom strategijom poduzeća

Ovo nije oproštaj od Visual Basica, ali vrijeme je da napravite inventuru gdje ste i gdje želite biti. Postojeće aplikacije Visual Basic mogu se i dalje razvijati, ali kako se temeljna .NET platforma razvija, trebali biste očekivati ​​da će samo podskup .NET API-ja biti dostupan vašim programerima Visual Basic-a. Iako to vjerojatno neće biti problem u kratkom roku, trebali biste se pripremiti za dugoročnu migraciju na C # ili F #, pogotovo ako za svoje aplikacije planirate mobilno ili višeplatformsko korisničko iskustvo.

Čini se jasnim da je najbolja opcija za izbjegavanje prekomjernog tehničkog duga postaviti C # kao svoj prioritet za novi razvoj. C # ima prvoklasnu podršku i korisnički dizajnirani model dizajna. To je također srce Microsoftovog razvoja više platformi i njegove univerzalne platforme Windows. To znači da možete jednom napisati poslovnu logiku, a zatim pružiti prilagođena korisnička iskustva za web, Windows 10, iOS, Android i MacOS. Dovoljno je i zajedničkog jezika da bi programeri mogli relativno lako izvršiti prijelaze, uzimajući nove značajke nakon početnog treninga.