Programovacie jazyky

Programovanie je nástroj na tvorbu aplikácií, ktoré potom využívajú jednotlivci alebo rovno celé organizácie či štátny aparát. Kedysi boli možnosti aplikácií značne vymedzené, ale s príchodom rôznych mobilných zariadení či senzorov sa tieto možnosti výrazne vylepšili. Poďme si teda povedať, čo sa dá všetko naprogramovať.

Základné aktivity
– vypísanie textu alebo vykreslenie farebných bodiek na obrazovku
– reakcia na stlačenie tlačítka na klávesnici alebo myške
– načítanie alebo zápis informácií na disk
– komunikácia s iným programom na inom počítači

Tieto základné stavebné bloky vedú k pokročilým aplikáciám ako sú
– hra, ktorá reaguje na šípky na klávesnici a na základe nich vykreslí ako sa postava v hre hýbe a kráča priestorom v hre
– katalóg, kde si zapíšeme každú prečítanú knihu či pozretý film, tieto dáta zapíšeme do interných súborov na disku, niekedy týmto súborom hovoríme databáza
– multiplayer hra, ktorá bude preposielať info po sieti všetkým hráčom ako sa má vykresliť ich postava a prostredie tak, aby všetci videli to isté ideálne v tom istom čase
– fitness aplikácia, ktorá beží na našom mobile a zbiera dáta zo senzora ako je prejdená vzdialenosť či tep srdca

Ako sa dostaneme z prvého zoznamu štyroch primitívnych aktivít k tak komplexným apkám z druhého zoznamu? Pravda je, že za tým stojí extrémne veľa práce. Bežne sa stáva, že na tvorbe aplikácie pracuje 10 ľudí po dobu 5 rokov, kým je schopná vydania a prípadného predaja. Často na nej menší tím pracuje ďalších 10 rokov, aby opravoval chyby a pridával novú funkcionalitu podľa požiadaviek zákazníkov.

Je extrémne mätúce pre začiatočníkov, prečo existuje toľko programovacích jazykov a ktorým smerom sa vlastne vybrať. Dôvod existencie týchto jazykov je podľa mňa hlavne v jednoduchosti použitia pre danú konkrétnu situáciu. Napríklad jazyk C sa momentálne hlavne používa v priemyselných zariadeniach ako sú CT skenery v zdravotníctve, v systémoch na kontrolu jadrových reaktorov, vo výťahoch, motoroch, žeriavoch. Sem-tam sa stretneme s nižšou úrovňou jazyka C, ktorá je známa ako Assembler a nie je pre programátora taká komfortná. Vyššiu úroveň zas označujeme ako C++ a ponúka programátorom komplexné systémy na tvorbu zložitých systémov s miliónmi riadkami kódu.

Ďalší často používaný jazyk je Python, ktorý je na vzostupe hlavne v akademickej sfére. Ponúka veľké množstvo hotových funkcií na komunikáciu s inými počítačmi, hotové grafické dialógy, grafiku v hrách, spracovanie obrazu, matematické výpočty či analýzu dát. V porovnaní s jazykom C je tu nepomerne väčšia báza týchto funkcií a mnohé veci by sme v céčku museli programovať sami na stovkách riadkov kódu, kdežto v Pythone je to len otázka pár riadkov kódu, typicky zavolanie funkcie z nejakej knižnice. Keby sme to porovnávali s ešte starším Assemblerom, tam prakticky neexistovali tieto rozšírenia a všetko si programátor musel pracne písať sám, čo by viedlo k tisícom riadkom kódu. Dôsledok dizajnu Pythonu a tejto obrovskej rozšíriteľnosti je fakt, že spravidla aplikácie napísané v Pythone nie sú tak dobre optimalizované a ich beh je výrazne pomalší ako aplikácie napísané v jazyku C. Preto mnohé firmy stále preferujú jazyk C pre mnohé aplikácie.

Doteraz spomínané jazyky (Assembler, C, C++, Python) spravidla slúžia na tvorbu aplikácií, ktoré bežia primárne v nejakom zariadení, vtedy sa tomu hovorí že je to embedded systém alebo na desktope, tj na vačom počítači, prípadne na serveri niekde na internete. S príchodom webových technológií prišla ale doba internetových browserov, ktoré rozdelili aplikácie na 2 časti, jedna serverová časť, ktorá beží na centrálnom počítači a druhá klientská časť, ktorá beží spravidla v browseri, teda internetovom prehliadači. Serverová aplikácia mohla byť kľudne spravená v jazyku C či Python a mala na starosti uchovávanie všetkých dát (skladovaných v databázi, čo môže byť kľudne ešte ďalší počítač). Klientská časť, tj stránka zobrazená v browseri priniesla úplne novú sadu jazykov. Začalo to jednoduchým HTML ktoré len definovalo ako má text na stránke vyzerať, pokračovalo to CSS, ktoré prinieslo pokročilé možnosti zobrazovania textu na stránke či animácie a skončilo to viac-menej jazykom JavaScript, ktorý to celé posúva ešte na vyšší level a prináša pokročilé programovacie konštrukcie známe z jazyka C.

S postupom času vznikali ďalšie a ďalšie jazyky, ktoré vždy prinášali nejaké nóvum. Microsoft vydal akýsi mix jazyka C a jazyka Java, ktorý nazval C# (čítaj sí šárp). C# je z môjho pohľadu veľmi pekný výtvor, ktorý prináša veľa technologických noviniek vhodných na prácu na webových či mobilných aplikáciách. Už skôr menovaný jazyk Javascript sa značne rozšíril a vzniklo niekoľko jeho rozšírení, znalosť niektorých z nich je dokonca požadovaná mnohými firmami. Ide o frameworky ako Angular, Vue JS či React JS, ktoré súperia z pohľadu webových technológií so starším jazykom PHP. V oblasti podnikových aplikácií ktoré vedie firma IBM, používa svoj systém SAP a svoj vlastný jazyk ABAP.

Určite som dnes nevymenoval všetky existujúce programovacie jazyky, ale dáva to akú-takú predstavu o ich šírke a možno aj smere, ktorým sa chcete vybrať. Ak vás to ťahá do sveta webových technológií, tak Javascript a jeho frameworky sú cesta, prípade C#. C# je takisto aktuálne veľmi používaný pri tvorbe hier v herných enginoch ako je Unity. Alebo ak chcete zarobiť veľa peňazí, môže byť aj ABAP vaša cesta. Tento jazyk ovláda malé percento programátorov a výška platov je zaujímavá.

V ďalšom dieli by som sa chcel podrobnejšie pozrieť na konkrétne príklady kódu v niektorom z menovaných jazykov, ešte nemám presnú predstavu na čo sa zameriam, ale isto to bude niečo zaujímavé 🙂


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *