• Shrnutí: Koncepce a typy programovacích jazyků. Seznam programovacích jazyků. Nízkoúrovňové a vysoké programovací jazyky

    Uživatelé Recoursia se často ptají, jaký programovací jazyk stojí za to se naučit. Pro ty, kteří jsou rozhodnuti s prvním programovacím jazykem, jsme připravili krátký návod. Rádi bychom poznamenali, že nepředstírá, že je vyčerpávající - je to jen velmi zběžný pohled na to, co dnes vývojáři dělají a který programovací jazyk může být první a který ne.

    Jeden z poměrně populárních webových programovacích jazyků, který mimochodem není vždy schopen zajistit svému operátorovi nejlépe vydělávající práci z hlediska mezd na běloruském trhu práce. Kurzy Ruby se pro zvládnutí prvního programovacího jazyka sotva vyplatí studovat, protože s vysokou mírou pravděpodobnosti se hledání zaměstnavatele zdrží, protože volná místa pro junoir Ruby se objevují poměrně zřídka.

    Před pěti nebo sedmi lety to bylo Delphi, které bylo standardním prvním programovacím jazykem – samozřejmě, protože jazyk Pascal, který je předchůdcem Delphi, byl vynalezen pro výuku programování pro školáky a studenty. Ale pro reálný život už se Delphi špatně hodí, protože programování na něm je znatelně podprůměrné a nové velké projekty v tomto jazyce nenajdete. Proto doporučit

    Vzhledem k tomu, že vývoj výpočetní techniky nestojí na místě, metody a programovací jazyky se neustále zdokonalují. Zvažte, jaké jazyky existují v moderní počítačové oblasti a jejich klasifikace.

    Obecná informace

    Seznam programovacích jazyků je tak široký a rozmanitý, že jeho úplné rozložení je téměř nemožný úkol. Mezi všemi jazyky lze rozlišit tři hlavní podskupiny:

    • stroj (nízkoúrovňové programovací jazyky);
    • strojně orientované (montéři);
    • nezávislý na stroji (vysoká úroveň);

    Mezi vývojáři moderního softwaru jsou nejoblíbenější následující hlavní programovací jazyky. Seznam je v sestupném pořadí podle oblíbenosti:

    1. Jáva.
    2. HTML.
    3. Visual Basic.
    4. Delphi.

    Tento seznam programovacích jazyků není zdaleka úplný, ale jedná se o nejoblíbenější jazyky, jejichž znalost může být od programátora vyžadována při ucházení se o zaměstnání. Všechny z nich jsou programovací jazyky na vysoké úrovni.

    Základy programování

    Nízkoúrovňové programovací jazyky jsou ty, které vyžadují zvážení typu a schopností procesoru. Operátoři a způsoby ovládání těchto programovacích jazyků jsou natolik blízké strojovému kódu, že vyžadují znalost struktury paměti osobního počítače a toho, jak k ní procesor přistupuje.

    Je těžké pojmenovat různé nízkoúrovňové programovací jazyky. Seznam bude stále zredukován na jeden dominantní jazyk – assembler. Protože vám umožňuje skládat programové kódy v notacích blízkých strojovému kódu, assembler se používá výhradně při psaní systémového softwaru, jako jsou operační systémy, ovladače zařízení, a při programování řídicích kódů pro mikroobvody.

    Nevýhodou těchto programovacích jazyků je, že se v nich píší programy, aby prováděly konkrétní úkoly na konkrétním zařízení, a jejich provádění je nemožné, pokud jsou přeneseny na jiný procesor.

    Vývoj aplikací

    Seznam programovacích jazyků pro tvorbu vlastních aplikací i pro vývoj a implementaci zakázkového softwaru má tisíce pozic. Jak víte, taková rozmanitost je způsobena skutečností, že určitý jazyk je vhodný pro řešení určitých problémů.

    Navzdory skutečnosti, že tyto programovací jazyky jsou definovány v samostatné skupině, jejich provádění probíhá ve strojovém kódu. K provádění hotového programu řádek po řádku a jeho převedení do speciálních programů se používají interpreti. Pokud se překlad programového kódu z jednoho jazyka do druhého provádí bez provádění příkazů, pak jsou do toho zapojeny kompilátorové programy. Obecně se programy určené k překladu psaných programů z jednoho formálního programovacího jazyka do jiného nazývají překladače.

    Podívejme se blíže na programovací jazyky na vysoké úrovni. Nebudeme sestavovat seznam, jednoduše popíšeme podrobněji o každém z nejoblíbenějších.

    SQL

    Specializovaný programovací jazyk je určen především pro práci se systémy pro správu databází a jejich programování. SQL se překládá jako „specializovaný“ Vzhledem k tomu, že trh s DBMS v posledních desetiletích exponenciálně rostl, není popularita tohoto jazyka překvapením.

    Existují různé názory na budoucnost tohoto jazyka. Jednoznačně se má za to, že technologie vytváření relačních databází byla nejlepší, ale její čas se krátí. Potřeba rozvoje v souvislosti s narůstajícími objemy zpracovávaných dat vede odborníky k myšlence, že lidstvo v budoucnu prostě potřebuje přejít od relačních technologií k po-relačním, avšak se zachováním kompatibility se stávajícími databankami.

    javascript

    Právem zaujímá druhé místo mezi programovacími jazyky na vysoké úrovni. Snadno se učí, snadno se používá. Zvýšená adaptabilita na programování ve srovnání s progenitorem vede k tomu, že s tímto jazykem pracují miliony lidí po celém světě. Objektově orientovaný jazyk založený na C++ je přizpůsoben k vytváření programů a aplikací, které dokážou zpracovávat obrovské toky informací ve specializovaných prostředích a zohledňovat specifika implementačního prostředí hotového produktu.

    Technologie Java je základem, který umožňuje v neomezeném množství rozšiřovat infrastrukturu podniků a společností, schopnou propojovat systémy různých kalibrů, od připojení k telefonní síti přes Wi-fi až po superpočítače.

    XML

    Tato technologie je potomkem HTML a je rozšiřitelným značkovacím jazykem. Je uzpůsoben pro tlumočení dokumentů. Provádí složité transformace a změny dokumentů. Jazyk XML se používá k přenosu a dočasnému ukládání dat při práci s různými relačními databázemi přes internet.

    XML již dosáhlo bodu, kdy může tvrdit, že je základní technologií pro budování podnikových sítí.

    Programování v ruštině

    Většina oblíbených programovacích jazyků používá anglickou slovní zásobu. Kromě nich však existují i ​​ruské programovací jazyky. Seznam v ruštině je malý a předmět, ve kterém se používají, je velmi specializovaný. Uveďme pár příkladů.

    • 1C: Enterprise. Celý systém určený k řízení organizace ve všech oblastech činnosti. V inzerátech na hledání práce často najdete „programátor 1C“.
    • Sloveso. Obdoba anglického Pascalu.
    • Robik. Specializovaný programovací jazyk určený k výuce dětí základům programování.
    • Rapír. Jazyk založený na procedurách.

    Jak vidíte, seznam programovacích jazyků je tak široký a rozmanitý, že jej nelze pokrýt žádnými klasifikacemi a seznamy. Pokud se rozhodnete pro programování na amatérské nebo profesionální úrovni, pak pamatujte, že programátor je kreativní povolání, které vyžaduje nejen znalosti, ale také fantazii, představivost, intuici a dokonce i trochu štěstí.

    Programovací jazyk- formální znakový systém určený k popisu algoritmů ve formě, která je vhodná pro umělce (například počítač). Programovací jazyk definuje soubor lexikálních, syntaktických a sémantických pravidel používaných při kompilaci počítačového programu. Umožňuje programátorovi přesně určit, na jaké události bude počítač reagovat, jak budou data ukládána a přenášena a jaké akce by se s nimi měly za různých okolností provádět.

    Od vytvoření prvních programovatelných strojů lidstvo vymyslelo více než dva a půl tisíce programovacích jazyků. Každým rokem se jejich počet doplňuje o nové. Některé jazyky používá pouze malý počet vlastních vývojářů, jiné se stávají známými milionům lidí. Profesionální programátoři někdy při své práci používají více než tucet různých programovacích jazyků.

    Tvůrci jazyků si koncept vykládají jinak. programovací jazyk. Mezi běžná místa, která většina vývojářů uznává, jsou následující:

    · Funkce: programovací jazyk je určen k psaní počítačových programů, které se používají k přenosu instrukcí do počítače pro provedení určitého výpočetního procesu a organizaci řízení jednotlivých zařízení.

    · Úkol: Programovací jazyk se liší od přirozených jazyků v tom, že je určen k přenosu příkazů a dat z osoby do počítače, zatímco přirozené jazyky se používají pouze pro komunikaci mezi lidmi. V zásadě lze zobecnit definici „programovacích jazyků“ – jde o způsob předávání příkazů, příkazů, jasný návod k jednání; zatímco lidské jazyky slouží také k výměně informací.

    · Provedení: Programovací jazyk může používat speciální konstrukce k definování a manipulaci s datovými strukturami a řízení procesu výpočtu.

    3. Fáze řešení problému na počítači.

    Nejúčinnější aplikace VT byla nalezena při provádění pracně náročných výpočtů ve vědeckém výzkumu a technických výpočtech. Při řešení problému na počítači stále patří hlavní role člověku. Stroj pouze plní své úkoly podle vyvinutého programu. Role člověka a stroje je snadno pochopitelná, pokud je proces řešení problému rozdělen do kroků uvedených níže.

    Formulace problému. Tato etapa spočívá ve smysluplné (fyzické) formulaci problému a stanovení konečných řešení.

    Konstrukce matematického modelu. Model musí správně (adekvátně) popisovat základní zákonitosti fyzikálního procesu. Sestavení nebo výběr matematického modelu z existujících vyžaduje hluboké porozumění problému a znalost příslušných částí matematiky.

    Vývoj mistrovství světa. Protože počítač může provádět jen ty nejjednodušší operace, „nerozumí“ zadání problému, a to ani v matematické formulaci. K jeho vyřešení je třeba najít numerickou metodu, která umožní redukovat problém na nějaký výpočetní algoritmus. V každém konkrétním případě je nutné zvolit vhodné řešení z již vyvinutých standardních.

    Vývoj algoritmů. Proces řešení problému (výpočetní proces) je zapsán jako posloupnost elementárních aritmetických a logických operací, které vedou ke konečnému výsledku a nazývá se algoritmus pro řešení problému.

    Programování. Algoritmus řešení problému je napsán strojově srozumitelným jazykem ve formě přesně definované sekvence operací - programu. Proces se obvykle provádí pomocí nějakého mezijazyka a jeho překlad provádí samotný stroj a jeho systém.

    Ladění programu. Zkompilovaný program obsahuje různé druhy chyb, nepřesností a opomenutí. Ladění zahrnuje ovládání programu, diagnostiku (vyhledávání a zjišťování obsahu) chyb a jejich odstraňování. Program je testován na řešení kontrolních (testových) úloh pro získání důvěry ve spolehlivost výsledků.

    Provádění výpočtů. V této fázi se připraví počáteční data pro výpočty a výpočet se provede podle odladěného programu. zároveň pro omezení ruční práce při zpracování výsledků lze široce využít pohodlné formy vydávání výsledků v podobě textových a grafických informací v podobě srozumitelné pro člověka.

    Analýza výsledků. Výsledky výpočtů jsou pečlivě analyzovány a je vypracována vědecká a technická dokumentace.

    4. K čemu jsou programovací jazyky?

    Proces činnosti počítače spočívá ve vykonávání programu, to znamená sady přesně definovaných instrukcí v přesně definovaném pořadí. Strojová forma příkazu skládající se z nul a jedniček udává, jakou akci má centrální procesor provést. To znamená, že abyste mohli počítači sdělit sekvenci akcí, které musí provést, musíte nastavit sekvenci binárních kódů pro odpovídající příkazy. Programy strojového kódu se skládají z tisíců instrukcí. Psaní takových programů je obtížný a únavný úkol. Programátor si musí zapamatovat kombinaci nul a jedniček binárního kódu každého programu a také binární kódy datových adres použitých při jeho provádění. Je mnohem snazší napsat program v nějakém jazyce, který je bližší přirozenému lidskému jazyku, a svěřit počítači úkol převést tento program do strojových kódů. Tak vznikly jazyky navržené speciálně pro psaní programů - programovací jazyky.

    Existuje mnoho různých programovacích jazyků. K vyřešení většiny problémů můžete použít kteroukoli z nich. Zkušení programátoři vědí, který jazyk je lepší použít pro řešení každého konkrétního problému, protože každý jazyk má své vlastní schopnosti, orientaci na určité typy úloh, svůj vlastní způsob popisu pojmů a objektů používaných při řešení problémů.

    Celou sadu programovacích jazyků lze rozdělit do dvou skupin: jazyky nízké úrovně A jazyky na vysoké úrovni.

    Mezi jazyky nízké úrovně patří jazyky assembleru (z angličtiny toassemble - sestavit, sestavit). Jazyk symbolických instrukcí používá pro pokyny symboly, které jsou snadno srozumitelné a snadno zapamatovatelné. Místo posloupnosti binárních kódů příkazů se zapisují jejich symbolická označení a místo binárních adres dat použitých při provádění příkazu se zapisují symbolická jména těchto dat, zvolená programátorem. Jazyk symbolických instrukcí je někdy označován jako mnemokód nebo autokód.

    Většina programátorů používá k psaní programů jazyky na vysoké úrovni. Stejně jako běžný lidský jazyk má i takový jazyk svou vlastní abecedu – soubor symbolů používaných v jazyce. Tyto symboly tvoří tzv. klíčová slova jazyka. Každé z klíčových slov plní svou funkci, stejně jako v jazyce, na který jsme zvyklí, mohou slova složená z písmen abecedy tohoto jazyka plnit funkce různých slovních druhů. Klíčová slova jsou navzájem spojena ve větách podle určitých syntaktických pravidel jazyka. Každá věta definuje určitou sekvenci akcí, které musí počítač provést.

    Jazyk na vysoké úrovni funguje jako prostředník mezi člověkem a počítačem a umožňuje člověku komunikovat s počítačem pro člověka známějším způsobem. Často takový jazyk pomáhá vybrat správnou metodu řešení problému.

    Před napsáním programu v jazyce vyšší úrovně musí programátor napsat algoritmusřešení problémů, tedy akční plán krok za krokem, který je potřeba dokončit k vyřešení tohoto problému. Proto se často nazývají jazyky, které vyžadují předběžnou kompilaci algoritmu algoritmické jazyky.

    5. Jaké jsou programovací jazyky

    1.1 Fortran

    Programovací jazyky se objevují od poloviny 50. let minulého století. Jedním z prvních jazyků tohoto typu byl jazyk Fortran (anglicky FORTRAN z FORmulaTRANslator - překladač vzorců), vyvinutý v roce 1957. Fortran se používá k popisu algoritmu pro řešení vědeckých a technických problémů pomocí digitálního počítače. Stejně jako první počítače byl tento jazyk určen především pro provádění přírodovědných a matematických výpočtů. Ve vylepšené podobě tento jazyk přežil až do naší doby. Mezi moderními jazyky na vysoké úrovni je jedním z nejpoužívanějších ve vědeckém výzkumu. Nejběžnější varianty jsou Fortran-II, Fortran-IV, EASICFortran a jejich zobecnění.

    1.2 ALGOL

    Po Fortranu se v letech 1958-1960 objevil jazyk Algol (Algol-58, Algol-60) (anglicky ALGOL z ALGOrithmicLanguage - algoritmický jazyk). Algol byl vylepšen v letech 1964-1968 - Algol-68. Algol byl vyvinut výborem, který zahrnoval evropské a americké vědce. Patří k jazykům vysoké úrovně a umožňuje snadno překládat algebraické vzorce do programových příkazů. Algol byl populární v Evropě, včetně SSSR, zatímco srovnatelný Fortran byl běžný v USA a Kanadě. Algol měl znatelný vliv na všechny později vyvinuté programovací jazyky, a zejména na jazyk Pascal. Tento jazyk, stejně jako Fortran, byl určen pro řešení vědeckých a technických problémů. Kromě toho byl tento jazyk využíván jako prostředek výuky základů programování – umění programování.

    Obvykle se termín Algol vztahuje k jazyku Algol-60, zatímco Algol-68 považován za samostatný jazyk. I když se jazyk Algol téměř přestal používat pro programování, stále zůstával oficiálním jazykem pro publikování algoritmů.

    1.3 Cobol

    V letech 1959 - 1960 byl vyvinut jazyk COBOL (angl. COBOL z COmmom Business Oriented Language - běžný obchodně orientovaný jazyk). Jedná se o programovací jazyk třetí generace určený především pro vývoj podnikových aplikací. Cobol byl také určen pro řešení ekonomických problémů, zpracování dat pro banky, pojišťovny a další instituce tohoto druhu. Grace Hopperová byla vývojářkou prvního jednotného standardu Cobol ( babička Cobola).

    Cobol je běžně kritizován za to, že je upovídaný a nepraktický, protože jedním z cílů tvůrců jazyka bylo vytvořit konstrukty co nejblíže angličtině. (Dodnes je Cobol považován za programovací jazyk, v němž je napsáno nejvíce řádků kódu.) Cobol měl zároveň na svou dobu vynikající zázemí pro práci s datovými strukturami a soubory, což mu dalo dlouhou životnost v podnikových aplikacích, alespoň v USA.

    1.4 Lisp

    Téměř současně s Cobolem (1959 - 1960) vytvořil Massachusetts Institute of Technology jazyk Lisp (angl. LISP z LIStProcessing - zpracování seznamu). Lisp je založen na reprezentaci programu systémem lineárních seznamů symbolů, které jsou navíc hlavní datovou strukturou jazyka. Lisp je po Fortranu považován za druhý nejstarší programovací jazyk na vysoké úrovni. Tento jazyk je široce používán ke zpracování symbolických informací a používá se k vytváření softwaru, který napodobuje činnosti lidského mozku.

    Jakýkoli program Lisp se skládá ze sekvence výrazy(formuláře). Výsledkem programu je vyhodnocení těchto výrazů. Všechny výrazy jsou psány jako seznamy- jedna z hlavních struktur Lisp, takže je lze snadno vytvořit prostřednictvím jazyka samotného. To vám umožní vytvářet programy, které upravují jiné programy nebo makra, což vám umožňuje výrazně rozšířit možnosti jazyka.

    Hlavním smyslem programu Lisp je „život“ v prostoru postavy: pohyb, kreativita, zapamatování, vytváření nových světů atd. Lisp jako metafora mozku, symbol, metafora signálu: „Jak probíhá biologická analýza signálů mozkem, jako vnější faktor – fyzikální a chemický vliv, který je pro tělo dráždivý, se obrací do biologicky významného signálu, často vitálního, který určuje veškeré chování člověka nebo zvířete, a jak dochází k separaci různých signálů na pozitivní, negativní a indiferentní, indiferentní signál je již integračním pojmem, jde o identifikaci znak skupiny, komplexní podněty, propojené společnou historií a kauzálními vztahy.V tomto komplexním systému podnětů je konstitučním prvkem i samotný signální podnět a za jiných okolností může jeho role připadat jinému podnětu z komplexu. v signálu je soustředěna celá minulá zkušenost zvířete nebo člověka.

    1.5 ZÁKLADNÍ

    V polovině 60. let (1963) vytvořila Dartmouth College (USA) jazyk BASIC (angl. BASIC z Beginner's Allpurpose Instruction Code - všestranný symbolický instrukční kód pro začátečníky). Postupem času, jak se začaly objevovat další dialekty, se tomuto „původnímu“ dialektu začalo říkat Dartmouth BASIC. Jazyk byl založen částečně na Fortranu II a částečně na Algolu-60 s dodatky, aby byl vhodný pro sdílení času a později pro zpracování textu a maticovou aritmetiku. BASIC byl původně implementován na sálovém počítači GE-265 s podporou více terminálů. Na rozdíl od všeobecného přesvědčení to byl v době svého vzniku kompilovaný jazyk.

    BASIC byl navržen tak, aby studenti mohli psát programy pomocí terminálů pro sdílení času. Vznikl jako řešení problémů souvisejících se složitostí starších jazyků. Byl určen pro „jednodušší“ uživatele, které ani tak nezajímala rychlost programů, ale prostě možnost využít počítač k řešení svých problémů. Díky jednoduchosti jazyka BASIC s ním začíná svou programátorskou cestu mnoho začínajících programátorů.

    1.6 Pevnost

    Koncem 60. – začátkem 70. let se objevil jazyk Forth (anglicky FOURTH – čtvrtý). Tento jazyk se začal používat v úlohách ovládání různých systémů poté, co jeho autor Charles Moore v něm napsal program určený k ovládání radioteleskopu arizonské observatoře.

    Řada vlastností, jmenovitě interaktivita, flexibilita a snadnost vývoje, činí Forth velmi atraktivním a efektivním jazykem v aplikovaném výzkumu a při tvorbě nástrojů. Vestavěné řídicí systémy jsou zřejmé oblasti použití tohoto jazyka. Uplatnění nachází také při programování počítačů s různými operačními systémy.

    1.7 Pascal

    Jazyk Pascal, který se objevil v roce 1972, byl pojmenován po velkém francouzském matematikovi 17. století, vynálezci prvního aritmetického stroje na světě, Blaise Pascalovi. Tento jazyk vytvořil švýcarský informatik Niklaus Wirth jako jazyk pro výuku metod programování. Pascal je univerzální programovací jazyk.

    Rysy jazyka jsou striktní typizace a dostupnost strukturálních (procedurálních) programovacích nástrojů. Pascal byl jedním z prvních takových jazyků. Jazyk by měl podle N. Wirtha přispívat k disciplíně programování, proto jsou spolu se silným psaním v Pascalu minimalizovány případné syntaktické nejednoznačnosti a samotná syntaxe je intuitivní již při prvním seznámení s jazykem.

    Jazyk Pascal učí nejen správně napsat program, ale také jak správně vyvinout metodu řešení problému, zvolit způsoby reprezentace a uspořádání dat použitých v problému. Od roku 1983 byl jazyk Pascal zaveden do učebních osnov informatiky na amerických středních školách.

    1.8 Ada

    V roce 1983 vznikl jazyk Ada pod záštitou amerického ministerstva obrany. Jazyk je pozoruhodný v tom, že ve fázi kompilace lze odhalit mnoho chyb. Kromě toho je podporováno mnoho aspektů programování, které jsou často ponechány na operačním systému (paralelnost, zpracování výjimek). V roce 1995 byl přijat jazykový standard Ada 95, který rozvíjí předchozí verzi, přidává k ní objektovou orientaci a opravuje některé nepřesnosti. Oba tyto jazyky nejsou široce používány mimo armádu a další rozsáhlé projekty (letectví, železniční doprava). Hlavním důvodem je obtížnost zvládnutí jazyka a poměrně těžkopádná syntaxe.

    Bezprostředními předchůdci Ady jsou Pascal a jeho deriváty, včetně Euclid, Lis, Mesa, Modula a Sue. Byly použity některé koncepty z ALGOL-68, Simula, CLU a Alphard.

    Vývojáři Ady se zabývali především:

    Spolehlivost a provozní kvality programů;

    Programování jako druh lidské činnosti;

    účinnost.

    V tabulce. 1 ukazuje hlavní charakteristiky jazyka Ada z pohledu objektového přístupu.

    stůl 1

    1.9 Xi

    V současné době je mezi programátory oblíbený jazyk C (C je písmeno anglické abecedy). Jazyk C pochází ze dvou jazyků, BCPL a B. V roce 1967 Martin Richards vyvinul BCPL jako jazyk pro psaní systémového softwaru a kompilátorů. V roce 1970 Ken Thompson použil B k sestavení raných verzí operačního systému UNIX na počítači DEC PDP-7. V BCPL i B nebyly proměnné rozděleny na typy - každá datová hodnota zabírala v paměti jedno slovo a zodpovědnost za rozlišování celých a reálných čísel padla zcela na bedra programátora. Byl vyvinut jazyk C (na základě B) od Dennise Ritchieho z Bell Laboratories a byl poprvé implementován v roce 1972 na počítači DEC PDP-11. C se proslavilo jako jazyk operačního systému UNIX. Dnes jsou téměř všechny hlavní operační systémy napsány v C nebo C++. Po dvou desetiletích je C k dispozici na většině počítačů. Je nezávislý na hardwaru. Koncem 70. let se C vyvinulo v to, co nazýváme "tradiční C". V roce 1983 vytvořil americký národní výbor pro standardy počítačového a informačního zpracování jednotný standard pro tento jazyk. Tento jazyk má bohaté vybavení, umožňuje vám psát flexibilní programy, které využívají všechny možnosti moderních osobních počítačů.

    1.10 Prolog

    Další jazyk, který je považován za jazyk budoucnosti, byl vytvořen na počátku 70. let skupinou odborníků z univerzity v Marseille. Toto je jazyk Prolog. Svůj název získal podle slov „Programování v jazyce LOGICKY“. Tento jazyk je založen na zákonech matematické logiky. Prolog je stejně jako jazyk Lisp využíván především ve výzkumu v oblasti softwarové simulace lidského mozku. Na rozdíl od jazyků popsaných výše tento jazyk není algoritmický. Patří mezi tzv popisný(z angličtiny deskriptivní - popisný) - popisné jazyky. Popisný jazyk nevyžaduje, aby programátor vyvinul všechny fáze úkolu. Místo toho musí programátor v souladu s pravidly takového jazyka popsat databázi odpovídající řešenému problému a sadu otázek, které je třeba zodpovědět pomocí dat z této databáze.

    V posledních desetiletích se programování objevilo a dostalo se mu významného rozvoje objektově orientovaný přístup. Jedná se o metodu programování, která napodobuje skutečný obraz světa: informace použité k řešení problému jsou reprezentovány jako soubor vzájemně se ovlivňujících objektů. Každý objekt má své vlastní vlastnosti a chování. Interakce objektů se provádí pomocí předávání zpráv: každý objekt může přijímat zprávy od jiných objektů, ukládat informace a zpracovávat je určitým způsobem a naopak odesílat zprávy. Stejně jako ve skutečném světě si objekty udržují své vlastnosti a chování pohromadě a některé z nich zdědí od nadřazených objektů.

    Objektově orientovaná ideologie se používá ve všech moderních softwarových produktech, včetně operačních systémů.

    První objektově orientovaný jazyk Simula -67 byl vytvořen jako prostředek k simulaci činnosti různých zařízení a mechanismů. Většina moderních programovacích jazyků je objektově orientovaná. Mezi nimi jsou nejnovější verze jazyka Turbo - Pascal , C ++, Ada a další.

    V současné době široce používané systémy vizuální programování Vizuální Základní , Vizuální C ++, Delphi a další. Umožňují vám vytvářet komplexní balíčky aplikací s jednoduchým a pohodlným uživatelským rozhraním.

    1.11 Java

    Od roku 1995 se rozšířil nový objektově orientovaný programovací jazyk Java orientovaný do počítačových sítí a především do Internetu. Syntaxe tohoto jazyka se podobá syntaxi C++, ale tyto dva jazyky mají jen málo společného. Java je interpretovaný jazyk: má interní reprezentaci (bytecode) a interpret pro tuto reprezentaci, které jsou již implementovány na většině platforem. Tlumočník zjednodušuje ladění programů napsaných v jazyce Java, zajišťuje jejich přenositelnost na nové platformy a adaptabilitu na nová prostředí. Umožňuje vám vyloučit dopad programů napsaných v jazyce Java na jiné programy a soubory dostupné na nové platformě, a tím zajistit bezpečnost spouštění těchto programů. Tyto vlastnosti jazyka Java umožňují jeho použití jako hlavního programovacího jazyka pro programy distribuované po sítích (zejména po internetu).

    1.12 Object Pascal

    Object Pascal byl vytvořen lidmi z Apple Computer (někteří z nich byli členy projektu Smalltalk) ve spolupráci s Niklausem Wirthem, tvůrcem jazyka Pascal. Object Pascal je znám od roku 1986 a je prvním objektově orientovaným programovacím jazykem, který byl zahrnut do Macintosh Programmer's Workshop (MPW), vývojového prostředí pro počítače Macintosh od Apple.

    V tomto jazyce neexistují žádné metody tříd, proměnné třídy, vícenásobná dědičnost a metatřídy. Tyto mechanismy jsou záměrně vyloučeny, aby se jazyk snadno naučil pro začínající „objektové“ programátory.

    V tabulce. 2 ukazuje obecnou charakteristiku Object Pascalu.

    Tabulka 2. Objekt Pascal.

    V posledních letech se tento jazyk stal velmi populárním díky systému Borland Delphi.

    1.13 Vizuální objektově orientovaný návrhový systém Delphi.

    Vzhled Delphi nemohl zůstat bez povšimnutí mezi mnoha uživateli počítačů. Hodnocení odborníků, kteří studují možnosti tohoto nového produktu Borland, jsou obvykle podbarvena nadšenými tóny. Hlavní výhodou Delphi je, že jsou zde implementovány nápady na vizuální programování. Vizuální programovací prostředí mění proces vytváření programu v příjemnou a snadno pochopitelnou konstrukci aplikace z velké sady grafických a strukturálních primitiv.

    Systém Delphi umožňuje řešit mnoho problémů, zejména:

    · Vytvářejte kompletní aplikace pro Windows různého druhu: od čistě výpočetních a logických až po grafické a multimediální.

    · Rychle vytvořte (dokonce i pro začínající programátory) profesionálně vypadající rozhraní okna pro jakoukoli aplikaci.

    Vytvářejte výkonné systémy pro práci s místními a vzdálenými databázemi

    · Vytvořte systémy nápovědy (soubory .hlp) pro vaše aplikace a další. ostatní

    Delphi je extrémně rychle rostoucí systém. První verze - Delphi 1.0 byla vydána v únoru 1995. A poté byly každoročně vydávány nové verze.

    Každá další verze Delphi doplňovala tu předchozí Většina verzí Delphi je k dispozici v několika verzích: Standard - standardní, Professional - profesionální, Klient / Server - klient / server, Enterprise - vývoj databází tematických oblastí. Možnosti se liší především v různých úrovních přístupu k systémům pro správu databází. Poslední možnosti, Client/Server a Enterprise, jsou v tomto ohledu nejvýkonnější.

    Delphi je kombinací několika základních technologií:

    Vysoce výkonný kompilátor strojového kódu

    Objektově orientovaný komponentový model

    Vizuální (a tedy i vysokorychlostní) vytváření aplikací ze softwarových prototypů

    · Škálovatelné nástroje pro vytváření databází

    Struktura obrazovky v prostředí Delphi.

    Po vyvolání Delphi ve Windows se objeví několik oken (obr. 1):

    hlavní okno,

    formulářové okno,

    Okno Object Inspector,

    Okno stromu objektů,

    Okno programového kódu.


    Obr. 1. Struktura obrazovky v prostředí Delphi.

    Uvažujme grafické menu systému Delphi, umístěné v horní části obrazovky, tvořené ikonami.Na levé straně grafického menu je panel nástrojů. Nástroje provádějí některé příkazy hlavního menu - takováto duplikace se často praktikuje v prostředí nástrojů Tento panel obsahuje zejména tlačítko pro uložení projektu na disk, tlačítko pro otevření projektu, tlačítko pro spuštění programu ke spuštění.

    Další částí grafické nabídky je paleta komponent uspořádaná jako sady ikon. Kolekce sad tvoří knihovnu vizuálních komponent (VCL). Existuje několik kategorií komponent, z nichž každá je spojena s vlastní kartou. Pomocí palety komponent vytvoříme instanci komponent (nebo objektů) na formuláři.

    Chcete-li umístit objekt do formuláře, musíte "kliknout" na odpovídající tlačítko palety a poté kliknout do okna formuláře: objekt bude vložen na určené místo ve formuláři - instance komponenty vybrané typ.

    Okno Object Inspector je okno, které zobrazuje vlastnosti buď formuláře, nebo objektu umístěného na formuláři. V našem případě je aktuální komponentou formulář, takže na obrázku okno vlastností zobrazuje vlastnosti formuláře.

    Okno vlastností má dvě záložky – Vlastnosti a Události, pomocí kterých lze v okně získat řádky (pole) pro nastavení, respektive nastavení vlastností komponenty (tedy objektu nebo formuláře) a její reakce na různé události. Vlastnost definuje atribut komponenty, jako je velikost tlačítka nebo font štítku. Událostí se rozumí například akce, jako je kliknutí na tlačítko nebo zavření okna.

    Okno stromu objektů se objevilo ve verzi 6 a je navrženo tak, aby vizuálně zobrazovalo vztahy mezi jednotlivými objekty umístěnými na aktivním formuláři nebo v aktivním datovém modulu.

    Okno programového kódu je určeno pro vytváření a editaci programového textu. Zpočátku obsahuje minimum zdrojového textu.

    Projekty Delphi. Projekt Delphi se skládá z formulářů, modulů, nastavení projektu, zdrojů atd. Všechny tyto informace jsou uloženy v souborech. Mnoho z těchto souborů automaticky generuje Delphi, když vytváříte aplikaci. Zdroje, jako jsou bitmapy, ikony a tak dále, se nacházejí v souborech, které získáte z jiných zdrojů nebo které vytvoříte pomocí mnoha nástrojů a editorů zdrojů, které máte k dispozici. Kromě toho kompilátor také vytváří soubory.

    Soubory vytvořené během procesu návrhu jsou uvedeny v tabulce. 3.

    Hlavní částí aplikace je soubor projektu (.dpr) obsahující kód Object Pascal, který spouští spouštění programu a zajišťuje inicializaci dalších modulů. Vytváří a upravuje jej Delphi automaticky během vývoje aplikace. Název přidělený souboru projektu během procesu ukládání se stane názvem spustitelného souboru.

    Soubor projektu (.dpr) Tento textový soubor se používá k ukládání informací o formulářích a modulech. Obsahuje příkazy pro inicializaci a spouštění programů pro spuštění.
    Soubor modulu (.pas) Každý formulář, který vytvoříte, má modulový textový soubor, který se používá k uložení kódu. Můžete vytvářet moduly, které nesouvisejí s formuláři. Mnoho funkcí a procedur Delphi je uloženo v modulech.
    Soubor tvaru (.dfm) Toto je binární nebo textový soubor vytvořený společností Delphi pro ukládání informací o formulářích. Každý soubor formuláře má odpovídající soubor modulu (.pas)
    Soubor nastavení projektu (.dfo) Tento soubor ukládá nastavení projektu.
    Zdrojový soubor (.res) Tento binární soubor obsahuje ikonu používanou projektem a další zdroje
    Záložní soubory (.~dpr, .~dfm, .~pas) Toto jsou záložní soubory pro soubory projektu, formuláře a moduly. Pokud je v projektu něco beznadějně poškozeno, můžete přípony těchto souborů příslušně změnit a vrátit se tak k předchozí neporušené verzi.
    Konfigurační soubor Windows (.dsk) Soubor ukládá konfiguraci všech oken vývojového prostředí.
    Spustitelný soubor (.exe) Toto je spustitelný soubor aplikace. Jedná se o samostatný spustitelný soubor, který nevyžaduje nic jiného, ​​pokud nepoužíváte knihovny obsažené v knihovnách DLL, OCX atd.
    Soubor objektu modulu (.dcu) Toto je zkompilovaný soubor modulu (.pas), který je propojen do konečného spustitelného souboru.

    Tabulka 3. Soubory vytvořené během procesu návrhu.


    Aktuálně byla vydána již 7. verze systému Delphi. V rekordním čase se stal jedním z nejpopulárnějších programovacích systémů na světě. Mnoho vývojářů po celém světě je pevně odhodláno používat Delphi jako nástroj k vytváření vysoce efektivních klient-server aplikací.

    Programovací evoluční strom

    Obrázek 1 Vývojový strom programování

    6. Bibliografie:

    1. I.T. Zaretskaya, B.G. Koloďažnyj, A.N. Gurzhiy, A.Yu. Sokolov. Informatika 10-11 třída. - K .: "Fórum", 2001

    1. Struktura obrazovky v prostředí Delphi (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

    2. Patrikeev Yu. N. "Objektově orientovaný design" (http://www.object.newmail.ru/oop1.html)

    3. S. Nemnyugin, L. Percolab "Learning TurboPascal" - Petrohrad: Peter, 2002.

    2. Kh.M. Deitel. Jak programovat v S. - M .: "Binom", 2000

    3. Internetová stránka: http://ru.wikipedia.org/wiki/LISP

    Každý, kdo se rozhodne zvládnout základy procesu tvorby počítačových programů, si klade otázku, jaké jsou dnes nejoblíbenější programovací jazyky a které je nejlepší se naučit. A pokud je velmi snadné odpovědět na první otázku, pak bude muset student sám hledat odpověď na druhou na základě svých plánů a potřeb.

    Pojďme se rychle podívat na nejoblíbenější programovací jazyky, abyste si mohli vybrat ten, který vás láká, a začít se ho učit.

    programování?

    Před rozebráním hlavních programovacích jazyků a jejich popisem je nutné rozebrat samotný koncept.

    Programovací jazyk je formální znakový systém, který se používá k psaní počítačových programů. Jako každý jiný jazyk má svá vlastní lexikální, sémantická a syntaktická pravidla.

    Přidělte jazyky nízké a vysoké úrovně programování. K dnešnímu dni se používá hlavně ten druhý.

    Programovací jazyky vysoké a nízké úrovně

    Nízkoúrovňový programovací jazyk má strukturu blízkou struktuře.V tomto případě se příkazy neoznačují nulami a jedničkami, ale pomocí mnemotechnického zápisu. Nejznámějším nízkým programovacím jazykem je jazyk symbolických instrukcí.

    Práce s kterýmkoli z jazyků vyžaduje vysokou kvalifikaci, porozumění, psaní programů navíc zabere spoustu času. Zároveň pomocí nízkých můžete vytvářet malé, ale zároveň efektivní programy. Začínajícím programátorům se nedoporučuje, aby se s nimi seznamovali.

    Programovací jazyky na vysoké úrovni se vyznačují přítomností sémantických struktur pro popis operací. Jejich studium zabere mnoho času a jejich aplikace v praxi vyžaduje pozornost a pochopení základních struktur a pravidel syntaxe a slovní zásoby. Ale zároveň vám znalost jazyků na vysoké úrovni umožňuje vytvářet velké, barevné, multifunkční projekty v rekordním čase.

    Vysoká úroveň zahrnuje Pascal, Java, C, C++, C#, Delphi a mnoho dalších. Používají se k psaní softwaru a aplikačních programů.

    Nejoblíbenější programovací jazyky

    Jaké jsou dnes nejoblíbenější programovací jazyky?

    V posledních letech jsou za nejoblíbenější a nejžádanější považovány Java, C, C++, Python, C#, které patří mezi špičkové programovací jazyky. Tvoří základ moderních programů a používají se při psaní jakéhokoli velkého projektu. S těmito jazyky pracuje více než 70 % programátorů. Předpokládá se, že v příštích 10 letech po nich bude stále stejná poptávka jako dnes.

    Ruby, PHP, JavaScript jsou považovány za neméně populární. Většina odborníků se na ně zaměřuje.

    Obecně, bez ohledu na popularitu, každý více či méně seberespektující specialista musí znát alespoň několik jazyků různých úrovní. To je způsobeno tím, že většina velkých projektů je vyvíjena v různých jazycích. Například některé moduly jsou napsány pomocí C, jiné jsou vyvíjeny v Javě a další jsou napsány v Delphi.

    C, C++ a C#

    Začněme s rodinou C.

    Jazyk C je sestaven a vyvinut v 70. letech. Na jeho základě byly následně vytvořeny jazyky jako C ++ a C #, Java.

    C++ je výkonný jazyk navržený pro vytváření jak nízkoúrovňových utilit a ovladačů, tak velmi působivých aplikací a softwarových balíků.

    C# je moderní objektově orientovaný jazyk založený na C a C++. Má systém bezpečného typu. Jedním z jeho charakteristických rysů je, že je také velmi podobný dalšímu oblíbenému programovacímu jazyku - Javě.

    Jednou z nevýhod jazyka je, že umožňuje vytvářet aplikace pouze pro operační systém Windows a navíc je velmi těžký, což znamená, že programy v něm napsané zabírají hodně místa.

    Lze poznamenat, že v mnoha ohledech jsou C, C++ a C# programovací jazyky pro začátečníky. Po jejich zvládnutí si můžete být jisti, že učení nového jazyka vám zabere minimum času.

    Můžete se s nimi seznámit a psát své první aplikace ve speciálním prostředí Borland nebo Visual Studio.

    JavaScript

    JavaScript je jazyk s objektově orientovanými schopnostmi. Vyvinutý v roce 1996 a dnes jeden z nejpopulárnějších. Jazyk se používá hlavně ve webovém skriptování a funguje ve velkých prohlížečích, jako je Internet Explorer, Firefox, Opera. Úzce souvisí i s HTML a CSS, takže než se to začnete učit, musíte si osvojit základy těchto jazyků.

    Stojí za zmínku, že navzdory podobnosti názvu jsou JavaScript a Java dva zcela odlišné jazyky.

    Tento jazyk je vhodný pro ty, kteří jsou zaměřeni na tvorbu prohlížečů a skriptů, aplikací a doplňků k nim. Pokud plánujete vytvářet vlastní stránky, musíte ho také lépe poznat.

    Jáva

    Vzhledem k nejpopulárnějším programovacím jazykům nelze nezmínit Javu. Jedná se o objektově orientovaný programovací jazyk, který se používá od roku 1995. Je velmi lehký a běží na jakémkoli stroji Java jakékoli architektury. Slouží k vývoji aplikací pro Android a iOS.

    Krajta

    Python - jehož hlavním úkolem je zvýšit produktivitu vývojáře, učinit kód čitelnějším. Má malý seznam syntaktických konstrukcí a velmi působivou standardní knihovnu funkcí. Vývoj jazyka začal v 90. letech a pokračuje dodnes. Slouží k vývoji různých projektů, rozšíření a integrace dříve vyvinutých aplikací.

    Základy jazyka Python se lze naučit jak jako začátek programování, tak jako druhý doplňkový jazyk.

    rubín

    Ruby je programovací jazyk na vysoké úrovni, který obsahuje části Perl, Smalltalk, Eiffel, Ada a Lisp. Používá se od roku 1995. Hlavní předností jazyka je jeho jednoduchost a flexibilita. Vhodné jak pro psaní malých aplikací, tak pro vývoj seriózních programů.

    jazyk PHP

    PHP je poměrně populární skriptovací jazyk určený pro tvorbu webových aplikací. Poměrně často je také zařazen do seznamu „Programovacích jazyků pro začátečníky“ a doporučen ke studiu.

    S ním vytvoříte kvalitní webové aplikace ve velmi krátkém čase. Jazyk má jednoduchou a srozumitelnou strukturu, která vám umožňuje se jej naučit během několika dní.

    Závěr

    Zkontrolovali jsme nejoblíbenější programovací jazyky, jejichž studium vám pomůže v budoucnu úspěšně vytvářet vaše projekty a vydělávat peníze jako programátor. Neexistuje shoda na tom, který jazyk studovat, ale zároveň odborníci poznamenávají, že je žádoucí znát několik programovacích jazyků, protože to dále rozšíří pole činnosti a usnadní práci na různých týmových projektech.

    Zalina 13. ledna 2016 v 15:42

    Různé programovací jazyky a jejich oblasti použití. Přednáška v Yandexu

    • Blog společnosti Yandex,
    • Vývoj webových stránek ,
    • programování,
    • Průmyslové programování

    Náš první letošní příspěvek jsme se rozhodli věnovat zcela základnímu tématu, o kterém zazněla přednáška na Malém SHAD. Navštěvují ji středoškoláci, kteří se zajímají o techniku, proto ta specifičnost prezentace – přednáška zaujme především ty, kteří s programováním teprve začínají a přemýšlí, jakým směrem se dále rozvíjet. Pro ně má Yandex kurz „Úvod do programování (C++)“, který lze absolvovat na platformě Stepic.org.

    Přednášející Michail Gustokashin - kurátor akademických programů na Yandex, ředitel Centra studentských olympiád Fakulty informatiky HSE. Michail připravil desítky vítězů a laureátů celoruských programovacích olympiád.

    Přednáška vypráví o tom, jaké programovací jazyky jsou, čím se liší, jak se objevily a které jsou lepší a které horší. Na začátku si povíme něco o historii jazyků - jak se objevily, jak lidé začali programovat, jak se vše vyvíjelo, co se děje nyní. Druhá část se dotkne toho, pro jaké úkoly se který jazyk hodí, jak si „vybrat svůj oblíbený jazyk a užívat si života“. Lektor také něco málo povypráví o tom, jak se to vše podle jeho názoru naučit a následně získat práci.

    Jako vždy je pod střihem podrobný přepis přednášky, abyste se mohli orientovat v jejím obsahu.

    Historie programovacích jazyků

    Začněme úplně od začátku. Na začátku počítače neměly ani klávesnice! To znamená, že všechno bylo velmi špatné - neměli ani klávesnici, ani obrazovku, měli děrné štítky (to jsou takové drobnosti s dírami nebo bez dírek). Podle toho tam byly buď ty čepy naražené, nebo tam svítily světlem. Pokud je tam díra (nebo naopak ne) - znamenalo to nulu nebo jedničku. A programy se v té době psaly pomocí strojových kódů – každá operace v počítači (sčítání, odčítání, některé složitější operace) měla nějaký strojový kód. Lidé si sami vybrali tento kód z talíře, všemožné adresy v paměti, všechno to vyklepali rukama a vrazili do čtečky – a bylo to zváženo. Samozřejmě, že práce programátora tehdy asi nebyla moc zajímavá - dělat díry - a s rozvojem vědy a techniky samozřejmě začali vymýšlet nejrůznější „zajímavější“ věci. Například assembler (Assembler), který už život trochu usnadnil.

    No a jak si usnadnil život? Místo toho, abychom si pamatovali, že pro příkaz existuje nějaký „magický“ kód, byly použity nejrůznější slova podobná „lidské“ angličtině – nějaké add nebo mov – no, a pak byly vypsány registry nebo paměťové oblasti, proměnné, se kterými tyto provádět operace. Ale je jasné, že to obecně vyžadovalo i dostatečně velké mentální úsilí, abychom měli na paměti, v jakém registru máme co leží, kde jsou proměnné a co se obecně děje. Proč se to stalo? Protože počítače byly "hloupé" a nedokázaly pochopit nic "chytřejšího". Sestavení strojového kódu z assembleru ve skutečnosti také vyžaduje čas a paměť (v té době ho samozřejmě nebylo dost).

    Postupně se ukázalo, že je velmi obtížné vyvinout tak rozsáhlé komplexní programy. Produktivita programátora v těchto příkazech byla extrémně nízká - to znamená, že psal několik řádků denně (smysluplné) a každý řádek nedělal nic zvláštního - nějaké jednoduché aritmetické operace. A lidé chtěli, aby se jazyky mnohem více podobaly lidskému jazyku, zejména angličtině, aby bylo jednodušší a pohodlnější psát programy. A jedeme!

    Staré a mrtvé jazyky

    Jedním z prvních jazyků byl Fortran. Mimochodem, vytloukalo se to i na děrných štítcích - na vytloukání programů Fortranu existovaly speciální děrné štítky. Ale když si teď vezmeš tenhle Fortran - podle mě je to dokonce někde mezi 50-60 lety. se objevil - a zkuste na to něco napsat, bude to pro vás velmi nepříjemné, to vám garantuji! Moderní Fortran je stále živý, ale již zcela odlišný od toho, co byl předtím.

    Jiné jazyky - teď napíšu jednu věc, o které jste pravděpodobně slyšeli, ale pouze na nejrůznějších akcích, kde se mluví o historii programování - to je COBOL. Byl to jazyk pro psaní obchodních aplikací. Co jsou obchodní aplikace? Nějaké transakce v bankách, něco jiného, ​​to vše bylo napsáno v Cobolu. Nejsme samozřejmě moc oblíbení. Myslím, že programátora Cobolu v Moskvě najdete jen velmi obtížně. A někde ne v Moskvě – s ještě většími obtížemi. Ale překvapivě ještě před 10 lety byla více než polovina veškerého kódu napsaného lidstvem napsána v Cobolu. A doteď značná část všech bankovních transakcí probíhá pomocí programů na tom napsaných (COBOL) a lidé na to stále něco píší.

    Existuje také „vtipný“ jazyk, jmenoval se Algol (68. verze, která charakterizuje rok svého vzniku). Je to algoritmický jazyk. Obecně tam něco věděli, ale teď nás moc nezajímá, co umí. A tím může být náš exkurz do starověku a relativně nepoužívaných jazyků završen a můžeme přejít k tomu, co stále žije (a aktivně žije).

    Staré, ale živé jazyky

    Algol byl vynalezen v Evropě a Fortran se používal hlavně ve Státech - nejsou tam žádné velké rozdíly. Jaký trend je vidět? Zpočátku bylo všechno těžké a abyste mohli psát, museli jste být téměř inženýr, elektroinženýr, abyste pochopili, kde jsou které kontakty sepnuté, a něco jiného na programování. Pak bylo také nutné sedět s listy a počítat vzpomínku, hlídat ji. A postupně se pro programátora vše zjednodušovalo, zjednodušovalo, zjednodušovalo a dále ještě usnadňovalo – co nejméně, aby člověk myslel, co nejvíce dělal automaticky. Kolem konce tohoto období (přednášející ukazuje na Algol a Kobol) se začínají objevovat jazyky, které v jistém smyslu „přežily“ dodnes.

    ZÁKLADNÍ. Snad na to ještě někteří něco píšou, alespoň jsem viděl, že v některých institucích učí v QBasicu - takové modré okénko, kde je napsáno „1989“. Obecně platí, že „s mocnými a hlavními“ životy! Byl koncipován jako jazyk pro neprogramátory. V té době byl programátor taková velmi specializovaná profese. A tady vám řeknou: "Tady máme skvělý Basic jazyk a každý rozumný člověk si v něm vezme a napíše program - je to snadné." Opět platí, že BASIC a moderní BASIC je obrovský rozdíl. Všechny tyto řádky od 10, všelijaké GOTO a další hrůzy - s moderním BASICem už nemají nic společného a dokonce ani s BASICem 89. ročníku mají pramálo společného.

    Další úsměvnou historkou je jazyk Pascal, široce známý v univerzitních kruzích, především v Rusku a v zemích bývalého Sovětského svazu. Překvapivě byl a stále je používán jako vyučovací jazyk. Ve zbytku světa je méně častý, ale také živý a zdravý. Existuje takový člověk Wirth - tady je to vědec, teoretik. Zúčastnil se diskuse o Algolu, nelíbilo se mu, co se stalo, a přišel s vlastním jazykem - Pascalem. A pak to vzala společnost Borland (a předtím mnoho dalších společností - konkrétně Apple) a všechno zničila. Měl krásnou teorii, štíhlou – „všechno bude v pořádku“ – a vzali ji a nacpali do ní to, co lidé potřebují k práci. No, nedopadlo to tak hezky, jak chtěl.

    A nakonec, . C vynalezli inženýři. Jestliže Pascal vynalezl vědec, pak C vynalezli Kernighan a Ritchie, pracovali jako inženýři v Bell. Jak se to stalo? V té době v těchto jazycích (přednášející ukazuje na Fortran, COBOL, Algol) nebylo možné napsat nic systémového. Co je to "systémové"? Například operační systém, nějaké ovladače, něco jiného. Tyto jazyky byly určeny pro matematické výpočty, pro obchodní výpočty, pro všechno. A vše ostatní bylo napsáno v assembleru. Některé jazyky byly, nyní jsou mrtvé, to znamená, že jazyk C se neobjevil okamžitě z Assembleru, ale prostřednictvím některých přechodných věcí.

    Jaký je smysl? Kernighan a Ritchie si rádi hráli na hračku Asteroids - letí vesmírná loď a jsou tam asteroidy, střílí na ně a ony se rozpadnou. Měli server, kde hráli, ale bylo tam hodně lidí a hračka se zpomalila. A někde ve své kanceláři zjistili, že mají nějaký počítač, který nikdo nepoužívá. Byl tu ale problém – měla jinou architekturu a hra byla napsána v assembleru.

    Samozřejmě ho přepsali, dokonce přidali nějaké funkce, které na něm lze hrát. To je ale přivedlo na myšlenku, že přepisovat pokaždé na novou architekturu není moc chytré. A rozhodli se napsat jazyk na vysoké úrovni, který by byl vhodný pro systémové programování, to znamená, ve kterém by bylo možné spravovat paměť, ve kterém by bylo možné pochopit, kde co leží a jak se k těmto částem paměti dostat. . A tak se objevil jazyk C, který měl obrovský dopad na vše, co následovalo. Všechny (přednášející ukazuje na Algol, Fortran a další zmíněné jazyky) měly velký vliv, ale C - správně, ano ...

    V souladu s tím to byl hlavní jazyk v Unixu, operačním systému, který byl tehdy ještě populárnější než nyní. A kolem 80. let byla situace něco takového (přednášející ukazuje v Basicu, C a dalších zmíněných jazycích). Předpokládejme, že tohle všechno už s námi pomalu vymřelo (přednášející maže zmínku o Assembleru, Fortranu a Algolu) ... A v 80. letech se počítače zmenšovaly, chytřely, zlevňovaly a lidé chtěli nejrůznější podivnosti, aby žít ještě lépe, žít ještě zábavněji.

    Jazyky z 80. let

    Jednou z prvních zvláštností byl jazyk C++. Jazyk C má obrovské množství nedostatků (no prostě jeden obrovský) - můžete v něm dělat všechno, včetně střelby do nohy, střelby do nohy fikcí, do druhé nohy, střelby jednou nohou dovnitř druhá noha, obecně - to, co chcete dělat. Ale zároveň jsou tam některé architektonické věci dost ztížené – opět jako v Assembleru musíme mít přehled o tom, kde jsme, jakou a jakou paměť jsme alokovali; neustále někde tato paměť "teče" - to znamená, že jsme alokovali, zapomněli smazat, smazali špatnou věc, vylezli z paměti, obecně - shráblo spoustu problémů.

    C++ byl původně vytvořen jako sada rozšíření jazyka C, která by usnadnila vývoj. V té době přišlo do módy objektově orientované programování a lidé usoudili, že vše lze popsat jako hierarchii, to znamená, že máte míč (abstraktní), zdědíte z něj fotbalový míč, volejbalový míč, další abstraktní míč. Tehdy bylo v módě, že „teď vše píšeme formou nějaké hierarchie a všechno bude v pořádku, život se zlepší, všechno bude v pořádku a hotovo“. C++ v jistém smyslu implementovalo tento objektový přístup – nebyl to první objektově orientovaný programovací jazyk, ale stal se docela populární a začaly se v něm objevovat nejrůznější funkce. C++ si přitom zachovalo téměř úplnou kompatibilitu (v té době) s jazykem C, program napsaný v C byl v 99 % případů úspěšně zkompilován jako C++ a dokonce fungoval stejně. Cílem bylo usnadnit migraci z C do C++.

    Kromě objektového přístupu (v C++) se poměrně rychle objevila standardní knihovna šablon (STL). Myslím, že ve škole ti, kteří ještě studovali Pascal, zjistili, že za prvé nemáte vestavěné třídění (ve starověkém, modrém Borland Pascalu, nyní je již v moderních verzích) - existuje příklad (zdroj) třídění , lze jej zkopírovat a vložit. Ale pokud zde chcete třídit celá čísla, chcete zde reálná čísla a zde chcete řetězce, které lze mezi sebou porovnávat, museli jste napsat tři různá řazení, která dělají úplně to samé, jen mají různé datové typy. To není příliš dobré a šablony, které se v C ++ okamžitě neobjevily, tento problém značně usnadnily. To znamená, že jste měli abstraktní program, který úspěšně třídil něco, co se dalo vzájemně porovnávat.

    Skriptovací jazyky z 90

    Čas se ale nezastavil, v 80. letech se událo mnoho zajímavého. Jenže někde na přelomu 80. a 90. let se počítače staly tak dobrými, že už bylo možné dělat velmi podivné a velmi neefektivní věci. Konkrétně se jednalo o skriptovací jazyky, které nebyly kompilovány do strojového kódu, ale interpretovány. BASIC byl někdy také interpretován, ale tyto skriptovací jazyky byly určeny hlavně pro zpracování textu - například Perl, Python (tenkrát to nebylo příliš slavné), PHP, Ruby - to jsou skriptovací jazyky ​​že v jednom nebo do určité míry stále žijí (všem se podařilo objevit před rokem 2000, dokonce mnohem dříve).

    Pojďme si je trochu projít, protože to jsou specifické věci a nyní se používají na spoustě míst. co je to za nápad? Pokud nezkompilujeme, můžeme povolit mnohem více. Program se například může podívat na svůj kód a nějak ho použít; ví, co se v ní děje, a díky tomu můžete dělat spoustu zajímavých věcí.

    Perl byl navržen pro zpracování textu - v té době už bylo v počítačích tolik paměti, že jste tam mohli vložit nějaký text a udělat s tímto textem něco užitečného (například počítat slova, nějaká hledat). Ale podle mého názoru to bylo navrženo lidmi, kteří byli tak trochu blázni, protože je o tom takový vtip: "Jakákoli znaková sada napsaná v Perlu je správný program." Podle mě se na to dá jen psát, nedá se to číst. Když se podívám na kód v Perlu a snažím se něčemu porozumět, nerozumím ničemu. Možná, kdybych ho znal lépe, něco bych pochopil, ale jak jsem slyšel od těch lidí, kteří to ještě umí, říkají, že je to jednodušší přepsat. To znamená, že programy jsou krátké a opravdu snadněji se přepisují, než zjišťovat, co tam je, a opravovat to.

    Zhruba v té době, v polovině 90. let, se objevil internet. Nejdřív to byla pošta, stránky se statickým HTML, ale lidé tam chtěli přidat nějakou dynamiku, aby se vše dělo dynamicky, daly se vyplňovat nějaké formuláře, dělat knihy hostů, něco jiného. V souladu s tím to vyžadovalo určitý druh interakce, přišli s protokolem, jak to interaguje, a co je nejdůležitější, s generováním těchto statických (podmíněně) stránek, které budou uživateli „vyplivnuty“ v reakci na jeho požadavek.

    Obecně se nic jiného než Pearl v té době nehodilo. Psát v čistě C nebo C++ handleru byl špatný nápad. A pro nedostatek lepšího v té době (a dostatečně dlouho), Pearl byl jazykem pro vývoj webových aplikací. Samozřejmě, že rozsah nelze srovnávat s tím, co se děje nyní.

    PHP se objevilo jako ... náhodou. Jeden člověk s tím docela rychle přestal - udělal si nějakou vlastní stránku, měl nějakou knihu návštěv, něco jiného, ​​něco. A napsal sadu některých maker pro Perl, která vypadala jako C, protože věděl, jak používat C, jednoduše proto, že to pro něj bylo tak pohodlné. A nazval to Osobní domovská stránka. Sdílel to a řekl: "Lidé, podívejte se, co jsem napsal, tady je všechno mnohem jasnější než na Perlu a můžete to upravit." A lidem se to líbilo.

    Pak tu věc nechal. Obecně lze říci, že díky tomu začalo toto PHP žít a postupem času se stalo mnohem populárnějším než Perl. Ale toto jeho "porodní trauma" (nápad jako soubor maker pro Pearl) si s ním zahrálo dost krutý vtip. Jazyk je zvláštní. To znamená, že se to vyvíjelo samo, nikdo to nenavrhoval, nikdo neřídil vývojový proces (ani společnost, ani nikdo), ale bylo mnoho skupin, z nichž každá pila, co se jí líbilo. Tím pádem se tam funkce volají jinak, není tam ani styl, vše je přes podtržení, obecně i tak, nastavení je tu a tam a jak to všechno bude fungovat, není moc jasné. Ale můžete si sednout a psát v PHP za dvě hodiny, protože si to myslel.

    Python a Ruby: Ruby je nyní méně populární, Python je tak nějak lépe "hoblovaný", o tom později. Je jasné, že v té době to byly (přednášející ukazuje na Perl, Python, Ruby, PHP) vysoce specializované jazyky pro vysoce specializované účely. V obecném případě v té době nikdo nenapsal žádné systémové programování, žádnou obchodní logiku a nyní to moc nedělá.

    Kompilované jazyky z 90

    Půjdeme přibližně ve stejný čas, ale jiným směrem. C++ se u nás tehdy používalo skoro na všechno, co bylo potřeba napsat ne pro web, ne pro zpracování textu, ale právě pro aplikace, pro operační systémy, pro hračky - obecně pro cokoliv. Ale C++ je strašidelný jazyk, opravdu. Proč? Protože za prvé zdědil všechny problémy C kvůli zpětné kompatibilitě. Tam jste se stále mohli zabít milionem různých způsobů, stejnými, které byly v C (přirozeně byly přidány nové způsoby v C ++). Přitom pokud vše dobře a správně napíšete, jak to zamýšleli autoři C++, tak už se samozřejmě nedalo zabít starými céčkovými způsoby a zdá se, že tam bylo jich méně. Měl však velmi zvláštní vlastní objektový model. Rozdělení programu na moduly, na kousky, nějak přišlo z C (pokud víte, jak napsat include v C nebo C++ - ve skutečnosti to bylo koncipováno jako pouhé vložení textu knihovny do vašeho programu, v důsledku toho, když napíšete hromadu include, máte vše - pokud je to „primitivní“, jako to bylo na úplném začátku - vše se vloží do jednoho souboru a pak se to všechno strašně dlouho kompiluje, protože to jde několikrát Stejný Pascal, Virtovský, byl v tomto ohledu mnohem promyšlenější, pozdější verze jsou ještě lepší.

    Obecně má C++ spoustu nedostatků. Kvalifikace programátora musela být vysoká, aby mohla psát v C++, a takoví programátoři byli drahí (jak školení, tak něco jiného, ​​to znamená, že je těžké najít programátory na trhu, musí hodně platit, no, obecně o to nejde... ). A naše počítače počítají stále rychleji, zlevňují, lidé si kupují nové počítače pro sebe a chtějí více aplikací, více hraček pro své telefony, obecně více radosti.

    Tak se zrodila Java. Existuje také docela úsměvná historka o tom, jak tento jazyk dostal své jméno. Existují programátoři, pijí kávu neustále a v té době bylo v módě pít kávu, která rostla na ostrově Jáva. Jazyk byl koncipován jako jazyk pro vestavěná zařízení, zejména pro kávovar. Tak vznikl název...
    Co u ní obecně začalo, co v ní bylo dobrého a proč si získala velkou oblibu? Nejprve se úplně zbavili Sishnoiova dědictví. Žádné ukazatele, tím méně způsoby, jak si ustřelit část těla a všechno rozbít. Za druhé, představili mnohem novější nápady, pokud jde o objektový model - to znamená, že C++ se objevil mnohem dříve než Java a používal archaičtější, "divoký" objektový model. No a tady (přednášející ukazuje na Javu) už to bylo tenkrát promyšlenější a teoreticky lidé přemýšleli, aplikovali v praxi a vše udělali mnohem cool.

    A konečně třetí. Naše programy v Javě nebyly sestaveny do strojového kódu, ale do kódu pro virtuální stroj. To znamená, že jste měli virtuální stroj (VM) JVM - Java. Vaše programy byly sestaveny do jakési mezilehlé reprezentace a poté s pomocí tohoto stroje již byly provedeny. co to dalo? Za prvé se zpomalil, za druhé žral paměť strašnou silou, za třetí byl přenosný kamkoli (teoreticky) - i do kávovaru, dokonce i do mlýnku na kávu, dokonce i do počítače, dokonce i do mobilu. Na jednu stranu je to dobře, to znamená, že jste právě napsali implementaci virtuálního stroje a pak všude spouštíte své Java programy. Ale na druhou stranu je špatné, že v té době bylo na stejném telefonu málo paměti, byl nízký výkon a to vše se navíc začalo otupovat a zpomalovat.

    Ale ani to není to hlavní, pro co byl jazyk obecně vynalezen. Jazyk Java byl vynalezen, aby snížil požadavky na kvalifikaci programátorů. To znamená, že horší programátoři mohou psát dobré programy v Javě, protože vám nedovolí psát špatné programy - neexistují prostředky, jak psát programy špatně. Tam můžete psát jen dobré programy. Tedy v chápání tvůrců jazyka.

    To znamená, že pokud v C, v C++, v Pythonu, na čemkoli můžeme vypěstovat nějakou strašlivou smetiště z našeho projektu, kde máme všechno pomíchané, běžící hodiny a ještě něco. Na Jávě je také možné chovat popelnici, ale k tomu už musíte vynaložit určité úsilí. To znamená, že ve výchozím nastavení to není „skládka odpadu“, ukazují se další problémy, že se tam něco zdědilo, zdědilo - obecně se deset nepříliš smysluplných ukazuje jako jedna smysluplná linie. Ale možná takový středně zkušený programátor dokáže napsat docela kvalitní kód.
    Už jsme skoro na konci. U nás se jako další objevilo .Net (dotnet) a konkrétně nás zajímá C # (téměř to samé [přednášející ukazuje na Javu], tedy rozdíly v detailech, pokud si mezi nimi vyberete - podívejte se, kde zaplatíte více peněz).

    A ještě jedna věc - JavaScript. Nemá nic společného s jazykem Java, objevil se ve stejném roce - slovo bylo módní, licencovali ochrannou známku k použití.

    Na co je nejdůležitější si dát pozor? (Přednášející kreslí šipky z C++ do Javy, .Net, C#, JavaScript a PHP). Chcete-li napsat jednoduchý program v jednom z těchto jazyků a v mnoha dalších - pokud znáte C ++, obecně nepotřebujete znát nic jiného - vezmete a napíšete v C ++ a pak na začátku přidáte dolary , něco jiného udělá maličkosti a na čemkoli vám to začne fungovat (lektor ukazuje na jazyky, ke kterým byly šipky z C++ přiřazeny). To znamená, že jsou si v některých jednoduchých věcech extrémně podobní. Pokud řešíte nějaké školní problémy, vzdělávací problémy, něco jiného (nenavrhujete velký projekt - máte jeden soubor, který čte čísla, zobrazuje čísla v konzoli, dělá něco jiného), tak mezi těmito jazyky není téměř žádný rozdíl . Je vidět, že JavaScript a PHP jsou specializované, všechno mají trochu jinak. A zde (přednášející ukazuje na Javu a C #) je rozdíl velmi malý.

    Od té doby se objevily všechny možné další zajímavosti, ale není jasné, zda budou žít nebo úspěšně zemřít. Co teď, pro jaké úkoly to používají?

    Výběr jazyka v závislosti na úkolu

    Předpokládejme, že stojíte před úkolem napsat ovladač pro grafickou kartu. Jaký jazyk dnes použijete? (Křičte z publika: Java!) Proč… Java je skvělá, ale proč ne v Ruby nebo PHP? (Přednášející mluví sarkasticky.)

    nízkoúrovňové programování

    Pokud píšete něco nízkoúrovňového, pak je nejlepší volbou C, ale slyšel jsem (ale neviděl), že se k tomu používá C++. Ale moc tomu nevěřím, protože v C můžete jasně ovládat - protože jste dali tolik bajtů paměti, znamená to, že jich bude tolik. A jak je v C++ (STL) implementován řetězec? No, nějak implementováno. A nakonec nevíme, jak a co se tam stane, možná nám dojde paměť na naší grafické kartě nebo se stane něco jiného. Proto C stále žije a neumírá, stále existují takové úkoly programování systému - napsat operační systém, napsat ovladače, napsat něco jiného - C je na to skvělé. Navíc se nyní objevují všemožná zařízení (Internet věcí slibuje, že to brzy přijde), která žijí na baterie (a samozřejmě jich budou miliony, všechno bude ovíjeno tímto internetem věcí) , musí být velmi levné a spotřebovávají velmi málo elektřiny. V souladu s tím zde budou 2 KB paměti, procesor na 5 kHz a samozřejmě nebude možné v blízké budoucnosti našroubovat nějaký virtuální stroj nebo skriptovací jazyk - což znamená, že budete muset psát něco v C. A dokonce i nyní, například výpočty na grafické kartě (OpenCL nebo nějaká jiná technologie) - nepřicházejí s novým jazykem pro psaní programů pro ně - dělají C s určitými velkými omezeními. Jen proto, že lidé už vědí jak, proč se učit něco nového? Formálně je to pravděpodobně také v jistém smyslu C.

    Webové programování

    Řekněme, že chcete napsat nový Facebook (sociální síť). Na co to napíšeš? (Z publika se mluví o HTML a CSS.) HTML, CSS je design a my chceme, aby tam bylo možné přidávat fotky, spřátelit se, zanechávat komentáře.

    Pro skriptovou část – tedy to, co se bude dít na straně klienta – je to JavaScript. Navíc se někdy JavaScript vygeneruje v jiném jazyce a odešle (stane se, že se skript vygeneruje ... protože je někdy jednodušší zpracovat některé změny v logice).

    Překvapivě je to napsané v PHP – a Facebooku a mnoha dalších velkých projektech. Samozřejmě jsem si musel psát své vlastní věci, aby to stále fungovalo dobře, a ne jako dělané, ale udělali to. V principu je jedno v čem píšeš, ale Perl nedoporučuji. Tady a teď samozřejmě nikdo nepíše pro web nic od začátku. Každý píše nějaký rámec nebo něco jiného. Internetový obchod? Stáhli jsme si framework pro internetový obchod – to je vše, napsali jsme internetový obchod.

    Obchodní programování

    Dále chcete napsat nějakou nudnou bankovní aplikaci. Nebo máte například někoho, kdo prodává sim karty? Možná jste si někdy koupili telefon nebo tak něco a řekli vám: „Tady systém visí, nemůžeme nic dělat.“ Na co takovou žádost napíšete? (Výkřik publika o Pythonu) Takové věci nemůžete psát v Pythonu, co jste?! V Pythonu by nemělo být napsáno nic pro podnikání. Proč? Protože když něco píšete v Pythonu, nemůžete v procesu psaní najít významný počet chyb. Python je dynamicky typován všemi možnými způsoby a obecně tam můžete skrýt chybu tak, že se objeví v takové situaci, že ani nechápete, co tam ti pokřivení uživatelé udělali, že se vám všechno porouchalo. To znamená, že je lepší psát v Pythonu pro sebe, malé skripty - rozumíte tomu, co se tam děje a co se dělá. No, nebo něco, co vám nevadí vyhodit: chcete něco uvést před konkurencí, tak co když se to pokaždé porouchá. Napsali jste v Pythonu a to je vše - zachytili jste trh. A pokud něco píšete delší dobu, například nějakou bankovní aplikaci (aby schvalovala půjčky, něco jiného) - napíšete to v Javě. Protože tam jde o vážnou věc, papíry, peníze, doklady, ještě něco, ale nesmí se to tak pokazit, aby se všechno rozbilo, jinak se lidi urazí - peníze jim odešly a nikam nedosáhly, protože máte v určité chvíli se řetězec změnil v číslo nebo naopak. Takže to znamená, že metodicky bereš a píšeš v Javě, píšeš... No, nebo na .Netu se takové situace v zásadě také stávají. Tam samozřejmě můžete také narazit na problémy, ale pravděpodobnost je stále o něco nižší.

    Programování pro armádu, letecký průmysl

    A teď si představte, že se rozhodli poslat vás na Měsíc v raketě. Čemu byste dali přednost při psaní kódu, který ovládá motory rakety? Pojďme se podívat. To asi (přednášející ukazuje na Perl, Python, PHP, Ruby) nestojí za to - zpomaluje se, děje se něco jiného, ​​no, obecně bych nesouhlasil s létáním na takové raketě. V C++? Abych byl upřímný, ani bych ne, protože v C++ je příliš mnoho způsobů, jak se zabít. Když jste někde ve vesmíru, není to moc dobré.

    Možná v Javě? Všechno se tam zdá být docela spolehlivé a architektura je dobrá, žádné divoké typy, žádné přetečení paměti navíc. Řekněme, že nastal ten nejzásadnější okamžik a naše Java se rozhodla, že za nás bude sbírat odpadky. Musíme přistát, zpomalit a ona říká: "Ne, odpadky jdou." Obecně ani moc ne.

    Abych byl upřímný, byl bych raději, kdyby byl tento program napsán v Pascalu. Samozřejmě nemám Pascala rád, ale v takových věcech by to bylo velmi cool.

    Použití více jazyků pro vývoj softwaru najednou

    Co by se mělo říci o moderních jazycích obecně. Nyní mnoho projektů nežije v jednom jazyce, to znamená, že některé z nich žijí v jednom jazyce, některé v jiném a některé více ve třetím. Například, pokud máte nějakou webovou aplikaci, která zpracovává divoké množství informací, přístupy na disky (dokonce ani do databází, ty jsou tak obrovské, že i tam již zapsaná databáze se nedá ani stáhnout) jsou pravděpodobně zapsány v některých low-level C, zapisovat na disk divoce rychle a tak dále. Přirozeně nemá cenu psát celý projekt v C. Možná existuje nějaká přechodná logika napsaná v Javě, která volá funkce C pro rychlé volání. No a frontend (to, na co se uživatel dívá), už je samozřejmě na něčem napsaný, na nějakých skriptech, na tom, co přímo spouští prohlížeč (JavaScript). A to vše spolu žije a úspěšně interaguje.

    Při vývoji některých aplikací, i těch velkých, někdy lidé dělají co? Vezmou to a napíší prototyp v Pythonu (jak to všechno bude fungovat), načrtnou to, přemýšlejí o nějaké architektuře. Psaní na něm je opravdu velmi rychlé - hodili prototyp, experimentovali s ním a řekli: „Páni! To je tak hustý! A kompletně přepsaný. Zdálo by se, že práci udělali dvakrát, což trvalo dvakrát déle (dobře, jeden a půl). Ale ne! Často se ukáže, že tento způsob není špatný, protože pokud okamžitě napíšete do něčeho, například v Javě, a pak se rozhodnete: „Ne, pojďme refaktorovat, úplně změnit architekturu a tak,“ strávíte 10krát více času. I takové věci existují a žijí.

    Podmínky úspěchu jakéhokoli programovacího jazyka

    Nyní si promluvme o tom, proč některé dobře vypadající jazyky nepřežily nebo nežily ve velmi omezeném prostoru. Když Wirth viděl, co špatné společnosti Apple, Borland a všechno, co udělaly s jeho Pascalem, přišel s ještě lepším jazykem - Oberon. Bylo to prostě divoce minimalistické - to znamená, že tam bylo velmi málo příkazů (Řetězce? Proč potřebujeme řetězce? Vytvoříme pole znaků!). No, něco se mu nepovedlo, do té míry, do jaké to šlo.

    Ještě jedna věc. Americká armáda je požádala, aby vyvinuli skvělý jazyk, ve kterém vše funguje a vše lze napsat. Výsledkem byl poměrně obludný jazyk Ada, ve kterém se však stále něco píše, ale opět - pouze pro armádu.

    Co je za problém? Proč některé jazyky jako Python, které zpočátku žádná společnost nepodporovala, převzaly trh. PHP, které je také špatně navržené, se také ujalo a ukořistilo trh (většinu) samo. A všelijaké miliardy dolarů byly investovány (přednášející ukazuje na Adu) a nikam nešly, nic se nedělo. S čím to souvisí? Je to proto, že kolem těchto jazyků neexistuje žádná infrastruktura. To znamená, že jazyk může být vynikající, ale pokud neexistuje žádná dokumentace, pokud neexistuje komunita, která by mohla odpovídat na otázky (na Stack Overflow), a konečně, což je nejdůležitější, pokud neexistuje velká počet knihoven, jazyk nestřílí. To znamená, že jste například chtěli napsat web na Oberon. A co to je, proč ne? A problém začíná... Nemůžete nastavit svůj webový server na Oberonu tak, aby jej lehce otestoval, nemůžete připojit žádné knihovny, protože na Oberonu nejsou. A to vše se děje přes jakési berličky, síly jdou stranou a celkově plivete a píšete své stránky v čistém C místo Oberonu. A ty jazyky, které jsou schopny používat knihovny z jiných jazyků, žijí dobře. Stejný Python v těch místech, kde se zpomaluje. Obecně platí, že v C jsou napsány všechny možné standardní věci jako třídění a něco jiného a on (Python) ví, jak s nimi pracovat.

    Java má také nativní rozhraní Java. Toto je v podstatě C, to znamená, že tam (podle mého názoru chtějí vždy zakázat, ale zdá se, že ještě nezakázali) tyto jazyky mohou interagovat s existujícími knihovnami (hlavně Cs). A díky tomu berou a pracují. Chápete myšlenku, kterou se vám snažím sdělit, že? Nepište v těch jazycích, které nevědí, jak připojit C-knihovnu. No, pokud chcete použít něco skvělého. No a postupně získávají (jazyky) jakousi infrastrukturu. A žijí dobře.

    Programovací jazyk a kariérové ​​poradenství

    Nyní si promluvme o tom, jak porozumět tomu, co v životě chcete. Co se stane ze skvělých věcí? Můžeš dělat nějaké systémové programování, že? Je skvělé počítat tyto bajty, chcete spustit kvadrokoptéry, nějaké kamery, udělat něco jiného. Pak je C pravděpodobně vaše volba.

    Pokud chcete psát, možná ne ty nejzajímavější aplikace v životě, ale je pro vás skvělé je navrhovat, přemýšlet o tom všem a vydělávat spoustu peněz za to, že většinu času sedíte a nudíte se (za tohle musíte zaplatit pokud jste dobří, chybíte mi), tady jsou - Java, .Net. Jdeš pracovat do nějaké banky, píšeš, chodíš do práce v devět v bílé košili, máš dobrý plat a píšeš podle doporučení nejlepších Java vývojářů, oveček .Net a toho všeho ...

    Pokud chcete psát nějaké aplikace, nějaký prohlížeč, nějaké hračky, něco jiného, ​​pak je C++ skvělé. Pokud chcete psát weby, tak tady jsou, jazyky dle vašeho výběru (přednášející ukazuje Perl, Python, PHP, Ruby), není velký rozdíl. Jediná věc je, že PHP zemře dříve než Python, takže pokud jste příliš líní učit se nové věci, naučte se Python. Nevšimnete si velkého rozdílu, ale déle vydržíte.

    Co se stane s Ruby, je také nejasné. No, můžete také PHP, pokud jste se to již naučili, protože jsou tak jednoduché, že netrvá tak dlouho se tam znovu učit.

    A konečně je tu další oblast použití programovacích jazyků - to je, když je používá neprogramátor. Řekněme, že jste matematik, fyzik, chemik, analytik, kdokoli a potřebujete rychle něco spočítat, analyzovat nějaká data (biologům například, kolik lišek žije na Velitelských ostrovech). To vše můžete vložit do tabulky v Excelu nebo to něčím analyzovat. Dobře se k tomu hodí i Python, umí pracovat s textem a knihovny jsou plné všeho druhu, statistické a tak dále. Pokud chcete dělat nějaký druh strojového učení, zpracovávat nějaká data, předpovídat, pak to Python nyní dělá také nejrychleji. Je pravda, že je třeba poznamenat, že úkoly jsou velmi odlišné. Pokud například chcete okamžitě obchodovat na burze v podmínkách, kdy se kotace neustále mění, pak bez ohledu na to, jak cool Machine Learning napíšete v Pythonu, lidé, kteří to mají napsané v něčem rychlejším, budou mít čas koupit si vše dříve, dokud nebudete počítáni, i když jejich algoritmy jsou horší. Proto i tyto úlohy strojového učení (některé z nich) vyžadují vysoký výkon (a extrémně vysoký), a tedy i další jazyky.

    Jediný způsob, jak pochopit, co chcete, je vyzkoušet všechno. Teď řeknu jako jednu z vizí, jak si všechno můžete vyzkoušet. Jak se stát programátorem a být šťastný? Tak. Začínáme od nuly. Zde se ve škole učíte svou matematiku, ruský jazyk a další povinné i volitelné předměty a na tabuli (lektor ukazuje na prázdnou tabuli) se momentálně promítají vaše znalosti z oblasti programování. A chcete se stát šťastným člověkem, dělat to, co milujete, vydělávat spoustu peněz a nic si neodpírat a být šťastný.

    Jeden ze způsobů, jak toho dosáhnout. Existují samozřejmě nejrůznější inspirativní příběhy o lidech, kteří vůbec nechodili na vysoké školy, nebo je nechali a stali se miliardáři, majiteli firem a podobně. Ale je třeba poznamenat, že většina lidí, kteří se možná nestali miliardáři, ale také si dobře žijí, univerzitu v určitém okamžiku vystudovala.

    Jaká je naše situace se vstupem na VŠ (nyní studujete na škole)? Zatímco jste ve škole, musíte pochopit, že dalším krokem je zapsat se a postarat se o to. Složte zkoušku nebo vyhrajte olympiádu. Na zkoušce lze použít Pascal, C ++ (včetně čistého C), Python (nebudu je dále uvádět). Na olympiádě - stejný Pascal, stejný C++, stejný Python (teď si povíme o jeho problémech) a nejčastěji je tam Java. Cokoli jiného se stane v závislosti na olympiádě, ale o to nejde.

    Jak vypadá harmonogram distribuce jazyků na celoruské olympiádě v informatice? Lidé, kteří se účastní celoruské, nejlepší olympiády, o čem píší? Vypadá to takto (zde to znamená Pascal a tady je to asi 2000 a tady je to asi nula, tady je to C ++ a tady je to 2015).

    V roce 2000 skoro nikdo nepsal C++. Uplynulo 15 let a téměř nikdo nepíše v Pascalu, přestože Pascal je moderní. Je to jazyk, který umí v podstatě to samé. Je to tak, že všichni jsou příliš líní se to naučit se všemi druhy nových trendů a všichni pokračují v psaní v Borland Pascal, což samozřejmě nemůže nic dělat. V C++ lidé píší nějaké algoritmy (STL) pro řazení - skvělé, napsali sort () a je to. Na Pascalu, na obvyklém, na starém - to je problém. Napsali nějakou sadu (potřebu) - vynikající, napsali to v C ++, v Pascalu zase samá muka. Na nových Pascalech to samozřejmě můžete udělat, ale obecně stojí peníze. Možná jste si toho nevšimli, ale je to tak.

    Existuje také Java, ale v Javě je spousta písmen. Je to pro velké projekty, ale pro malé jednorázové programy to dopadá dost špatně, protože je tam spousta písmen navíc. Ale i někteří lidé píší, můžete se na tom naučit psát. Ale není k dispozici na USE a USE bude muset být stále z větší části.

    Co je na zkoušku nejlepší? Na zkoušku je nejlepší (pokud nic neumíte a ve škole vás nic nenaučí) naučit se Python. Některé zkouškové otázky jsou na něm dobře vyřešeny. Na olympiádě se obecně ukazuje, že C ++ je (používá se), protože Python je hodně pomalý, ne všechno se na něm řeší.

    Takže jste se naučili nějakou malou podmnožinu jazyka a nějaké algoritmy (možná) a vyřešili spoustu problémů, abyste získali diplom z olympiády a šli na univerzitu, abyste získali vyšší vzdělání.

    Nyní budu mluvit o tom, jak budujeme kurz na HSE, v jakém pořadí se jazyky vyučují, jak se studují v aplikované matematice a informatice Fakulty aplikovaných věd, což děláme s Yandexem. V prvním semestru - Python (ne v plném rozsahu, o tom, jak by vás měli učit ve škole) a C++ (již širší, mnohem širší, než se běžně učí na školách). Řekněme hned, abyste se nebáli, když to najednou chcete udělat, řeknete si: „Co, já už to všechno vím, proč bych měl jít někam studovat? Raději půjdu jinam." Pro ty, kteří již umí dobře programovat, je tu možnost jít rovnou na studium algoritmů, a to ve spíše teoretické přípravě. Teď se na ně nedíváme, tohle (ukazuje na tabuli) je pro ty, kteří programují průměrně nebo vůbec.

    První semestr vás naučí základy Pythonu, jen aby se lidé naučili programovat a aby se nikdo moc neurazil. Python se ve školách vyučuje jen zřídka, většinou lidé přicházejí se znalostí Pascalu nebo C++. V podstatě i Pascal, pokud je to masová škola. No, aby se nikdo nepohoršoval, všichni se učí nový jazyk (jakoby si byli rovni). A C++, jednoduše proto, že z C++ pak můžete jít kamkoli.

    Následuje kurz "Algoritmy" a samostatný projekt kurzu. Klasické algoritmy s implementací. Ne že bychom teoreticky něco vzali, vypočítali složitost. Na přednášce jsme vzali, vypočítali složitost, na semináři - vzali, implementovali algoritmus. Projekt je, že studenti dělají něco hotového. Jeden z projektů byl například: vypočítat... Řekněme, že máte v Moskvě hodně bytů a rozumíte: „Ach, mám spoustu věcí navíc, jeden si pronajmu. A stanoví nějakou cenu a nikdo si od vás nechce pronajmout byt - pravděpodobně příliš drahý. Nebo vám nasadili nějakou cenu, hned vám to stáhli a vy si říkáte: „Ach, asi jsem to levně minul“ – a vy jste také naštvaní. To znamená, že bylo nutné spočítat, kolik stojí pronájem bytu? Vy zadáváte data – vytvoří hodnocení za vás. Takový web, který se skládal z několika věcí: vzít věty, analyzovat, aplikovat nějaký algoritmus strojového učení (pravděpodobně) jednoduše a vytvořit krásnou webovou tvář, ve které si můžete něco vybrat, něco zajet, pár metrů, nějaký počet místností, počet saun, počet jacuzzi ve vašem bytě a zhruba odhadněte náklady. Tedy nějakou hotovou, nepříliš složitou věc. Zde to znamená (přednášející ukazuje na kurz o algoritmech) takový rázný C++, s konzolovým I/O. No a tady (přednášející ukazuje na nápis „projekt“) něco pod vedením mentora, třeba s databázemi, možná s parsováním textu a ještě něco.
    Pak přichází třetí semestr – předmět s názvem „Počítačové systémy“. K pochopení je potřeba docela dost assembleru (velmi málo) a pak něco podobného čistému C a interakci s operačními systémy, v podstatě systémové programování. A projekt na seminář je i něco na téma všemožných síťových interakcí, docela nízkoúrovňové: vyvinout nějakou utilitu, třeba rsync (synchronizace, asi znáte. V čistém C víceméně napište analog rsync, který budete mít přes síť synchronizované složky s veškerým přístupem k souborům a tak dále).

    A konečně čtvrtý. Ani nevím, jak to nazvat, je to taková směsice technologií potřebných pro skutečný vývoj, jako je vývoj webu. To znamená, že se jedná o praktickou aplikaci databází, opět něco podobného, ​​co se dělalo v projektu (lektor ukazuje 2 kurzy k projektu), ale již více do hloubky. Tedy už takové víceméně konkrétní věci, praktické programování. Paralelně s tím existuje nějaká teorie, no, tady se pořád dělá věda.

    A po dvou kurzech se lidé rozejdou dělat to, co je zajímá, protože tato věc pokrývá takové základy programování poměrně široce a v tuto chvíli už lidé chápou, že se počítačovými systémy nechtějí nijak zabývat (např. neměli rádi systémové programování), ale chtějí se zabývat nějakými teoretickými algoritmy, složitostí počítání, vymýšlením nějakých nových věcí, distribuovanými nebo něčím jiným. Nebo si naopak myslí, že toho tu moc nemají ( lektor ukazuje na řádek prvního kurzu s Pythonem a C++) šel, pak ( lektor ukazuje na linii třetího kurzu se systémovým programováním) - jak se ti to nelíbí, počítej bajty a nastav si všemožná omezení čtení-zápis, dělej streamy, vlákna a něco jiného. A v souladu s tím si lidé vybírají nějaký směr a studují. Tedy v zásadě proto, aby se u vás nerozvinul „syndrom káčátka“ – jako první jste viděli svého Pascala a teď si řekli „Pascal je síla“; nebo pokročilejší - viděl jsi C++ a začal jsi o všech mluvit, že C++ je síla a všechno ostatní tam není moc dobré.

    Zde je potřeba se na to podívat (lektor ukazuje na seznam předmětů na tabuli) šířeji - to je jedna z metod, která byla zvolena zejména na HSE (objevila se nedávno, takže je celkem moderní) . Jsou i jiné způsoby, jak se seznámit. Jiné dobré univerzity mají trochu jiné pořadí a jiné akcenty. Ale také se snaží lidi seznámit se vším, co mají.

    Jak najít práci programátora

    Ty jsi ( lektor ukazuje na seznam kurzů) udělal všechno, naučil se na univerzitě, ještě dva roky dělal něco produktivnějšího a je potřeba jít do práce. Jak si vybíráte něco, s čím budete pracovat? Za prvé, všechno jste poznali, šli někam hluboko a už víte, co máte rádi. Musíte si přirozeně vybrat, co se vám líbí. Protože pokud milujete, budete investovat své úsilí, budete mít motivaci a obecně bude vše v pořádku. Protože nejde jen o peníze, ale o to, aby to pro vás bylo zajímavé a příjemné. No, a chcete se dostat do skvělé společnosti, najděte si práci. Jakého člověka bych osobně rád viděl? Řekněme, že ke mně přijde sto studentů – musím vzít dva do práce nebo jednoho. Proč přicházejí, vůbec nechápu, kdo jsou, co jsou, jak se mají? V lepším případě mi ukážou diplom, který dostali na univerzitě, a já řeknu: „Páni! To je skvělý diplom, ale tohle není tak cool!” A mimochodem, mohu se mýlit. Možná měl ten člověk hodně volného času a mnohem lépe se učil.

    co by bylo skvělé? Nejprve nějaký open source projekt, který jste napsali od začátku do konce. Nejlépe, když dělám nějakou infrastrukturu, aby se data rychle četla, nebo něco jiného, ​​tak by mě samozřejmě zajímalo něco open-source napsat. Neudělali nějaký web, ale něco k tématu. Proč je to pro mě zajímavé? Mohu se podívat na váš kód, vidím, jak často se zavazujete, vidím, jak jste reagovali na chyby od uživatelů, chyby od vývojářů, kteří jej používají – vše se zaznamenává, podívám se na všechno a pomyslím si: „Páni, tato chyba má byl dva roky zavřený, pak jsi uživateli nezdvořile odpověděl, je tu něco jiného - neberu to. Takže toto je váš osobní projekt.

    Dále, co jiného by bylo skvělé? Chtěl bych vidět, jak jste pracovali v týmu. To znamená, že za mnou přijdete na pohovor a řeknete: „S kluky z univerzity jsme spláchli nějakou dobrou přihlášku. Udělal jsem tam databázi, udělali tam nějakou mobilní aplikaci a taky jsme tam měli jednoho kluka, designéra, kluka z technické podpory. Bylo nás pět a vytvořili jsme skvělý projekt.“ Dobře, podívám se na to, jaký je skutečně váš projekt, a říkám: "Jaký je váš?" Znovu se podívám na kód a pochopím, že umíte pracovat v týmu s lidmi.

    Programátor není ten, kdo sedí sám (takový indie) v garáži, někde se zhasnutým světlem, s nikým nemluví, nechá si narůst vousy a píše. Přesto existuje určitý druh interakce s lidmi. Třeba se šéfem, který vám může občas nadávat (šéfové jsou takoví, ne vždy laskaví). A vidím, že umíte pracovat s lidmi a dělá mi radost, když máte nějaký dobrý tým. I když to není dobré, je to lepší než žádné.

    Co bych si osobně ještě přál? Pokud jste se ukázali ve velkých projektech. Například jste něco svěřili linuxovému jádru, pokud se zabýváte programováním systému, opravili jste nějakou chybu. To znamená, že ukázali, že můžete číst kód někoho jiného a vědět, jak v něm provést nějaké změny. Podívám se: "Oh, opravdu, přišel jsi na něco složitého a opravil jsi nějaké chyby!" A začíná mě to opravdu bavit. Protože jsem... no, já nevím... tak můj programátor skončil, protože mu jeho konkurenti nabídli vyšší plat, a já naléhavě potřebuji někoho, kdo by mu zastrčil místo - vás. Vypadám, jako byste psal od začátku a nevíte, jak číst a upravovat kód někoho jiného, ​​a jsem naštvaný.

    A nakonec, v závislosti na konkrétní pozici, existují různé další věci. Pokud se ucházíte o práci analytika, rád bych, abyste vyřešili problémy s analýzou dat na Kaggle. Pokud získáte práci v nějakých algoritmických věcech, rád bych, abyste udělali nějaké algoritmy ve sportovním programování. A nakonec, pokud jste přemýšleli o profesi, přečetli jste si, jak probíhají pohovory, setkali jste se s tím, že tam někteří lidé vyjadřují velkou nespokojenost: „Přišel jsem a ptají se mě, jaký je můj koníček. Sedím jako sova a neodpovídám, protože nemám koníčka,“ a myslí si, že to personalisté dělají. Ve skutečnosti se snaží pochopit, jak přátelští a adekvátní jste. Pokud jste nepřátelští a neadekvátní, pak bez ohledu na to, jak jste génius a workoholik, skvělý specialista s velkými znalostmi, bude pro tým obtížné s vámi spolupracovat a projekt nemůžete vytáhnout sami. Navíc, i když ho vytáhnete, dokážete si představit, jaká zátěž společnost čelí. A co zítra přijdeš a řekneš: "Zvyš mi plat 10x, jinak tě opustím." Firmy se samozřejmě do takové situace nechtějí dostat. Pěstování přiměřenosti a dobré vůle je proto v sobě samém stejně důležité (přinejmenším) jako rozvoj některých odborných dovedností.

    Suma sumárum, co k tomu říct? Které jazyky jsou dobré a které špatné? No a v rámci nějaké skupiny jazyků, například mezi Ruby, Pythonem a PHP, co si vybrat? Správná odpověď je samozřejmě Python, ale ve skutečnosti je rozdíl mezi nimi v počtu povolených chyb, v množství něčeho jiného - 5%, dobře, možná 10%. To znamená, že pokud již máte hotový projekt napsaný v PHP, pak nikdo se zdravým rozumem neřekne: „Přepišme vše v Pythonu.“ Řeknou: "Najmeme více vývojářů PHP a budeme pokračovat v psaní v PHP." Dobře, to je dobrá volba. Samozřejmě, pokud náhle začnete psát nějaký projekt, pak může být moudré zvolit Python hned. I když, také záleží. Možná máte na trhu spoustu levných PHP vývojářů a ty Pythonové jsou drahé a říkáte si: „Ano, technologie je více cool, ale ušetřím peníze za hotové vývojáře.“ A všechno je v pořádku, už tam chodíš a pracuješ.
    Jak si vybrat mezi Java a C++? Ano, děje se přesně to samé. Myslím, že ve chvíli, kdy se rozhodnete, v jakém jazyce začít nový velký projekt, získáte znalosti ve své profesní oblasti a budete si moci správně vybrat. Právě teď si tuto volbu ještě nemusíte dělat, a tak vám radím, abyste dělali to, co vás baví.

    Základy, jak jsem řekl, samotné základy programování (co je funkce, co jsou if’s, for’s, pole, něco jiného) se lze naučit víceméně v jakémkoli jazyce. Například v C++, protože mnoho věcí je mu podobných a specifika v něm (na této úrovni) jsou nejméně a nejméně zbytečných písmen k psaní. Když se tedy naučíte nějaké složité architektonické věci, naučíte se a nemusíte se o to moc starat. To znamená, že hlavní je zkoušet, hledat, co se vám líbí, a když si uvědomíte, že už jsou 4 hodiny ráno, sedíte a píšete pro zábavu, protože se vám to líbí - pravděpodobně, v tomto v okamžiku je jasné, že jste našli svůj .