Big change to big Chance

⚠️ Pozor: obrázky z tohoto příspěvku se ztratily při výpadku v roce 2016. Chybějící obrázky nahradí automaticky vtipným placeholderem plugin Broken Image Placeholder.

Všechno bylo v pohodě než jsem nainstaloval Update 2 pro Visual Studio 2015. Prvně jsem zjistil že mi nefunguje uzavírání tagů v *.html souborech, v *.aspx totéž fungovalo bez problémů. Dobré, tak nebudu používat pro statické stránky HTML. Samozřejmě jsem hledal na netu ale nenašel nic co by mě jakkoliv nasměrovalo dál. Sice jsem viděl že někdo má tentýž problém, ale nikdo k tomu nedokázal cokoliv říct. Teď se ale totéž, nemožnost zapsání znaku >, začala projevovat i při psaní C# kódu, v mém případě u typu generické třídy. Smazal jsem všechny soubory *.suo, složky bin, obj, několikrát jsem obnovoval výchozí nastavení, mazal složky s nastavením VS, jenže jako by nic.

Odinstaloval jsem i všechny pluginy a extension. Jediné co mi zbývalo bylo přeinstalovat celý Win ale dopadlo by to stejně, protože kvůli tomu samému mám teď nový. Bude to chyba která se projevuje velmi minoritně, bohužel mě postihla a nevím co s ní. To už mě dozrálo a řekl jsem si že musím začít používat Express edice. U nich je problém že nepodporují extensions, čímž bych nemohl používat například napříč všemi programy a je jedno zda webovými, desktopovými nebo třeba pro mobilní zařízení – tedy to co jsem si před několika měsíci tak pracně dělal ( http://jepsano.net/2015/12/vytvoreny-nove-sdilene-knihovny-pro-me-aplikace/ ).

Problém je právě kromě samotného MS v Univerzálních aplikacích, o které se MS snaží od začátku Windows 8. Chápu že na mobilní zařízení je potřeba co nejvyšší úspora výkonu a prostředků takže tady to dává smysl. Chápu že nemá příliš smysl vyvíjet verzi pro desktop a pro mobily/tablety + mnohé další zařízení typu Raspberry Pi, takže radši to napsat tak úsporně aby to jelo všude.

Jenže právě tahle multiplatformita(která jako by nestačila že jde napříč zařízeními, ona jde i napříč OS, .NET Core a třeba VS Code je již dávno k dispozici i pro Linux a OS X) a dědictví původního .NETu který je jen pro Windows, pro který byl jako stvořený způsobuje že je to obrovský galamatyáš. V tom by se už nevyznalo ani prase. Abych pravdu řekl, velmi se raduji z toho že ASP.NET 5 (které se teď jmenuje ASP.NET 1 Core) bude i na OS X a Linuxu.

OS X mi je ukradený ale Linux bych chtěl jednou vážně vyměnit za Windows. Už jsem pochopil že MS vždycky byl a asi vždycky bude brzda skutečného IT světa. Ono to je o zvyku a hlavně zázemí nějaké silné korporace. Právě proto se mi docela líbí Google Chrome OS. Některé věci, typicky správce souborů, jsou v něm jak pro idioty a snaží se být chytřejší než člověk.

Nicméně když bych si tam mohl pustit Linux(což jde, třeba na mém Samsung Chromebooku ne, kvůli podporovaným instrukcím CPU, ale obecně ano) tak mohu na net z Chrome OS a kde webové aplikace nestačí tak spustit Linux.

Teď už několik hodin stahuji VS Express 2015 for Windows 10 pomocí Online instalátoru který si asi všechno(nenabídlo mi to žádné parametry co stáhnout a co ne) a má to 5,4 GB. Nechápu co to stahuje, když jsem tohle dělal po vydání VS 2015 RTM tak to mělo 2,66 GB( http://jepsano.net/2015/11/jakou-maji-velikost-express-edice-visual-studio-2015-a-jak-udelat-instalaci-offline/ ). Vlastně MS chválím za tento počin. Tohle je neúnosné aby IDE, byť dle mého nejpropracovanější na trhu, mělo takovou velikost. Takže si to shrneme co máme od MS:

  • Klasické desktopové aplikace konzolové nebo WPF – Vada na kráse je ta že WPF pro tento typ aplikací už nebude moc v kurzu a bude se utlumovat. Přece jen MS nervomocí tlačí do Windows Universal Apps.

  • ASP.NET Web Forms aplikace – to v čem je naprogramováno například celé sunamo.cz nebo webelieve.cz. Tohle nejvíce bolí, celé to předělat bude trvat velmi dlouho, ale asi je to nevyhnutelné. Téhle technologii taky zvoní umíráček.

  • ASP.NET MVC aplikace – Jedná se jak název napovídá o rozdělení na Model-View-Controller architekturu. Jde o zvyk jako u všeho. Nechce se mi je učit protože Web Forms umí to samé, jen jsou jiné. Jenže MS mě do toho tlačí.

  • Windows Store Universal Apps – Mobilní Windows stojí za starou bělu oproti Androidu ale je tu Xamarin a s ním i Xamarin Studio které je zdarma, takže bych teoreticky mohl se přeorientovat na Android/iOS což by byla jediná správná a racionální volba.

Takže abychom jsme si to shrnuli. Nevím ani pro co vyvíjet ani v jakém IDE nebo jazyce.

Chci zůstat u C#, nechci zůstat u MS. Musím si vybrat buď jedno a nebo druhé. Jenže když ne C#, tak co jiného? Dle http://stackoverflow.com/research/developer-survey-2016#technology (nutno vzít v potaz že stack overflow navštěvují převážně home-based developeři, nikoliv ti co pracují na plný úvazek, i když taky tvoří početnou skupinu, jen ne majoritní) jsou nejpopulárnější jazyky dneska tyto:

  1. JavaScript (55%) – Někteří mu říkají králem programovacích jazyků kvůli jeho univerzálnosti a možnosti neřešit furt něco. Jenže protože je netypový, IDE neposkytuje téměř žádnou Intellisense. Jasně, je to můj problém že v něm nedokážu programovat, že se spíše spoléhám na IDE, debugger a podobné vymoženosti než na vlastní schopnosti. Byla by to rozumná volba pro web – i kvůli JS frameworkům jako serverového NodeJS nebo klientského AngularJS. Ale když to má takové zastoupení, musí to mít nějaké kouzlo které já nevidím a neznám.

  2. SQL (49%) – Tohle je pro databáze kde se také dá trochu skriptovat ale tohle tu neřeším, tohle budu mít všude.

  3. Java (36%) – Bylo by dobré se jí naučit kvůli Androidu. Je i typová. Jen mi vadí ta pomalost a náročnost na hardware. Dost mě ale zaráží že má 36%, o 6% více než C#, ve kterém se vyvíjí vše pro Windows.

  4. C# (30%) – To je to oč tu běží a neběží.

  5. PHP (25%) – První pětku uzavírá PHP. Zase netypový, primárně pro Web, ve spolupráci s JS je perfektní pro webové stránky.

Pak už tam je zajímavý jen C++ nebo C. S těmi mohu vyvíjet desktopové aplikace kde záleží na rychlost. Problém je že na té rychlosti moc nezáleží, to spíše u těch embedded malých zařízení jenže ty jdou zatím mimo mě. Když si to sečteme, typové jazyky mají 66% (36+30). Netypové 80% (55+25). Takže zkusím udělat radikální krok, smazat úplně Windows z disku a začít používat nějaký Linux, kde je PHP doma a JS (jako) doma. Trápím se tím kde se .NET, C# a vše okolo toho dostalo.

Nechci ztrácet čas učením se něčeho nového ale přesto stale ho ztrácím tím že řeším proč to od MS nefunguje. Nedělám si iluze že tam bude vždy fungovat všechno, jenže když to nevyzkouším, tak to jsou jen dedukce. Vím že s každou aktualizací se něco posere. Už opravdu nemám sílu celé dny řešit proč tohle nefunguje, když všechno to je čistá instalace, všechny aktualizace, žádné nastavování z mé strany, všechno na výchozích hodnotách. Vím že tohle už tu bylo hodněkrát. Nikdy jsem však neměl Windows natrvalo. Kdyby tak Google uvolnil Chrome OS jako běžné ISO.

Jsou sice projekty typu CloudReady které to dělají, jenže je to třetí strana, která se netají že chce být zisková a je jen otázka času kdy bude omezovat, případně si nechávat platit za to co bylo zdarma a nebo přestane existovat, případně půjde do útlumu.

Ano, bude to bolet. Bude to stát hodně sil, nervů, probdělých nocí, přepisování, zkoušení a výsledek může být také všelijaký.

Dokud se ale nepodívám do jiného světa, můžu nadávat na tento ale nadávání je jen pro ubožáky. Zdatní se nebojí výzev a milují překonávání vlastních limitů, objevování neznámého. Všechno co člověk zná nebo umí ho posune dál.

V mém životě jsou teď velké změny – k lepšímu, nejlepšímu. Je čas skončovat s MS technologiemi, MS designem, MS politikou. Proč být na něčem od čeho všichni utíkají, a důvod že nic jiného se jen tak nenaučím neberu. Jestli chci růst a rozvíjet se – chci – musím jít tam kde to má úroveň.

PS: Teď se konečně dostahovalo VS 2015 Express for Windows 10. Nevím zda ho někdy nainstaluji.
Express 2015 for Windows 10 offline installer