Úvodní článek o programování v jazyku C#. V tomto článku se seznámíme nejenom se samotným programovacím jazykem C#, ale jeho prostředím a co je třeba mít okolo něj.
První odstavec věnuji motivaci, proč se učit zrovna tento programovací jazyk. Protože se jedná o moderní jazyk, který je stále oblíbenější. Dalo by se říci, že jeho „přímím“ konkurentem je Java, ale na rozdíl od ní přináší některá vylepšení a jelikož C# je mladší jazyk, poučil se právě z chyb Javy. Programování je jednoduché a během chvilky zvládneme vytvořit i složitější a užitečné programy.
Jazyk C# (čteme [:síšárp:], někdy psáno taky jako „Csharp“) je z dílny známé společnosti Microsoft. Spatřil světlo světa v roce 2002 spolu s prvním vydáním prostředí .Net. Tento jazyk vychází ze známého programovacího jazyka C++, takže štábní kultura a syntaxe je dosti podobná. Ovšem celkově se jedná o odlišný jazyk. Prvním rozdílem je, že C# je čistě objektově orientovaný jazyk. To znamená, že i proměnné, například integer, je také objekt. To nám přináší celou řadu výhod. Možná si říkáte, že je to spíš nevýhoda pro tak jednoduchou věc jako je proměnná, mít extra objekt, ale později si ukážeme v čem je to výhoda. Další rozdíl oproti C++ je, že C# programy vyžadují prostředí .Net (čteme [:dot net:]), podobně jako Java svoje prostředí.
Jedná se o běhové prostředí, jak jinak než z dílen Microsoftu. Toto prostředí je k dispozici na různé platformy, i když 100% kompatibilita je zatím jen na operačním systému Windows. Toto prostředí za nás řeší spoustu věcí, kterými se při návrhu programu nemusíme zaobírat, a tím se nám krátí čas, který potřebujeme na vytvoření takového programu. .Net právě obsahuje velkou škálu knihovních tříd, jejichž vlastnosti můžeme v programu libovolně používat (od výpisu text do konzole, přes síťovou komunikaci, až po …).
Obr. 1: Struktura prostředí .Net.
.Net není ale jen o knihovnách, ale obsahuje řadu mechanizmů, které dělají věci, které bychom jinak museli mi řešit. Například nepotřebné objekty nemusíme mazat, ale jsou smazány sami. To má nestarosti takzvaný Garbage Colector, který čistí paměť od nepotřebných dat. Ovšem nedělá to hned, ale prostě někdy nebo až když je potřeba. .Net ale umí s pamětí více věcí, například „scukávat“ data a odstraňovat mezery mezi jednotlivými bloky dat, podobné jako defragmentace disku, a tak dále.
.Net dále obsahuje také překladač JIT (Just In Time). Překladač čeho? Na začátku jsem nezmínil, že váš program se nepřeloží do spustitelné podobny ihned (i když výsledný soubor má koncovku exe), ale přeloží se do jazyka MSIL. V tomto jazyce jsou všechny programy psané pro .Net Framework bez ohledu v jakém původním jazyce byli napsány (C++, C#, F#, Basic…). A právě až ve chvíli kdy uživatel spustí tento program, přijde na řadu JIT, který program přeloží do spustitelné podoby. Teď vás určitě napadlo: „nj, ale to přece musí strašně zdržovat“. Ano i ne. Existuje několik způsobů překladů JIT. Jedním z nich je, že se program přeloží a .Net si uchová přeloženou podobu onoho programu a při dalším spuštění se již nepřekládá (čekáme déle jen u prvního spouštění). Proč to dělat složitě, když bychom mohli rovnou náš zdrojový kód překládat do spustitelné podoby? Protože teoreticky na jiné platformě by náš program šel spustit, za předpokladu, že tam poběží .Net Framework (například je logicky jasné, že takový program nespustíme třeba na jednočipovém mikropočítači, jehož HW je příliš odlišný, mimochodem i pro tyto MCU existuje .Net Framework).
Veškeré ukázky a kódy budou psány ve vývojovém prostředí, pro změnu od společnosti Microsoft, Visual Studio. Konkrétně budu používat Visual Studio 2013, ale na verzi až tak nezáleží. Zásadnější rozdíl mezi verzemi je podpora novější/starší verze .Net Framework, což nás ale nemusí trápit. Výhodou je, že existuje Visual Studio v edici Express, která je po registraci zcela zdarma. Verze do 2010 měli omezení na jeden programovací jazyk (při stažení se volí). Od verze 2012 je Express omezení zda budeme programovat pro Desktop nebo nové prostředí Modern UI, které je součástí od Windows 8.
Obr. 2: Okno vývojového prostředí Visual Studio 2013 (pouze ilustrativní).
My samozřejmě budeme programovat pro klasický desktop a první část tutoriálu bude pouze konzolová. Až po získání nějakých zkušeností se v druhé části vrhneme na Visual část, kdy jednoduše můžeme navrhovat programy s grafickým prostředím. Předem upozorňuji, že tutoriál je pro začátečníky a nebude zde vysvětleno úplně vše nebo podrobně (navíc nejvíce zkušeností člověk nakonec získá až když si sám začne hrát :D).
Příště se podíváme na objekty, co nám přináší, co to vlastně je (teoreticky, jejich tvoření až jindy), základní struktura kódu a napíšeme si nějaký text do konzole :).