Prije pet godina (i jedan dan) sam objavio kratki podsjetnik na činjenicu da je Visual C++ navršio 25 godina. Danas, na spomen “Visual C++a” će se i mnogi iskusni developer zapitati “o čemu on to priča”?

A ko da je jučer bilo.
Jesen je 1995. godine, moj prvi PC, 12 Mb RAMa, disk od 1 Gb, Bahamas (ili tako nekako 🤣) Super VGA grafička kartica … i Bulaja mi donosi 4 diska s instalacijom Microsoftovog development suite-a 😮😎. Dva sata kasnije, na svojim Windowsima (mislim da su bili Windows NT 3.51 tada 🙄) imam Visual Basic (hot and coming IDE za “fast development of business applications”) i Visual C++ (i Visual FoxPro, ali njega nikad nisam niti upalio 🤣).
Eeee, i MSDN ❤️. Koji, naravno, u prvom pokušaju nisam niti instalirao (što je mali seljo beljo, student treće godine ETFa tada znao), pa je Bulaja, kad sam klikajući na F1 tražeći Help za neku funkciju u C++u skužio da “soriiiii, ali nisi instalirao dokumentaciju”, morao donositi CD-je ponovo 🤣.
Visual Studio 6.0 je izašao 1998. … and I never looked back ❤️. U njemu sam postao majstor MFC-a i njegovog ClassWizarda, u njemu sam napravio svoj diplomski i EddyOneAnalysis aplikaciju za INETEC, s kojom su se do prije par godina obavljale inspekcije podataka o stanju cijevi parogeneratora u nuklearnim elektranama diljem svijeta i na VS 6.0 gledam s posebnom toplinom oko srca.
Launch .NETa 2001 s posljedične dvije verzije Visual Studia, koje sam tada, zahvaljujući činjenici da je Microsoft to masovno gurao po fakultetima imao za instalirati odmah po launchu (a to se nastavilo i do dana današnjeg), su bile exercises in frustration 🙄, ali je zato Visual Studio 2005 bio ekstra ❤️. Savršena podrška za .NET (izdan je Framework 2.0), Windows Forms, ASP.NET, WCF, C++/CLI (ADO.NET nećemo spominjati 🙄) … ma milina.
Jedini je problem tada bio što je Microsoft kompletno i potpuno zajašio .NET, kreirajući i posebnu verziju C++a da se vrti na .NET Runtimeu (C++/CLI) i pri tome potpuno i kompletno zanemario C++ 😥. Podrška za C++ 98 je bila ok, ali to je bilo to. Microsoft je digao ruke od C++a i iako je i sam .NET bio napisan u C++u i buildan korištenjem Visual C++ kompajlera, isto kao i cijeli Office koji je tada bio glavni money making machine za Microsoft, MS je budućnost gledao samo i isključivo kroz .NET prizmu.
I da se nije pojavio Web 2.0 i mobile, tako bi možda i ostalo.
No, budućnost je uzela drugi smjer, .NET Framework nije ispao money-making machine koji će (za dva reda veličine bolje nego što je to Sun/Oracle uspio s Javom) zamijeniti Office i Windowse kao cash generator, eksplozija Javascripta, web developmenta i mobile developmenta je uzela svoj danak, i bilo mi je veliko zadovoljstvo dočekati Visual Studio 2012 u kojem je C++ konačno ponovo dobio svoje zasluženo mjesto, podršku za C++ 11, u stvaranju kojeg je i Microsoft puno pridonio, poglavito ljudskim resursima.
Milina koju sam osjetio kad sam u Visual Studio 2017, možda par mjeseci nakon izlaska, okrenuo switch u Project properties na “c++ 17”, isprobao neki feature iz novog C++ 17 standarda, i to se kompajliralo i radilo … to je bilo to.
Uskrsnuće C++a, odnosno podrške za moderni C++ u Visual C++ kompajleru, nije došlo samo od sebe, i u stvari je nadošlo zajedno s drugom ključnom promjenom u Microsoftovom razvojnom ekosistemu – kreiranjem cross-platform .NET Core razvojnog okruženja. .NET Core je svakako budućnost cross-platform razvoja softvera, pri čemu naravno mislim poglavito na desktop i back-end oriented softver, a ne na web i mobile, ali … ne vidi vraga, i tu ga je Microsoft metnuo svima 🤣😎.
Kako?
Visual Studio Code ❤️.
Besplatan, ali ono stvarno besplatan ko zrak što ga udišeš, i GARANTIRANO će tako i ostati (jer Microsoft već ima IDE koji prodaje, i to za masne pare onom ko ga kupuje, a to je Visual Studio), isprobao sam ga i aktivno koristim i na Windowsima i na Macu i na Linux … i što da kažem … cross-platform C++ projekt korištenjem CMake-a je 5 minuta posla za setup, a iako sam samo parcijalno probao pa ne bi sudio, po količini extensiona koje vidim, Javascript i Python razvoj, ili Jupyter notebooks, ili Rust ili Kotlin ili … su isto dosta jednostavni.
30 years, and going really strong ❤️.