Tísňová linka 911.
911, co se děje?
911...
Dne 9. dubna 2014 byla služba 911 nečekaně nedostupná
pro 11 milionů Američanů.
Výpadek trval přes šest hodin.
Více než 6 000 tísňových hovorů se nespojilo.
Problém vznikl kvůli počítači
v zařízení pro směrování hovorů v Englewoodu v Coloradu.
Šlo o jednoduchou chybu v programu.
Lidé, kteří počítač programovali,
přidali strop pro počet hovorů, které počítač mohl uložit.
Mysleli si, že na tento strop nikdy nedosáhne.
Ale té noci v roce 2014 se to stalo.
Počítač se řídil svými instrukcemi.
Dosáhl stropu a přestal směrovat hovory.
Problémem nebyl počítač.
Nebyla to chyba v programu.
Bylo to programování,
proces rozhodování, kterým lidé komunikují s počítačem.
Tato moc přichází s velkou etickou zodpovědností.
Není nic jiného.
Náhrada neexistuje.
Stejně jako stavitelé města rozhodují,
jaký bude život ve městě,
programování říká, jak žít na internetu, takže také jaký bude náš život.
Nejen na internetu,
ale i když voláme pohotovostní služby...
jdeme k doktorovi...
nebo nastupujeme do auta.
Programování nás obklopuje každý den.
Přesto umí programovat jen tři desetiny procenta z nás.
Pro většinu z nás je programování záhada.
Ale nemusí být.
Jak programování funguje?
A jaký nový svět z něj stavíme?
Počítač.
Geniální sestavu elektronického hardwaru
vytvořil člověk.
Nejde o to, že na řešení problémů nemáme adekvátní stroje,
ale že nemáme dostatečné popisy řešení.
Když se řekne „programování“, myslíte, že je to opravdu těžké.
Musíte pamatovat, že vše, co na počítači používáte,
vytvořil nějaký člověk.
PROGRAMOVÁNÍ
Kdyby se mimozemšťan zeptal: „K čemu je programování? Co to je?“
Já bych řekl:
Žijeme na hmotné Zemi, ale před zhruba 50 lety
skupinka lidí začala stavět další planetu.
Ne hmotnou, ale virtuální.
Když na ulici vidíte lidi se sklopenou hlavou,
kteří zírají na své telefony,
jsou v tom jiném světě.
A to je programování.
Stavební materiál jiného světa.
Tento tkalcovský stav je předek všech počítačů a chytrých telefonů.
Byl vynalezen v roce 1804
a inovace spočívá v těchto děrných štítcích.
Otvory v každém štítku umožňovaly průnik jen určitých háčků.
S tisíci děr na stovkách štítků
mohli tkalci vyrábět složitější vzory než předtím.
Evropu uchvátily propracované šátky.
Tkané obrazy mohly být tak složité, že připomínaly kresby.
Jako tento tkaný obraz vynálezce přístroje.
Před těmito stavy museli jednotlivá vlákna ručně vybírat tzv. kresliči.
Matematiku tehdy také dělali ručně pomocí tzv. počítačů.
První počítači byli lidi.
A ty nejlepší existující stroje
zvládaly jen jeden druh problému,
jako počítadlo na sčítání a odčítání.
Britský matematik Charles Babbage chtěl stroj,
který by zvládl kterýkoli vybraný,
nebo spíše naprogramovaný, problém.
Navrhl takzvaný analytický stroj.
Tento nápad ho zapsal do dějin.
První počítače vymyslel Babbage,
velmi excentrický britský vynálezce.
Babbage se pro funkci stroje inspiroval.
Doma mu visela kopie tohoto obrazu.
Stejně jako Jacquardův stav,
i Babbageův analytický stroj měl fyzické části, „hardware“.
A stejně jako stav,
hardware přijímal instrukce v podobě štítků s děrami.
Otvory vpustily háčky
a místa bez otvorů posunuly jiné háčky dozadu,
kde spustily řetěz mechanických výpočtů.
Štítky s různými dírami
jsou software.
Babbage analytický stroj nikdy nedokončil,
ale jeho spolupracovnice si uvědomila jeho potenciál
nad rámec matematiky.
Ada Byron, hraběnka z Lovelace, napsala:
„V momentě, kdy došlo k využití štítků,
byly překročeny hranice aritmetiky.“
Viděla to samé, co Jacquard:
díry mohly představovat více než jen čísla.
Mohly být vzory,
hudba...
nebo celé věty.
Je to v podstatě taková morseovka.
Každé písmeno Morseovy abecedy je vyjádřeno souborem dvou signálů.
... nebo ...
Je binární.
Těmito zvukovými signály můžeme říct cokoliv,
jako toto nouzové hlášení z Titaniku z roku 1912.
„SOS“ není žádná zkratka.
Jen se v Morseovce velmi snadno posílá.
Každé písmeno lze vyjádřit jako kombinaci
nul a jedniček.
Je to povědomé?
Toto je binární kód.
Slouží k překonání mezery mezi stroji a lidským jazykem.
Každá jednička a nula je dvojková číslice, tzv. „bit“.
Jsou to atomy moderní výpočetní techniky.
Můžete je znát pod jiným jménem.
Osm bitů je bajt.
Takže ta fotka na vašem počítači, která má 1,1 megabajtů?
Má osm milionů osm set tisíc jedniček a nul.
Stejně jako čárky a tečky Morseovky jsou způsob zápisu ... a ... .
jedničky a nuly binárního kódu jsou způsob, jak zapsat,
co se děje v moderním počítači:
proud nebo žádný proud.
Toto je jednoduchý elektrický obvod.
Představte si jich miliony, jak spolupracují.
To je dnešní počítač.
Toto je bit na elektrickém obvodu.
Žárovka je vypnutá? Nula.
Zapnutá? Jednička.
Počítače rozumí jen elektřině,
takže vše, co programátoři dělají,
je v podstatě jen série výbojů zapnuto/vypnuto.
Funguje to, protože když jsou řádně sestaveny,
výboje představují logiku.
Logika je předvídatelná série faktů nebo událostí,
jako zavření tohoto...
a tohoto spínače, aby zazvonil zvonek.
Lidé od počítačů tomu říkají „logický AND obvod“.
Nebo logický člen.
Zkusím nepropálit díru do stolu.
V členu AND – „a“ musí být oba obvody zavřeny,
aby světlo prošlo.
Pak je člen „OR“ – „nebo“,
kde světlo projde, pokud je zavřen jen jeden okruh.
Jinak řečeno,
KDYŽ: zavřený obvod, PAK: rozsviť.
Takový příkaz „když, pak“
je algoritmus.
V dnešní pop kultuře slovo „algoritmus“ způsobuje spoustu zmatku.
To už jsme viděli, jak se algoritmy zbláznily!
Fungování algoritmů je pro většinu lidí záhadou.
Co je sakra algoritmus?
Ale algoritmus je jen řada instrukcí.
Jdete do obchodu.
Můžete jít doleva a pak doprava.
Nebo můžete jít doprava a pak doleva.
Nebo čtyřikrát doleva,
oběhnout park,
přes dálnici
a čtyřikrát doprava.
Tak jako jsou různé způsoby, jak se někam dostat,
v programování mohou různé algoritmy řešit stejný problém.
Cílem je najít nejelegantnější a nejúčinnější řešení.
Hezký program se neopakuje.
Je elegantní, výkonný.
Počítače, které pracovaly s algoritmy, dělaly, co jsme jim řekli.
Ale rychleji.
Lidstvo získalo mnohem větší moc.
Když vědci poprvé začali vyvíjet jaderné zbraně,
používali převážně lidské počítače.
Ale pak se obrátili na tento:
počítač ENIAC šest týdnů vypočítával termonukleární kalkulace.
Jeho výsledky podstatně přispěly
k prvnímu úspěšnému testu v roce 1952:
bomby stokrát silnější než jaderné bomby,
které za druhé světové války zničily Hirošimu a Nagasaki.
Možnosti programování umožnily lidem dělat to,
co se rozhodli dělat.
Ale ve 40. letech to ještě bylo náročné.
Zápis programů v nulách a jedničkách byl zdlouhavý.
Lidi chtěli programování využívat na maximum.
Ale chtěli to dělat snáz.
Od té doby je programování o tom, jak ho co nejvíce přiblížit
lidskému jazyku,
Vzniklo něco, co dnes používají skoro všichni programátoři:
programovací jazyky.
Ve srovnání s nulami a jedničkami jsou tyto jazyky abstraktní.
Abstrakce je pro lidi těžké slovo.
I abstraktní jazyky jsou tvořeny nulami a jedničkami,
jen jsme se je naučili lépe uspořádat.
Představte si to v rámci biologie.
Lidé jsou velmi složití,
ale 99 % našeho těla tvoří jen šest prvků.
Můžete se dopracovat k velkým molekulám.
Mezi tou vrstvou organizace a tou úplně nejjednodušší
je velký skok.
Lidé mají mozek,
který umí tak pokročilé věci,
že se těžko věří, že je pořád tvořen tím samým.
Počítače jsou dost podobné, ale jsou mnohem jednodušší.
To je dobrá zpráva.
Příběh programování je o snaze posunout se nahoru,
nechat za sebou binárku
a získat jednodušší, rychlejší, silnější způsoby programování,
aniž bychom se museli zabývat binárními a logickými členy za tím vším,
nebo je dokonce chápat.
To umožňuje programátorům vyrábět produkty, které známe.
Prvním krokem k tomu byl...
„Jazyk symbolických adres“, který se snadněji čte a píše.
Místo 0-1-0-0-0-1-1-1
řekneme „ADD“ – přidat.
Poté program, „assembler“ písmena A-D-D přeloží
na příslušné nuly a jedničky.
Na této úrovni se binární soustava organizuje do písmen a čísel,
stejně jako atomy jsou uspořádané do molekul.
Programování ale pořád bylo složité,
protože různé počítače používaly různé jazyky.
Program napsaný pro jeden počítač nepracoval na žádném jiném.
Lidé si rychle uvědomili,
že chceme zadávat věci způsobem,
jakým je opravdu denně používáme.
Jsou programovací jazyky
sestavené pomocí jazyka symbolických adres.
A z těch jazyků jsme udělali nové.
Určitě jste o nich slyšeli.
- LISP - BASIC
- Java - C++
- Python 3 - HTML 5
PEARL, PHP, trochu C...
Tak jako mluvené jazyky jsou různé způsoby,
jak ostatním sdělit tu samou myšlenku,
programovací jazyky jsou různé způsoby sdělení
stejné myšlenky počítači.
Máme více jazyků na vysoké úrovni,
protože různé jazyky řeší různé problémy.
Podívejte se na tyto.
COBOL vznikl koncem 50. let,
aby usnadnil programování podnikům.
Velmi se podobá angličtině, kdyby každá konverzace
končila se „STOP RUN“.
CPL vznikl v 60. letech a obsahoval více vědeckých výpočtů.
Je to jako biologická evoluce.
Organismy jsou stále složitější a vyvíjejí si znaky,
které je lépe přizpůsobí specifickému prostředí.
Upřímně, jde i o vkus.
Lidé se rádi vyjadřují různými prostředky.
Třeba C++. Elon Musk ho nemusí.
JE C++ OPRAVDU HROZNÝ JAZYK?
ANO
I vy jeden můžete vymyslet.
Toto je skutečný vysokoúrovňový jazyk, který se zcela skládá jen ze slova „búú“.
Opravdu. Jmenuje se COW – kráva.
Tento je zase z filmových replik Arnolda Schwarzeneggera.
Pokaždé, když si myslím, že už to je vše,
někdo další vymyslí nový jazyk a získá skupinu přívrženců.
Takže vývoji nových jazyků zdaleka není konec.
Všechny ty jazyky jsou stále založené na logice.
Například programátor z Netflixu by mohl říct:
„Pokud se díváš přes dvě hodiny,
zobrazit toto.“
Aby ale programování ovlivňovalo život většiny,
většina lidí musí používat počítače.
Počítače musely být jednodušší, přívětivější,
a to vyžadovalo další velký skok.
Ten začal tady,
v demu od Douga Engelbarta v roce 1968.
Uvidíme obrazovku, na které pracuje,
a jak se sledované místo hýbe zároveň s pohyby myši.
Lidé dnes neprogramují tak, že příkazy napíší na kus papíru,
který pak předají někomu,
kdo je zapíše.
Posadíte se za obrazovku, máte grafické uživatelské rozhraní.
Dnes jim říkáme GUI.
S GUI mohou lidé programovat bez psaní.
Nebo mohou kód používat jednodušeji.
Obvykle pracujete v programovacím prostředí,
jako to, které tak krásně vyrobil
Alan se svými společníky
ve výzkumném středisku Xerox Palo Alto na začátku 70. let.
Alan.
Tento Alan.
Podle mě je to otec osobní výpočetní techniky,
protože byl první, kdo tuto vizi pořádně představil.
Musím přiznat, že tehdy jsem si myslel, že je to sci-fi.
Když se dějí velké věci,
bývá za tím celá komunita.
Park byl úžasný.
Bylo to jako magie.
Grafické uživatelské rozhraní umožnilo milionům lidí
používat počítače způsobem, který je pro ně přirozený.
Když Xerox v roce 1979 GUI poprvé inzeroval,
ukázal, jak kód může změnit běžný život.
Přijdete do kanceláře a stroj Xerox
vám na obrazovce ukáže ranní poštu.
Brzy vám takové systémy Xerox
pomohou spravovat váš nejcennější zdroj:
informace.
Byli tam lidé jako já a spousta lidí v této komunitě výzkumníků
chtěla zlepšit svět.
Měli nápad, který byl hluboce spojený
s lidskou augmentací.
Něco, co bude reagovat na nás,
veřejnost,
běžného člověka a umožní nám dělat více
než kdy předtím.
Umožnilo nám to dělat více.
GUI byly velkým skokem vpřed.
A pak přišla další zásadní inovace.
Nový způsob distribuce všeho,
co s kódem můžeme udělat.
Lidé v televizi začali předpovídat,
co náhlý přístup ke kódu udělá.
Představte si, že si sednete s ranním kafem,
zapnete domácí počítač a přečtete si noviny.
Představte si svět, kde si doma okamžitě můžete zobrazit
každé psané slovo, každý obraz, každý film.
Myslím, že jsme na počátku něčeho vzrušujícího a děsivého.
Je to jen nástroj, ne?
Ne, není.
Nejproslulejší softwarové produkty dnes všechny tyto inovace využívají.
Jeden student použil vysokoúrovňový programovací jazyk PHP
k tomu, aby něco sdíleného na internetu
použil na počítačích s GUI.
Popsal to ve svém prvním TV rozhovoru v roce 2004.
Je to online adresář, který spojuje lidi skrz univerzity
a jejich sociální sítě.
Teď je nás 100 000, takže kdo ví, kam se vydáme dál.
Vydali jsme se k více než
dvěma miliardám uživatelů Facebooku každý měsíc.
Programátoři dnes ovlivňují životy miliard lidí.
A to, jak pracují, nakupují, jedí, randí a relaxují.
Co teď děláte?
Sledujete mě ve webovém prohlížeči Netflixu.
Netflix je kód, který běží ve webovém prohlížeči,
který je kód,
který běží na počítači, který byl vytvořen pomocí kódu.
Jsou tam samé želvy.
Skvělý kód je jako architekt muzea,
o kterém denně miliony lidí přemýšlí a chodí kolem něj.
Programování se nic nevyrovná. Je to jako čirá tvorba.
Máte představu, jak by něco mělo fungovat,
posadíte se k počítači
a uskutečníte to.
Je to velká zodpovědnost.
Máte rychlostní limit.
Ne víc než 100 km za hodinu.
V pořádku.
Ale co kdybyste měli auto a počítač říkal:
„Toto auto nepojede rychleji než 100 km/h?“
Je to způsob, jak ovládnout vaše chování.
Ovládáním našich voleb má kód často větší regulační účinek
na naše životy, než zákony kdy budou schopny.
A to by mohlo být skvělé.
V USA je každý rok zhruba šest milionů autonehod.
Podle analýzy za 94 % může řidič.
Programování může ušetřit miliony životů.
Ale může také životy novými způsoby ohrozit.
Mám takzvanou hypertrofickou kardiomyopatii.
To znamená, že mám velké srdce.
Doslova.
Má trojnásobnou velikost běžného lidského srdce.
Zjistila jsem to asi ve 30, takže riziko náhlé smrti do 40 let
se podstatně zvýšilo.
Elektrofyziolog řekl, že to není problém,
protože dostanu kardiostimulátor.
Zařízení řídí kód.
Před pár lety, když jsem byla těhotná, mi bušilo srdce.
Čtvrtina žen má bušení srdce, je to naprosto normální.
Ale můj přístroj si myslel, že mám nebezpečný rytmus
a dal mi šok.
Výrobci přístroje nemají zájem o elektrošokování těhotných žen.
Je to doslova to poslední, co chtějí.
Jen je to prostě nenapadlo.
Jde o obrovskou řadu rozhodnutí,
která musí udělat programátoři.
Nevyhnutelně dojde k nějaké kombinaci okolností,
kterou nečekali.
Takže když učíme programování,
snažíme se učit,
jak nad všemi těmi různými podmínkami přemýšlet.
Jak se snažit nic neopomenout,
aniž by vás množství věcí,
které musíte zvážit, ochromilo.
Bude to o to složitější, protože jsme začali programovat
úplně novým způsobem.
V tradičním programování píšete instrukce pro počítač.
Ale teď můžeme dát počítači spoustu vstupů
a spoustu výstupů
a nechat ho si psát vlastní instrukce.
V podstatě uděláte to, že počítači dáte
spoustu příkladů
a řeknete: „Tohle je párty.“
A pak jsou tu jiné věci.
Zubař: není párty.
Učebna: není párty.
Počítač se na příklady podívá
a pokusí se sestavit klasifikační systém.
To je strojové učení.
Když dnes někdo řekne „umělá inteligence“,
má na mysli tohle.
Je to úplně jiný druh abstrakce a způsob, jak něčeho dosáhnout,
protože nesedí do způsobu, jak na sebe všechno vršíme.
Říkáme jim algoritmy strojového učení,
protože počítač si instrukce tvoří sám.
I ty se samozřejmě překládají
do malinkých instrukcí.
Překladač Google býval více než milion řádků kódu.
To je milion malinkých instrukcí, které napsali lidé.
V současné době je překladač asi pět tisíc řádků kódu,
který využívá strojové učení.
Představte si, že v žádné fotce večírků omylem nebyli černoši nebo Hispánci.
Počítač by mohl usoudit, že pravidlem večírků je,
že jsou pozváni jen běloši a Asiaté.
Spousta bělochů a Asiatů programuje.
Z milionu důvodů bychom měli rozšířit,
kdo se bude podílet na designu.
Více životních zkušeností znamená lepší otázky.
Pokud ale stroj krmíte údaji například z trestního soudního systému,
které v sobě mají zabudovaný strukturovaný rasismus,
a vaši programátoři vypadají jako z reklamy na diverzitu...
různé rasy, tváře, společenské zázemí...
stroj se pořád bude učit z vložených dat.
Pokud to lidé nebudou aktivně opravovat,
historické údaje povedou k opakování chyb z minulosti.
Příběh programování je o lidských ambicích
a kreativitě.
Start rakety Falcon 9.
Viděli jsme, co jsme považovali za nemožné.
Černou díru.
Stavíme nový svět
se stále intuitivnějšími nástroji,
které k vylepšení světa
může použít více lidí.
Byli jsme na cestě ke zpřístupnění počítačů lidem
a většímu souboru lidí.
Tato revoluce se nám posledních 50 let odehrává před očima.
Proto je dnešní doba vzrušující.
Je důležité si pamatovat, že vše, co na počítači používáte,
vytvořil nějaký člověk.
Můžete být jedním z nich a je velmi důležité, abyste jím byli.
Můžete zásadním způsobem změnit svět.
Existuje svět, který se bude řídit pomocí strojového učení,
daty, tradičním programováním a mnoha jinými způsoby.
Jako společnost musíme říct:
„Máme silnou novou technologii,
která může být skvělá, ale neudělá se skvělou sama o sobě.“
Překlad titulků: Ema Bícová