Microsoft Visual Studio 2010 – to snáď ani nie je možné!!!

Pred pár mesiacmi sme v práci prešli hromadne (multimediálne oddelenie) na nové Visual Studio, konkrétne na verziu 2010. Keďže programujeme v C++, moje zážitky sa môžu líšiť od zážitkov ostatných používateľov, myslím si ale, že v mnohom sa budú zhodovať. Pokiaľ to zhrniem, tak nové Visual Studio je katastrofa.

Na prechod sme sa vcelku tešili, nakoľko nami používaná verzia 2005 už toho mala za sebou dosť a aj kompatibilita s najnovšími platform updatmi bola čoraz horšia. Navyše Intellisense v prostredí C++ bol vo verzii 2005 totálny výsmech, najmä v porovnaní s bezchybne fungujúcim Intellisense v C#. Ten náš nielenže väčšinu času nefungoval, ale niekedy keď aj fungoval tak v skutočnosti komplikoval programovanie tým, že dopĺňal zlé veci a to dokonca aj vtedy, keď už mal človek takmer celý názov metódy napísaný vlastnoručne. Všetci sme si teda mysleli, že už viac sa to pokaziť nedá a skrátka musí to byť lepšie. Chlapci z Redmondu sa ale skutočne pochlapili a vydali softvér, ktorý mi niekoľko desiatok krát denne zvýši krvný tlak, adrenalín a skráti život. Kávu nepotrebujem vôbec, stačí sa snažiť programovať v tomto paskvile. Čo je vlastne také zlé? Chyby objavujeme všetci dennodenne, tu je zopár, na ktoré si práve spomínam:

  • Prostredie samotné je veľmi pomalé. Môj počítač má jeden z najvýkonnejších modelov procesoru Intel Core i7 s 3 GB RAM s operačným systémom Windows 7 64-bit. Po spustení čo i len jedného Visual Studia sa celá práca v systéme rapídne spomalí, samotné IDE Visual Studia seká a zamŕza len tak z ničoho nič počas písania kódu, alebo klikania po ponukách, niekedy dokonca aj keď práve pracujem s iným programom. Niekoľko krát do týždňa tento softvér spadne, prípadne zamrzne tak, že ho treba “odpáliť” a pustiť znova. Odozva systému sa rapídne znižuje s počtom spustených Visual Studií, empiricky sme zistili, že mať viac ako 2 je už problém. Najviac iritujúce je, keď v systray vyskočí balónik “Visual Studio is busy”…
  • Kompilácia je extrémne pomalá. Empiricky sme opäť zistili, že rovnaký projekt sa vo Visual Studiu 2005 kompiluje asi polovičný čas. Počas kompilácie ja takisto prakticky nemožné robiť čokoľvek iné, systém je úplne ochromený, seká grafické prostredie, programy sa obnovujú neúnosne dlho. Osvedčilo sa mi naloadovať si v prehliadači na druhom monitore dlhý článok a potom spustiť kompiláciu. Tak si môžem aspoň chvíľu čítať počas toho nekonečného čakania :)
  • Intellisense je opäť záludné. Nefunguje vždy, ale celkovo musím uznať, že funguje o dosť lepšie, navyše je tu prítomná nová, vcelku užitočná, funkcia podčiarkovania syntaktických a sémantických chýb ešte pred kompilovaním. To celkom ujde, ALE v niektorých prípadoch nemá žiadnu šajnu a podčiarkuje všetko, prípadne zase vôbec nič. Špeciálny prípad sú projekty so zapnutými precompiled headers (build-in funkcia Visual Studia), kedy nefunguje vôbec nič.
  • Editor textu sa naučil zopár fígľov z  linuxáckeho GEditu (s ktorým sme zažili tiež množstvo zábavy) a začal robiť naprieky. Človek by si povedal, čo sa dá pokaziť na automatickom odrážaní na novom riadku? Verte či nie, dá sa a nové Visual Studio je toho príkladom, občas totiž odráža správne a občas o 1 jeden tab menej, prípadne skáče len na začiatok riadku. Asi podľa nálady. Na vlastné oči som tiež videl, ako kolegovi na novom riadku skočil kurzor na začiatok riadku po napísaní zopár písmen, prípadne automaticky doplnil náhodný symbol z Intellisense.

Na záver ešte pridám historku, ktorú som zažil dnes a ktorá ma inšpirovala k napísaniu tohto výlevu. Poobede si normálne programujem, píšem kód, nič neklikám ani nič nechcem aby to prostredie robilo, len písalo. Samozrejme prácu pravidelne ukladám. Zrazu pozerám a už nepíšem, Visual Studio tuhé ako Lenin a ja len čakám a čakám. Tento krát nenaskočil balónik o tom, že Visual Studio pracuje, zato mi prestal reagovať takmer celý systém, dokonca začal sekať aj kurzor myši. Zúfalo som sa teda pokúsil vyvolať Task manager z kontextového menu task baru, nič sa ale nedialo. Skúsil som teda CTRL-ALT-DEL, ale tak isto bez odozvy. Asi za 2 – 3 minúty mi zhasli oba monitory a po ďalšej minúte naskočilo toto:

IMG_1251

Po odkliknutí systém pomaly nabehol a dovolil mi odstreliť náhodne vytipované Visual Studio, ktoré ale bolo to správne. Netreba asi hovoriť, že to druhé, ktoré som mal spustené, tiež zamrzlo, ale počas pár desiatok sekúnd aj odmrzlo, tak to akoby sa ani nič nestalo. Pravé prekvapenie sa na mňa ale len chystalo. Po spustení novej inštancie a naloadovaní projektu som začal tušiť zlú vec. Všetky nastavenia projektu boli rovnaké, ako keď som na ňom začal pred 1,5 hodinou pracovať, chýbali novopridané súbory (na disku našťastie boli) a to najlepšie na koniec: zdrojový súbor, ktorý som vyše hodinu upravoval, bol skrz-naskrz prázdny, nula bajtov, ani jedna medzera, nič. V slovenskom jazyku neexistujú nadávky, ktoré som v tej chvíli chcel vysloviť na adresu autorov toho odpadu, premýšľam ale o ich vytvorení, v práci by som ich často využíval.

Môže sa zdať, že moje problémy sú len samé blbosti a maličkosti najmä na takej obrovskej aplikácii akou Visual Studio bezpochyby je. Pre mňa sú to ale fatálne veci, ktoré mi denne uberajú nezanedbateľné množstvo môjho pracovného času a pripravujú mi stres a nervy na počkanie niekoľko krát denne. Navyše pokiaľ by sa vyššie popísaná príhoda stala večer, mohol som by som teoreticky prísť o celodennú prácu (pokiaľ commitujem raz denne a robil by som na jednom súbore, čo je nepravdepodobné, ale stať sa môže), alebo aj horšie (pokiaľ by sa jednalo o neverzionovaný súbor, ani nechcem pomyslieť). Nedokážem pochopiť, ako si môže firma ako Microsoft (alebo práve preto?) dovoliť vydať takýto nepodarok, pre mňa osobne je to najhorší softvér, s akým som kedy pracoval.

P.S. Voľakedy som sa smial ľudom, čo robili v Eclipse, už sa nesmejem, závidím.

Perličky z používania:

19.1.2011 16:39 - Chcem napísať MonoBase::Buffer, napíšem MonoBase:, po prvej dvojbodke mi kurzor skočí o dva znaky dozadu tak napíšem MonoBa:se:. Pomôže až reštart VisualStudia. Ako dokáže toto niekto spraviť mi je veľkou záhadou…

21.1.2011 10:02 - Kolegovi práve pri kompilácii Visual Studio zahlásilo, že symbol memcpy is ambiguous (nejednoznačný). Po reštarte Visual Studia všetko funguje v poriadku.

22.2.2011 10:43 - Mám dosť veľký solution s asi 20 projektmi. V startup projekte mám nastavené dependencies na 2 projekty (knižnice). Keď dám skompilovať celý solution, napíše mi na všetky projekty, že sú up-to-date. Keď manuálne kliknem na knižnicu na ktorú mám nastavené dependency a dám build, samozrejme že ju prebuilduje, pretože v nej sú zmeny. Musím to ale robiť manuálne klikaním na každý zmenený projekt. Ako sa dá toto pokaziť fakt nechápem.

25.2.2011 11:39 - V priebehu 10 minút mi ten softvér 2 krát totálne vytuhol, musel som ho odpáliť cez task manager a pustiť znova.

4.4.2011 15:46 - Dnes si Visual Studio zmyslelo, že mi nebude robiť odsadenie na novom riadku (o aktuálny počet tabulátorov). O hodinu na to mi zase ignoruje zmenené súbory a tvári sa, že netreba nič kompilovať.

4.4.2011 16:05 - Tak dnes ešte jedna perlička. V rámci jedného projektu mi jedno cpp išlo debugovať a druhé nie. Pričom samozrejme všetko bolo up-to-date. Pomohol až rebuild.

4.4.2011 17:28 – Dnes ma chce tá $#%^&&%#@ asi vrcholne vytočiť. Po tom čo ma celý deň nasiera mi teraz počas písania kódu bezdôvodne Visual Studio zamrzlo. A keby som si náhodou nevšimol, tak dole mi vyhodil bublinku Microsoft Visual Studio is busy. Grrrrrrrr.

14.6.2011 12:07 VisualStudio sa práve rozhodlo, že nech už zmením v hlavnom projekte čokoľvek, neprekompiluje mi to. Celý solution je proste up-to-date.

4.7.2011 10:19 IntelliSense ma presviedča, že “Argument of type ‘_stat64 *’ is incompatible with parameter of type ‘_stat64 *’ “. Skompilovať to samozrejme ide.

10.8.2011 13:13 Kliknem na metódu pravým tlačidlom myši a dám Show definition, Visual Studio kompletne zamrzne (ako vždy, veď takéto niečo sa nedá robiť asynchrónne, však Microsoft), ale už neodmrzne. Toto je úplne bežná vec, takže človek vždy tŕpne, keď chce nájsť definíciu nejakej funkcie takýmto spôsobom.

10.8.2011 14:44 V jednom projekte mi ani za nič nechce zobraziť resource view. Nepomáha reštart Visual Studia, nič. V ostatných projektoch bez problémov.

2.9.2011 12:06 Minulý týždeň som si nainštaloval SP1 pre Visual Studio 2010. Frekvencia mrznutia programu sa zvýšila asi na dvojnásobok (približne 1 – 2x za deň musím jedno “odstreliť” cez Task Manager). Zmena konfigurácie z Debug na Release, alebo naopak, trvá často krát až niekoľko minút (!!!). Jediná zmena k lepšiemu je, že už sa nezväčšuje find dialog pri každom vyvolaní. Polofunkčný Intellisense a extrémna pomalosť ostali. Good job Microsoft!

8.11.2011 14:56 Mám otvorené súbory z lokálneho disku, kliknem pravým tlačidlom na jeho záložku a potom Open Containing Folder. Visual Studio ho neotvorí, ale vypíše takúto hlášku:

Aj keď si už človek myslí, že pozná všetky "špecifiká" Visual Studio, stále ho vie prekvapiť niečim novým

Týkalo sa to všetkých súborov, umiestnených ľubovoľne na celom disku. Nefungoval ani drag&drop súboru do VS editoru. Vo všetkých ostatných normálnych programoch s nimi išlo pracovať úplne normálne. Visual Studiu pomohol až reštart počítača.

21.11.2011 11:45 Ďalšia lahôdka v podaní VisualStudio IntelliSense. Kompilácia samozrejme prebehla bez problémov.

1.10.2012 12:15 Visual Studio sa rozhodlo, že nebude vyhľadávať v celom solution.

Find all “RegisterDefault”, Match case, Subfolders, Find Results 1, “Entire Solution”
Matching lines: 0    Matching files: 0    Total files searched: 113
Find was stopped in progress.
Riešením je (nájdené na nete, odskúšané) kliknúť do output window a niekoľko krát po sebe stlačiť CTRL + Pause. Úžasné.
15.10.2012 15:23 Mám skompilovaný projekt. Zmením vymažem jeden riadok v jednom cpp a dám kompilovať. Visual Studio píše, že kompiluje to cpp. Trvá to viac ako štyri minúty. Zo zvedavosti dám riadok späť a skompilujem. 6 sekúnd. Vymažem ho a zase kompilujem. 8 sekúnd.

siri Oct 26th 2010 08:51 pm Kompy a tak...,MONOGRAM,To už čo je? 19 Comments Trackback URI Comments RSS

19 Responses to “Microsoft Visual Studio 2010 – to snáď ani nie je možné!!!”

  1. 1
    Ped Says:

    Hm, mozes teoreticky skusit TheIDE z U++ ( http://ultimatepp.org/ ), VS10 by to v novych verziach z SVN malo detekovat a prednastavit build metody.
    Neseka sa to, da sa spustit aj 10x naraz, doplnovanie ako tak aj funguje (aj ked v tvojom pripade skor pouvazuj o zakupeni Visual Assist pre VS10 http://www.wholetomato.com/ ). Jediny problem je ze vyvijat v tom klasicky MSVS C++ projekt nejde az tak jednoducho a hlavne by si tym prisiel o tie skutocne vyhody U++ (NTL, Core a widgets kniznica, cross platform).
    Ale ak ta VS10 naozaj *TAK* trapi, tak pouzivat TheIDE ako textovy editor + kompilovanie cez makefile mozno tvoju situaciu mierne zlepsi.

  2. 2
    eMDi Says:

    tak to nezavidim. zaplat panubohu som len obycajny PHPckar a este k tomu linuxak :D

  3. 3
    Bus Says:

    C++ kod sa v normalnom IDE pisat neda, najlepsie je mat obycajny textovy editor. Visual Studio napriklad funguje uplne super ked pises VB kod a povedzme ze este relativne v pohode v C#. (Aj ked to teraz hovorim o 2008.) Problem je ze C++ je debilny jazyk v tom zmysle ze ti dovoli robit prilis vela veci. Dost casto taketo performance issues zavisia aj od toho ako konkretne vyzera kod co pises — ako moc musi VS pozerat do ostatnych suborov, riesit nejednoznacnosti, prekompilovavat za behu funkcie atd. Su o tom popisane clanky ze ako ulahcit kompilatoru jeho pracu.

  4. 4
    truthseeker Says:

    Ale jedno sa Microsoftu neda upriet – maju vynikajuce marketingove oddelenie. Mimochodom predstavitel Microsoftu Brian Harry sa udajne o novom Visual Studiu vyjadril nasledovne: “The performance is acceptable now and I would consider the product generally shippable…” (http://davybrion.com/blog/2010/01/i-still-have-low-expectations-for-visual-studio-2010/). Prave kvoli problemom s vykonnostou bolo totiz oddialene vydanie release verzie VS 2010. Problemom je, ze aj napriek spomenutym nevyhodam neexistuje vo Windowse porovnatelne vyvojove prostredie co sa tyka komfortu pouzivania, mozno tak Borland. V C# tam je to trochu inak, existuje projekt Mono a okrem neho aj SharpDevelop. No a na pluginy co spomenul Ped by som si dal pozor. Konkretne s Visual Assistom X mam negativnu skusenost z minulosti. Par mesiacov to fungovalo naozaj bajecne. Co sa tyka funkcionality nemam namietky, cudujem sa, ze nieco podobne uz davno nezapracovali priamo do Visual Studia. No ale po tych par mesiacoch sa mi stalo nieco velmi podobne ako teraz robi Visual Studio 2010 (vtedy som este pouzival VS 2005). Najskor som nevedel cim to je, ale ked som plugin odinstaloval, vyvojove prostredie sa zacalo spravat normalne. Navyse som si vsimol, ze interna databaza pluginu za ten cas narastla do mamutich rozmerov, zrejme ju treba z casu na cas vymazat. Ale je mozne, ze nove verzie tieto nectnosti nemaju.

  5. 5
    siri Says:

    Visual Assist X som nainštaloval na skúšku. Zatiaľ sa mi celkom páči, uvidíme ako sa bude správať neskôr.
    O tom oddialení viem, beta testeri sa vraj sťažovali na výkonnosť, ale myslím, že ešte mali zapracovať. Prípadne aspoň umožniť používateľovi vypnúť niektoré súčasti, alebo celý Intellisense.

  6. 6
    siri Says:

    Inak ten článok je super a mnohé vysvetľuje, dik. S takýmto postojom očakávam VS 2012 úplne nepoužiteľné :)

  7. 7
    inetMark Says:

    Ja by som to nedramatizoval. Problém nemusí byť len vo VS. Pracujem s VS2010 v C#, nie v C++. Funguje dokonale skvele aj v spolupráci s TFS.

  8. 8
    Juro Says:

    Je zvláštne že tak silný stroj ako popisuješ nestíha. Asi by som sa nezmieril len s konštatovaním že je to tak ale hladal by som príčinu. Mal si pustený počas práce na pozadí task manager na sledovanie vyťaženia systemu? Vtedy ked stroj akože nestíhal a bol naplno vyťažený aká bola zaťaž procesora? Ake bolo vyuzitie RAM ? Nebola prekročena “spotreba” RAM a nebol system prinuteny swapovať ? Ako boli vyťažene hardisky? proste by som sa snažil zistiť kde je úzke hrdlo flaše. Či RAM, CPU alebo HDD . Až keby som vedel ze HDD su zatazene primerane , RAM nie je plne spotrebovana a CPU je vyťažené na 100% a preto system nestíha , potom by som začal nadávať na Mrkvosoft . Ty sedíš za strojom , iste si vieš zodpovedať na nadhodené úvahy. Mozno je riešenie jednoduche, pozatvarať nejake programy čo žerú RAM alebo dokupiť jeden modul RAM a máš po starostiach .

  9. 9
    ~s~ Says:

    ja mam v praci i5 a 4m ram, zatial pouzivame VS2008 (od noveho roka prejdeme na 2010) a bezne mavam otvorenych aj 9 instancii VS, tak dam vediet po prejdeni svoje pocity ;)

    ale neocakavam az tak brutalny dopad ako popisujes ty… mal som chvilu nainstalovane VS2010 a nesekalo mi vobec (QuadCore a 4GM ram), ale nerobil som v tom nejake psie kusy…

    inak tomato asistent stoji za hovno a robi horsie psie kusy ako popisuje autor o VS2010… osobne odporucam R# (resharper)… komu sa pacia nove featurky vo VS2010, vedze, ze chlapci z mrkvosoftu ich sprosto okopirovali z R# ;)

  10. 10
    spačko Says:

    tiež programujem v C++ a mám podobné problémy (i keď som si najprv myslel, že problém bude z HDD), na druhej strane má človek aspoň čas ísť si urobiť kafé, dať si cigaretku a odskočiť si na WC :-) Možno toto práve chlapci z Redmondu chceli, aby sme si aj my programátori trošku oddýchli.
    (zľahčujem, ale je to fakt naprd)

  11. 11
    Ja. Says:

    Neuveriteľné.
    V mojom IDE (nekonkretizujem, aby to nevyzeralo ako flame bo čo) sa nič také nedeje a ten problém so stratenými zmenami by pomohla vyriešiť featurka menom “local history”

  12. 12
    siri Says:

    inetMark: Veď to, C# funguje výborne, C++ ani náhodou.
    Juro: Skúsim, celkom dobrý nápad. Aspoň zo zvedavosti :)

  13. 13
    blackhat Says:

    Nesuhlasim s tvojim nazorom ohladom visual studio 2010.Pracoval som v linux a casto sa mi zasekavali aplikacie bezdovodne mrzli a musel som dost casto restartovat cely system.Obdivujem ludi co nadavaju na vsetko od microsoftu.Tak sa vykasli na visual studio a zacni len pre linux robit.Potom napis clanok ako uzasne stabilne prostredie ma linux ak otvoris vbiac okian a ako uzasne stabilne su v nom ovladace a ako casto vznika konflikt medzi zariadeniami v linux.Ja by som vs2010 nemenil uz za vs2008.Nic lepsie na trhu nejestuje.A ked si taky mudry tak skus s chlapcami urobit slovensku verziu ked tak kritizujes.

  14. 14
    siri Says:

    Ja som na Linuxe robil v Eclipse a čuduj sa svete fungoval tam dobre aj Intellisense, aj podčiarkovanie syntaxe, nezahlcovalo to celý systém a išlo to stabilne. A to som to mal spolu s celým Linuxom vo virtuálnej mašine.
    Samozrejme, že Visual Studio je najlepšie na trhu, ja som kritizoval to, že verzia od verzie je horšia a horšia (pre C++). To nie je len môj názor, stačí si prečítať komentáre vyššie. A navyše pred nedávnom som robil menšie úpravy v projekte v C# a to sa nedá porovnať. Prečo dokážu spraviť použiteľné prostredie pre C# a neustále ho vylepšovať a pritom pre C++ ho stále zhoršujú?

  15. 15
    majsi Says:

    No ono to je asi takto. Microsoft sa zameriava coraz viac na vyvoj C#, F# a podobnych aplikacii. Take WPF je napriklad dost pekna vec a cuduj sa svete nieje ani tak pomala ako som cakal. C++ a celkovo WinAPI Microsoft uz dlhsiu dobu nezaujima (teda aspon co sa tyka vyvojovych prostriedkov pre koderov). Na jednej strane sa im nieje co cudovat pretoze dnes kazdy chce len C# a javu a tak. Na druhej strane by ma dost zaujimalo ake IDE pouzivaju v Microsofte, pretoze vsetko co nakodia je v C++ a neverim ze pouzivaju hociktoru verziu Visual Studia.

  16. 16
    siri Says:

    Presne toto by zaujímalo aj mňa, v čom robia napríklad aplikácie z balíka Windows Live. Inak máš úplnú pravdu, ten rozdiel C++ vs. C# v rámci Visual Studia je priepastný (či už IntelliSense, práca s WinForms, atď..).

  17. 17
    mikro Says:

    majsi: mas pravdu, v Redmonte sa VS nepouziva, ide o viac menej typ vyvoja znamy z Linuxu — textovy editor podla tvojej lubovole + command line.

  18. 18
    siri Says:

    Ja osobne by som to tipoval na nejaký interný nástroj, samozrejme nie tak obrovský ako Visual Studio, ale zato rýchly a funkčný :)

  19. 19
    Mariano Says:

    V c++ neprogramujem veľmi veľa, viac sa venujem v súčasnosti skôr php, javascript, ci java. Zvyknem pouzivat aj VS2010, ale popularnejsi sa pre mna stal skôr textovy editor notepad++ v kombinacii s command line :D

Leave a Reply