Rozcestník

Rozbor nejznámějších programovacích jazyků současnosti

V současné době se low-level programovací jazyky téměř nevyužívají. Jejich uplatnění je omezeno pouze na konečnou optimalizaci programu a vyžaduje znalost architektury, na které zkompilovaný program bude fungovat a velké množství času vysoce kvalifikovaného programátora. Jelikož je obojí finančně náročné, vyplatí se, až na výjimky, tuto optimalizaci přeskočit a zakoupit za takto ušetřené prostředky rychlejší hardware.

Tato ideje prostupuje nyní celým odvětvím a diktuje to, jakým způsobem se programuje a jaké jsou požadavky na současné programovací jazyky. Některé z těchto požadavků jsou:
      - Dostatečně rychlý výkon programu
      - Široká nabídka knihovních funkcí
      - Podpora různých architektur a operačních systémů

C

V roce 1999 byl mezinárodním sdružením pro standardizaci, ISO, publikován standard ISO/IEC 9899:1999, nazýván „C99.“ V tomto novém standardu byly definovány nové vlastnosti a datové typy.

Mezi hlavičkové soubory patřily: <stdbool.h>, <complex.h>, <tgmath.h>, and <inttypes.h>

V nich byly definované datové typy a vlastnosti
      - complex, umožňující reprezentaci komplexních čísel jednou proměnnou.
      - long long int, rozšiřující rozsah celočíselného datového typu na 64 bitů.
      - Pole s proměnlivou délkou.
      - Jednořádkové komentáře „// komentář“.
      - Rozšíření možnosti deklarace struktur a funkcí s proměnným počtem vstupních proměnných (variadická makra).

Ačkoliv byl tento standard publikován v roce 1999, tedy před více než 20 lety, je díky velké podpoře výrobců zařízení stále velmi populární.

V roce 2011 byl publikován novější standard, ISO/IEC 9899:2011, nazývaný „C11.“ Tento nový standard v mnohém navázal na dřívější C99, avšak rozšířil ho o další funkce, z nichž nejdůležitější je podpora paralelizace.

Standard „C17“ ISO/IEC 9899:2018, publikovaný v roce 2018, byl vydán jako oprava technikálií ve standardu C11.

V dnešní době se jazyk C, díky svému rozšířenému kompilátoru, používá především pro práci s PLC jejichž výrobci často poskytují právě jen kompilátor jazyka C.

C++

V Roce 1979 začal Bjarne Stroustrup (*30. prosince 1950), dánský programátor pracující ve společnosti Bell Labs v USA, pracovat na rozšíření jazyka C o třídy. Nové rozšíření jazyka, původně nazýváno „C s třídami“, mělo za cíl stát se implementací objektově orientovaného programování do nejrozšířenějšího jazyka té doby, tj. jazyka C.

Prvotní implementace spočívala v tom, že program napsaný v „C s třídami“ byl předkompilován kompilátorem „Cfront“ do standardního jazyka C, který se poté podruhé zkompiloval obyčejným C kompilátorem „CPre“. Tato implementace spočívající ve dvojí kompilaci byla opuštěna v roce 1993 poté, co začala být stálá implementace nových funkcí příliš omezována podmínkou kompatibility s kompilátory C.

Jazyk byl v roce 1983 přejmenován a obdržel název, který si uchoval do dnešního dne, a to „C++“. Tento jazyk také obdržel některé nové vlastnosti včetně jednořádkového komentování, const a virtuálních metod.

V roce 1985 vydal Stroustrup knihu nazvanou „The C++ Programming Language“. Byla to první publikace popisující dosud téměř neznámý jazyk C++. Stroustrupova kniha a její revize hráli roli dokumentace až do vydání standartu v roce 1998„ISO/IEC 14882:1998: Programming Language C++“

V roce 1990 vydal tentýž autor jazyka C++ IDE(integrované vývojové prostředí) se zabudovaným kompilátorem „Turbo C++“, to bylo později nahrazeno prostředími „Borland C++“ a „C++Builder“.

V roce 1993 představil rusko-americký programátor Alexander Stepanov(*16. listopadu 1950) svou knihovnu nazvanou „STL – Standard Template Library“ výboru pro standardizaci a v roce 1994 byla tato sada přidána do ISO standartu C++.

Jazyk byl standardizován poradním výborem v roce 1998 standardem ISO/IEC 14882:1998 neformálně nazývaným jako „C++98“.

V roce 2005 vydal uvedený výbor technickou zprávu, jejímž cílem bylo zlepšit stávající standard. Tuto zprávu se však podařilo zapracovat do standardu až v roce 2011 spolu se standardem C++11. V tomto standardu byla, mimo jiné, specifikována lepší podpora rozšíření, nové nástroje tříd, zlepšení podpory unionů a především paralelizace (stejně jako standard C11 pro jazyk C v témže roce).

Na tento standart C++11 navázal později standart C++20, vydaný v roce 2020, který však nepřinesl žádné výrazné změny. Na poslední schůzi k standartu C++20, konající se v Praze, se schválil rozsah verze C++23.

V roce 2023 byla publikována nová verze standardu ISO/IEC 14882, C++23. Tato verze se zaměřila na přidání knihoven pro podprocesy, modularizaci standardní knihovny a rozšířila nástroje pro komunikaci přes síť.

C#

C# (vyslovováno „C sharp“), byl vytvořen společností Microsoft v roce 2002. Jeho cílem bylo navázat na přesnosti jazyků C (rychlost výkonu), C++ (OOP) a Java (garbage collector, hlídání hranic polí) apod.

První specifikace jazyka C# ISO/IEC 23270:2003 (C Sharp 1.0) byla vydána v lednu 2002 a byla zahrnuta ve vývojovém prostředí Microsoft Visual Studio.

Python

Název „Python“ (česky „hroznýš“) byl převzat z názvu komediální skupiny „Monty Python“. Autorem jazyka byl nizozemský programátor Guido van Rossum (*31. ledna 1956), který skupině fandil

Na Pythonu se pracovalo od roku 1989. První verze nesla označení „Python 0.9.0“ a vydaná byla v roce 1991. Tato verze se jevila velmi skromná, co se týče funkcí, avšak i přesto zaujala mnoho programátorů ochotných vložit svůj volný čas do projektu.

V roce 1994 byla vydána druhá verze, „Python 1.0“, která přidala mnohé další funkce včetně podpory komplexních čísel.

Popularita Pythonu narůstala. „The National Institute of Standards and Technology“ (NIST) si v roce 1994 pozval Guida van Rossum, jako otce zakladatele jazyka, aby je naučil s jazykem pracovat. Tuto možnost Rossum zplna využil. Začal navštěvovat konference, na kterých propagoval nový jazyk, což výrazně urychlilo nárůst popularity tohoto jazyka.

V roce 1995, v době, kdy na projektu dobrovolně pracoval malý tým, se Guido jmenoval „Doživotním benevolentním diktátorem“1.

Jelikož se ukázalo to, že každý projekt potřebuje nejen svého vedoucího (diktátora) ale i vhodnou strukturu, vytvořil se krátký seznam „The Python Way“2, později nazývaný „Zen of Python“, který velmi volně a abstraktně popisoval cíle projektu. Příkladem těchto nejasných, avšak dostačujících cílů, je věta „Simple is better than complex“ a „If the implementation is hard to explain, it's a bad idea.“

Kolem roku 1998 začal Rossum také spolupracovat s iniciativou „Corporation for National Research Initiatives“. Rossumův dosavadní tým spolu s pomocí NIST vydal v roce 2000 verze jazyka 1.6 a 2.0. Tyto verze obsahovaly garbage collector a podporu Unicode.

Mezi lety 2005 a 2012 pracoval Guido van Rossum pro společnost Google. I díky neutuchající propagaci jazyka se stal Python velmi populárním uvnitř společnosti a vytvořila se kultura „Python where we can, C++ where we must“.

I z důvodu široké podpory z mnoha různých oborů vzniklo pro Python vytvořilo velké množství knihoven. Toto z něj dodnes dělá jeden z nejuniverzálnějších programovacích jazyků.

Velkým milníkem byla verze 3.0, vydaná v roce 2008, která nebyla zpětně kompatibilní s některými funkcemi verze 2.7 a pro upgrade bylo třeba přepsat kód, což se mnohým uživatelům nechtělo. I proto byla verze 2.7 podporována až do roku 2019.

V roce 2018 se Guido van Rossum vzdal svého postu „odchodem na trvalou dovolenou“. Klíčoví vývojáři projektu si zvolili představenstvo 5 lidí, kteří od roku 2019 projekt vedou.

Rust

Jazyk Rust byl vyvíjen programátorem Graydonem Hoarem od roku 2006. Hoare v té době pracoval pro společnost Mozilla, která později začala projekt podporovat, neboť chtěla jazyk využít pro vývoj prohlížeče „Servo“, jehož mnohé funkce byly později začleněny do Mozilla Firefox.

Původně se jazyk kompiloval přes vysokoúrovňový jazyk „OCaml“. V roce 2011 byl však vytvořen self-hosting kompilátor, napsaný v Rustu, který zkompiloval novou verzi Rustu. Ačkoliv se nejednalo o nic zvlášť užitečného, způsobila kompilace Rustu v Rustu nemálo pozdvižených obočí.

Původně používal jazyk garbage collector. Ten však v roce 2013 ustoupil novému principu „vlastnictví, půjčování a životností“, kde může každou hodnotu vlastnit jen jedna jediná proměnná. Z velké míry se však jazyk chová jako by garbage collector stále obsahoval.

V roce 2020, v souvislosti s finančními potížemi způsobeným pandemií Covid19, byl vývoj Rust za podpory Microsoftu, Googlu, Huawei, AWS a Mozilly převeden pod novou společnost „Rust Foundation“.

V roce 2021 oznámil Google podporu jazyka Rust v systému Android.

Výraznějšímu užití se však jazyku stále nedostalo.

Swift

Swift od roku 2014 vyvíjela společnost Apple jakožto primární jazyk pro aplikace na iPhone. Jazyk pochází ze zbytků jazyka Objective-C, jehož některé části pochází z kódu společnosti NeXT, kterou Apple koupil3.

V roce 2016 vyhrál jazyk první místo v anketě „Most Loved programming language“ na Stack Overflow Developer Survey 20154.

Používanost jazyka rychle rostla. Již v roce 2018 překonal popularitou Objective-C.

Java

Práce na jazyku Java započala ve společnosti „Sun microsystems“ v roce 1991 a byl vyvíjen jako jazyk vhodný pro malé zařízení.

Jméno „Java“ pochází, stejně jako logo jazyka, ze slangu pro kávu.

Jazyk má syntax podobný jazyku C++. Velikou předností jazyka Java byla možnost funkce na velkém množství zařízení. Později se pro tuto vlastnost Java ukázala jako velmi vhodná pro vývoj webových aplikací.

V roce 1993 byl vydán standard HTML a populární prohlížeč „Mosaic“. V zápětí na to v roce 1995 vydal James Arthur Gosling (*19. května 1955) „WebRunner“, prohlížeč schopný zobrazovat obsah HTML spolu s miniaplikacemi.

Největšího rozšíření se jazyku dostalo pro jeho schopnost být spuštěn na mnoha zařízeních. Ačkoliv je jazyk univerzální, je kvůli vysoké režii (garbage collector, memory management) relativně pomalý.

Javascript

Javascript je v současnosti jedna z nejpoužívanějších technologií webových stránek. Jazyk začal vznikat v roce 1994 z potřeby tehdy populárního prohlížeče „Netscape Navigator“ zobrazovat stránky, které dynamicky reagovaly na příkazy uživatele. Pro tento účel byla navázána spolupráce se Sun Microsystems a jejím jazykem Java, jejímž syntaxí je silně inspirována. První vydání v roce 1995 pod jménem JavaScript však vyvolalo zmatení. Mnozí si totiž jazyk spojovali s Javou.

V roce 1995 vydal Microsoft svůj vlastní prohlížeč „Internet Explorer“. Tento prohlížeč využíval Microsoftem vyvinutý „Jscript“, který však nebyl 100% kompatibilní s Javascriptem. Internet Explorer však získal dominantní postavení a Jscript se stal standardem.

V roce 2004 však Mozilla vydala prohlížeč Firefox, který byl založený na Netscape Navigatoru. Tento prohlížeč se stal populárním a umožnil JavaScriptu zůstat relevantní.

S vydáním Google Chrome v roce 2008 využívající technologií kompilace JIT(just in time) a překonávající svou rychlostí ostatní prohlížeče se však JavaScript stal dominantním.

Visual Basic (VB)

Visual Basic byl vydán v roce 1991 pro systém MS-DOS. Postupem času se s novými verzemi zlepšoval ale nedokázal vytvářet programy pro Windows. V roce 1995 se však Visual Basic ve verzi 4.0 integroval do verze Office 95 a umožnil vytváření maker.

Ačkoliv se tento jazyk neumisťuje na předních příčkách popularity nebo rychlosti je, díky implementaci do Microsoft Office, stále jedním z nejrozšířenějších.

Ruby

Nespokojenost s jazykem PERL přivedla japonského programátora Yukihiro Matsumoto (*14. dubna 1965) k vytvoření svého vlastního programovacího jazyka5.

Vydání první verze nového jazyka verze 0.95 se uskutečnilo v roce 1995. V následujících několika letech byly publikovány novější verze.

V roce 2000 byl v Japonsku jazyk Ruby rozšířenější než Python. Japonské sdružení pro standardizaci a později i ISO přijalo Ruby ve standardech „JIS X 3017“(2011) a „ISO/IEC 30170“(2012).

Ve verzi 2.2 byl přidán garbage collector a podpora Unicode 7.0.

Verze 3.0 byla vydána o Vánocích 2020 a dostala přezdívku Ruby 3x3, jelikož v některých aplikacích trojnásobně zrychlila běh programů oproti předchozí verzi 2.

1 https://www.artima.com/weblogs/viewpost.jsp?thread=235725

2 https://mail.python.org/pipermail/python-list/1999-June/001951.html

3 https://www.macrumors.com/2021/12/22/apple-acquiring-next-25th-anniversary/

4 https://insights.stackoverflow.com/survey/2015#tech-super

5 https://ruby-doc.org/docs/ruby-doc-bundle/FAQ/FAQ.html