Quantcast
Channel: IDE – DevBlog
Viewing all articles
Browse latest Browse all 4

Co mi vadí na Visual Studiu

$
0
0

Jarda Jirava se před nedávnem na Twitteru zeptal, jestli máme nějaké připomínky k Visual Studiu, a ať mu případně dáme vedět. Nu, máme :) K Visual Studiu jsem se už mnohokrát vyjadřoval (např.), ale nikdy jsem nešel moc do hloubky. Protože má ale Jarda jakožto MVP možnost setkat se přímo se zodpovědnými lidmi z Microsoftu a tedy aspoň teoretickou šanci věci ovlivnit, budu tentokrát konkrétní.

Co mi asi nejzásadněji vadí na Visual Studiu, je zaměření na podporu konkrétních jazyků a technologií (Visual Studio toho umí hodně a některé věci opravdu dobře), bohužel bez dostatečné pozornosti k základním prvkům použitelnosti. Co tím myslím? Např. že IntelliSense k C# je skvělá, ale v textovém editoru chybí základní příkazy pro manipulaci s textem (viz níže). Nebo že Visual Studio má pro řadu technologií nejlepší WISYWIG editor na světě, ale základní věci typu zastavení dlouhotrvající operace jsou kdesi schované nebo nejsou vůbec. Jsou to jen příklady, ale mělo by z nich být jasné, o co mi jde – produktové týmy jakoby vymýšlely další a další vlastnosti pro svůj produkt, ale nikdo se nestará o celkové UX, o všechny ty důležité detaily okolo.

Krásně v kontrastu je z mého pohledu Eclipse – to je oproti Visual Studiu poměrně ošklivé IDE a také má nevýhodu, že je naprogramované v Javě (ne zcela nativní vzhled, patrně pomalejší na méně výkonných počítačích apod.), a nepochybně některé konkrétní technologie podporuje hůře než Visual Studio (např. JavaScriptový vývoj), ale z pohledu použitelnosti u mě Eclipse vítězí v každém ohledu – má daleko lepší textový editor, projektový systém je lépe navržený a mezi různými typy projektů konzistentní, dlouho trvající akce běží v jen zdánlivě modálním dialogu (se základním GUI lze stále interagovat) a mají i sebe vždycky velké červené “stop” a podobně. Ve výsledku je tak možné, že v Eclipse ztrácím milisekundy kvůli pomalé Javě, ale celková práce s tím GUI mi šetří sekundy až minuty a hlavně nervy. Obráceně řečeno, poté, co si člověk zvykne na komfort jiných IDE (neplatí jen pro Eclipse, ale třeba i pro IDEU a další), se jen těžko smiřuje s tím, jak je Visual Studio základní a jak neefektivně se s ním v obecné rovině pracuje.

Abych nezůstal jen u obecné kritiky, níže najdete celou řadu konkrétních výtek, rozdělených do tří hlavních oblastí. Začnu editorem.

1) Editor je příliš hloupý

Tady znovu zopakuji, že mi nejde o podporu konkrétního jazyka, tj. např. jak Visual Studio rozumí C#, jak umí dělat rename refactoring a podobné věci. K tomu v zásadě nemám výhrad (addony typu ReSharper dokáží tyto věci ještě zlepšit, ale už je to z mého pohledu jen rozdíl mezi dobrým a ještě lepším). Jde mi o základní vlastnosti editoru, např. toto všechno ve Visual Studiu chybí:

  • Neexistuje příkaz na duplikování řádků (hodí se často při editování XML, vytváření unit testů, přidávání akcí do controllerů a v řadě dalších případů). Copy/paste má nevýhodu, že je na více klávesových zkratek, a navíc ovlivní clipboard.
  • Neexistuje příkaz pro reindentaci řádků (Visual Studio je umí pouze přeformátovat, což může zasáhnout i do části řádků za úvodními bílými znaky a může být nežádoucí).
  • Neexistuje příkaz pro přesunutí řádků.
  • Copy/paste řádků kódu do jiné úrovně odsazení neopraví odsazení řádků automaticky (příkaz reindent neexistuje, viz výše).
  • Myslel jsem si, že neexistuje ani příkaz pro smazání řádku(ů), ale ten tam je. Zkratka je však poměrně obskurní (Ctrl+Shift+L) a většina lidí tak používá Ctrl+X, což ovšem dělá něco trochu jiného (přemaže clipboard).
  • Ctrl+click není ve Visual Studiu standardní způsob navigace, přitom nejen mně připadá velmi efektivní (já bych ho skoro neváhal označit za nejefektivnější možný, ale to byste mi nadávali do myšařů).
  • Neexistuje příkaz pro návrat na místo poslední editace.
  • Částečně s editorem souvisí taky to, že ve Visual Studiu není rozhodně pravidlem, aby pro soubor bylo naimplementované “outline view”, tj. přehled jeho struktury (existuje např. pro C#, neexistuje pro XML, HTML a další).

To byly obecné věci, plus se k tomu přidávají maličkosti v editorech konkrétních jazyků, jakože např. když v HTML editoru napíšu “a hr”, nechám si z IntelliSense doplnit “href”, tak mi zůstane kurzor blikat těsně za tím a nevloží se rovnítko a uvozovky, do kterých bych hned mohl začít psát.

Můžete namítat, že výše uvedené věci řeší pluginy nebo že jsem u některých věcí moc puntičkář, ale říkám vám, jak si jednou na komfort inteligentního editování zvyknete, není cesty zpět. A IDE, kteří mnozí považují za nejlepší na světě, by takovéto základy ve své jedenácté verzi IMO jednoznačně mělo zvládat.

2) Projektový systém je divný

Nemůžu říct vyloženě špatný, protože každý má svá pro a proti. Nicméně tady jsou věci, které vnímám jako problematické nebo minimálně s potenciálem být problematické:

  • Visual Studio má dva různé druhy projektů – ten standardní je reprezentovaný souborem na disku (např. *.csproj v případě C#) a je charakteristický tím, že v Solution Exploreru ukáže jen ty soubory a položky, které jsou explicitně vyjmenovány. Druhý druh projektu naopak žádný projektový soubor nemá a reflektuje souborový systém v určité složce – Microsoft tomu říká “Web Site”, ačkoliv využití může být i mimo tuto oblast. Mít dva různé druhy projektů je naprosto zbytečné a určitý chaos se ve Visual Studiu ani nesnažili moc zamaskovat – např. jen konfigurace různých projektů probíhá minimálně ve třech různých rozhraních (někdy to je záložka v hlavní oblasti, jindy postranní panel Properties, někdy modální okno apod.).
  • Některé projektové změny neukládá Visual Studio na disk hned, ale až po nějaké explicitní akci (Save, Build apod.) Stalo se nám párkrát, že nám např. v commitu chyběl aktualizovaný projektový soubor – ano, byla to naše chyba, ale Visual Studio k ní zbytečně dává příležitost.
  • Moc ve Visual Studiu nerozumím konceptu knihoven kódu, pokud tam tedy takový koncept univerzálně je. Např. .NET knihovny se vám do vašeho vlastního zdrojového kódu nemotají (nejsou součástí různých statických analýz, jsou vynechány z některých navigačních funkcí po lokálním kódu apod.), ale JavaScriptové knihovny, např. jQuery, se vkládají přímo do zdrojáků, nemají ani samostatný typ projektu apod. Zdá se mi to nedomyšlené.

3) Nedostatky v základním GUI

Na závěr pár věcí, které mi vadí v “chrome” Visual Studia:

  • Nenašel jsem dobrý způsob, jak rychle maximalizovat a pak zas obnovit tool window (např. máte nějaký delší Output, chcete si ho na chvíli maximalizovat a po pročtení zase vrátit do původního malého okénka). Jde to nějak nasimulovat undockem, dvojklikem a ctrl+dvojklikem, ale není to zdaleka ono.
  • Visual Studio nemá konfigurovatelné perspektivy – zná jen pár předdefinovaných stavů, např. “pracuju na kódu” a “debuguju”, které jsou pevně svázané s tím, co se právě dělá. V Eclipse se můžu v libovolném okamžiku přepnout do jakékoliv konfigurace okének a editorů, takže například uprostřed ladící session můžu přejít do běžného editačního zobrazení, aby se mi případné úpravy dělaly pohodlněji, a pak se zase přepnout do debug perspektivy a pokračovat dál.
  • Dialog nastavení (Options) stále nemá filtrování / vyhledávání. Aspoň že už jde na konkrétní stránku skočit přímo z pole Quick Launch.
  • U všech dlouhotrvajících operací by mělo být pravidlem, že jdou stopnout. Visual Studio, zdá se, pro to nemá standardní GUI a některé věci jsem nenašel, jak stopnout – např. analýzu kódu nad celým solution. Nevím, jestli to úplně přímo souvisí, ale Visual Studio je IDE, kde celkové zamrznutí GUI pozoruji výrazně častěji než v Eclipse nebo v IDEE.

Závěrem

Možná bych mohl hledat další věci, ale myslím, že to pro demonstraci stačilo. Na tomto místě by bylo dobré zopakovat, že cílem tohoto článku skutečně byla jen a pouze kritika, pokud možno obsáhlá a konkrétní. Na Visual Studiu lze samozřejmě najít mnoho pozitiv, řada MS technologií je skvělých a i jejich podpora ve Visual Studiu je dobrá až excelentní. Přesto, co se týče základů a obecné efektivity, nemůžu si pomoct, Visual Studio mi připadá jako příliš základní, neefektivní a nedomyšlené. Byl bych hrozně rád, kdyby se u dvanácté verze konečně někdo v Microsoftu zamyslel a hříchy minulosti vyřešil.

Pokud máte vlastní připomínky, napište je Jardovi do jeho formuláře.


Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles


Ocenění bankovek 2000kc série A a B


5000kc, r. 1999, B04, B18.


Podzemlje - epizoda 23


Papírová bankovka 100 kč , rok 1993, série A12


LP- HELMUTOVA STŘÍKAČKA - Helmut & Hilda RARE - 2 500


Plynový kotel DAKON DS 22G - 2 500


CD Extip - Kraken - 1 500


PF 2023


Re: Mohli by ste mi ohodnotiť túto mincu ?


P: Boss Octaver OC-2