_e

tak já teda děkuju teda nasazení musíme začít no a pochopitelně skrá já se levý

tam děkuji za těch let na todlecto tech ještě přednášku

na se ze tentokrát vybral třicet no a to proto že vlastně k nechci představa

celý jazyk jako server na kterém minulýho takže součet můžete podívat na záznamy

a to bych vám představil řekněme zkráceně ten jazyk a pak nějaké novinky tom jazyce

tak _m za partnerem mě kdykoliv kdekoliv tady odchytit kontaktovat najdete mě určitě někde na

internetu takže je problém se týče komunikace

jsem slyšet i když tak modul dostane nějakou konce na ty slajdy

takže jako

tak a todlecto je slajd s přednášky kterou se měl minulý rok narychlo představím jazyk

dal jazyk dále je a interpretovaný jazyk momentálně který se snaží řešit u problému se

kterými se programátoři architekti

a větších i menších systému setkali téměř denodenně na laně prostředí kde jaksi nemůžu mnou

do straně říct zvolíme jiné řešení a musíme použít to co máme teď

tento jazyk a se poměrně silně inspiruje ostatními jazyky tady mám jenom krátký výběr toho

s čím se třeba inspiroval jazyk dál

na druhou stranu se inspiruje jakým se minimalizuje to znamená samotný jazyk dál a poměrně

malou dokumentaci poměrně malý má malý počet klíčových slov a co se týče třeba i

virtuální mašíny tak je velice malý znamená určitě bych se nebál nasadit na ty dnešní

takový plus liší a tedy zařízení

počínaje jaký máme u tý konče nějakýma na ženská klávesnice má pro mě který blikali

neděle takový kravinky vokolo

a

krom toho která ten jazyk se tak trochu triumfální konkurovat velkým jazykům jako je jack

má jako je ale nebylo a podobně

možná stála něčem například tiscali s ostree učil vlastně ten koncept těch jo čili scale

jsou momentálně dostupné třeba i javaskriptu a podobně

akorát se dalo konkrétně to nemapované přímo

a víte věc

to sis pozicemi systémech a na windows o to přímo ty lokální freddie co jsou

k dispozici

takže je to vlasně opravdu a opravdu a

opravdová konferenci není to já ne jiného spáchání a tak dále těch mikrovlákna

taky ze tady zmínil dražší systém jedná se o plně multiplatformní jazyky na celnice devadesát

devět znamená skokové úplně všude

a věci musíte na to někde

já tady jenom krátký krátká vsuvka to dneska vypadá vlastně na tom trhu s jazyky

kdy _m zde se potýkáme řekl bych že sme dorazili je koncepčně ip na takové

rozhraní kde se nám zase začínají trošku více praváky funkcionální jazyky začne vystrkovat růžky protože

hoši se poprali u s tím silným typováním

a začínaj se to dá řady webovky viděl jsem opravdu pěkné malinkaté framework i praskla

pro mě opravdu psali webové stránky a i větší řekněme druhé straně jaké systémy asi

to nedosáhne velikosti v repre se mu minimálně já to momentálně nevím ale určitě se

to tím směrem ubírá takže

nůžky tady todlecto máme vlastně velkou konkurenci v těchto jazycích na druhou stranu například _e

se na typu last je poměrně velkou překážkou protože se musí velice přesně vybírat jak

se ty typy mají chovat a za jakých okolností a to trvá strašně dlouho

a mimochodem požadavky se nám vyvíjejí je letech to znamená že to co momentálně se

zdá jako optimální suboptimální řešení za pět a vůbec nemusí být a bude to naopak

proti nám se s tím babrat dockrem tak potřeba dopadá java nevím jestli z vás

tady někdo ste opravdu taky ten za její tělesná

a oni vlastně ten ekosystém nastavili před mnoha lety a té doby ten ekosystém diskuse

funguje a dneska všichni určitě vidíte se za zajímat aspoň trochu word architektury

o co se týče ip je pro mě že java prostě

si a ne sebou ohromný množství podstatě něčeho

co nejsme schopni ani dobře popsané to prostě silně modulární systém jsou tam ohromné závislosti

co tam striktní oddělení těch vrstev a tak dále

a

todlecto vlastně my

a důsledně nepotřebuje najdi mělo pomáhat a nemělo nás tady daničko takle

no a du druhá věc je že nikdo mu se nám roztrhl pytel s těma

skriptovací má si to má prostě každej se dneska udělal svůj vlastní skriptovací jazyk někdy

jsou s pyšnější některými úspěšný

a kteří se zaměřuje na něco jiného

my sme si dali za cíl a vedení ušil tom roce dva tisíce šest

kdy vlastně dál vůbec vzniklo nebo ta myšlenka začalo se na něm dělal je ten

jazyk by měl opravdu se vytáhnout těch ostatních jazyků toho co se zdá dlouhodobě použitelné

ale znova se nad tím zamyslet a nevzít to prostě jenom tak je to je

třeba tom ruby nebo pipe no

a říci my tady máme nějaké omezení fyzikální vtom procesoru měli bychom se zaměřit i

na výkonná na jenom prostě tady třikrát za sebou a byla nějakého stát a podobně

jako fajn při skládání modul a podobně různých atrakcí a tak dále takže takové věci

bychom nechtěli by se tomhlectom stávali

tohle jazyce vůbec těch knihovnách a všem co s tím souvisejí

tak

a krátký pohled do dyzajn toho jazyka jak jsem říkala virtuální mašina skvělý bič kolektorem

budoucnu vpadla myšlenka tak se s tím nějak vypočítaná ale nepracuje se na tom zatím

mě jak by to mělo být kompilovaný a z i s nějakým malým omezením

které den bude vycházet s potřeb teda toho uživatel to znamená například tvrdil panelech se

stane se prostě garbage podporu nemůžeme dovolit a zatim prostě i vím výzkum to na

tomto kole prostě potvrzuje že to nelze prostě postavit je ve škole perkele je

můžeme třeba mít predikci byl ní jedeš kolektor kde přesně image do toho vstoupí stále

však je to výrazně zvyšuje to množství těch vztahů který a pak musim kontrolovat statickou

analýzou a tak dále těch je tam mají systémech z vůbec nevyplatí tímhle způsobem mít

nejlepšího mezi programátoři

nemá prostě kdyby škole tak dále si to sám a hotovo a tak dál

tak další máme tam teda nezpanenštit

jestli víte co to je doufám že jo nebudu to dále přibližovat

a momentálně ten že teda funguje především na matematické operace urychlování počtu samotných ne na

urychlování virtuální mašíny která sam o sobe velice rychlá je zatím tímto směrem nemáme tu

potřebu to nějak tlačit ale když se pracuje terminál to logické operace třeba přesile a

tak dále to znamená

můžeme mít vlastním že to vany vůbec celou virtuální mašinu ale to zatím není úplně

hotový

ten do budoucna jazyků žijou ten posun jakou defaultní kódování všude jak samotné zápisem tak

se tak veškerý strenky a white streamy a všechno co něco najdete se po považuje

za u té fosu pracuje se s tím defaultně všechny operátory riziko tak dásní pracují

jako vlastně a s kým obyčejný

aha

jsou k tomu mimochodem dispozici ještě další metody operátor a tak dále který s tím

pracuje kupé osum takže vy jako programátor pořád na to koukáte cooper osum s z

důvodů rychlostí vlastně

se to používá jako masky a když programátorů pro potřebuje počítat znaky a podobně tak

stačí použít vlastně ekvivalentní operátor nebo metodu která dělá vlastně to samý akorát na celej

nazdar tam a ne na ty jednotlivě item

tak jsou distribuovány typový se stát tady se možná lehce zastavím protože to jedna s

těch řekněme novinek dál a sice dál se snaží ten problém statických bez brzd dynamický

typování řešit tím že nabízí oboje

to znamená ve jako programátor pane ta zodpovědnost na vás aby se musíte konkrétním případě

doslova pro každou proměnnou rozhodnout jestli chcete aby byla statické nebo dynamicky taková ta

dobrej diferenci

a to je právě ten inferenční systém typu vektory tam máme

se snaží ten systém odhadnout co asi ten programátor chce a snaží se všude kde

to jde narva statistiky povolání

ale stačí napsat existuje i any tady znamená právě že ten daná proměnná je vlastně

dynamicky tipovaná a u tý době se vlastně ta virtuální mašina vůbec nestará co tam

máte a že franta je prostě když přečtete neopustíte nějakou nebo gnome tak vám to

pane

ale ji ne všude se snaží pomocí té inference ten kompilátor

narvat staticky typování a pochopitelně to výrazně lepší i pro výkon protože se nemusej čekala

pět epizod franta jen tak dál takže to taková mi řek unikátní vlastnost toho rizika

a díky tomu že si tam je ta inference tak penězi vlastně nevyžadoval jste ty

typy vypisovali dost často o proč

když pracujete s polem a nějakýma nacpanýma pracujete s nějakýma integer na základní mapy pana

a tak dále

tak vlastně to všechno za vás udělá inference vůbec ty typem se to je obecně

vypisovala to znamená vy vlastně píšete call který vypadá trochu jako pipe důvěře

a na některých místech kde víte že prostě už by to nezvládl tady povězte nebo

prostě chcete na tý mít tu svoji pevnou kontrolu tak tam vypíšete ty nebo ta

napíšete any protože to bude něco soudit jo vy ještě nevíte co to bez bude

a podobně takže to tím vlastně mu způsobů vlastně vyřešíme

a ten problém toho tipování trvá jenom poznámky protože tam je třeba jaký tajenkou dojezd

jsou vlastně jakési entity tedy se snaží nahradit ten ty to případě kompilace znamená vy

vlastně můžete říct že chcete nějakej ty na jednom místě

a chcete ten samej typy na druhým místě třeba se to používaných předáváte nějakej neznám

i ty a dokonce jako parametr

jako argument a víte že tam byl nějaký tip na vás nezajímá jakej napíšete něco

jako template nebo něco takového a víte že prostě tom aby třeba i na výstupu

nebo někde se s tou ty letní funkce mám na použít máte prostě vy můžete

ten pán řeknete po co má být tady tak bude i tady

no tím vlastně vidíte že se vygeneruju potom to pro tu virtuální mašinu kolo alence

pro generuje podle těch možných typů to znamená pokud to tak mluvil bude zastupovat huby

potom tom programu můžete podle funkce s tím takovoudle

a na dvou místech jednou to bude integer inu to bude string tak sami vyberou

dvě funkce dvě rupie jedna bude pro string bitmapovým tý že to budou tak pro

zvlášť staticky prostě paměti uloženy a pak se prostě vybere na jednotlivejch místech kde to

voláte ta správná

takže to jsou by pak byl jsi to velice pěkná featura bych řekl používá se

taky hodně to tom funkcionální programování kde se tím právě eště aby se chránili jsou

ty ohromný popisy pěknou a tak dál

modularita základním je z města bitový programování zabudovaných moduly běžným já to pro podobně jako

_e ten partner byl podobně je teplej se je s a objektový systém které postavené

na interfejs a na příbram a

a komu se pak ještě do stolu a mám pak takové soutěže ukázky ohledně těch

interfaceů protože to jedna z novinek která nebo interfejsy nejsou novinka ale jejich rozšíření jsou

jedna z nuly a konzum flow základní věci prostě if a tak dále znáte

tak nějaké detaily

_e ty moduly jak jsem říkal tak nemusí vypsaný na tom dále lze celém zuby

psaný cévnatce plus například aby sou vlastně považovaný za na pivní a představte si že

tady vlastně tam dalo jsme schopni automatizovaně zabalit a moduly třeba se plus

a přímo je můžete pak použít tom dal panáka máme nějaké auto byte drátové a

tak dále tady prostě

částečným způsobem vygeneruje nějaký pěkný rozhraní který vypadá statis stejně jako c plus

a s toho prostě rovnou můžete použít vlastně ten dálku a použito foru což v

ostatních jazycích dost často nemáte musíte se to napsat ručně ste máte c plus modul

tam nebo prostě jak přídou třeba tam máte padesát metod a vy prostě podruhý musíte

přepsat a no a se volá tady todlecto volá se plus tady sou tydle kluby

tady nemusíte

tak majore function zkoušce činnost dobře narrower function se asi tušíte ucelené můžu si prostě

vlastně funkce můžu funkce vzít jako jednoduchou proměnnou a pracovat s ní prostě jako s

jakoukoli jinou proměnnou si kopírovat c předával posílat cokoli mám tady ty kanály

pro mapy trénink všechno můžete poslat takový věci kanál a tak dál

ta rovnice čem s to je trošku inspirovaný právě ruby

například

a kdy my sme přemýšleli nad tím jak udělat takový ten feel takovej ten pocit

to s tohlecto protože ta imperativní jazyk primárně ale chtěli bychom se dostat ještě funkcionální

a vy jsme přemýšleli je to udělá a jedna z řešení a není tu ultimátum

řešení ale jedna z možností je vlastně zavedeme nic jako konce všem co že se

chce vypadá to jako funkce například se to představte ve který napište nějakej koupili s

něco dělá

a _e parametry se předávají trošku jiná a přidávají se vlastně při každém zavolání i

sekce a sekce může bejt řady teda ty podobně

a předávají se jakoby opačně se dál jestli do tý se chce takže vy můžete

mít třeba metodu ne

tak bude mít nějaký parametry tam se docela na tomhle případě kdy právě titanikům dres

protože metry poměrně univerzální metoda celá léta na něco jinýho

a

pak napíše to co s tím co to udělal třeba tam je univerzální řadící algoritmus

a vy prostě zavoláte ten řadící algoritmus s nějakejma dosazený parametrama a to bude celá

x y nějaké proměnné a podobně a pak s tím pracujete

a mám tady na to mysim pak ještě ukázku dyžtak ukážu znázorněnu něco jako na

vyprávět jejich

jestli byl něco jako tele konce čem nic

nevíte nevadí

tak to asi sem slepej se stane teďka ten interfejsy ne nejdřív řek mx any

víte potřeba přestavovat ve types to zaoblený typy ty jsou užívání především tomu abychom nějakou

sem zefektivně vykonávání koho zrovna vyšel z alobalu

nějakou přídu nebo struktura tak na dále tak mám několik typů jak s tím ta

může pracovat pro někerý typy většinou jednoduchý type třeba by tam nebo by se hodí

aby ten byl prostě statické jako každý a se kopírovat celá struktura a vůbec se

neřešilo celej cti

tak to je by nejjednodušší případ toho zabalených no ta je

a pak sou složitější tedy nějakým způsobem víc a víc se prolínají s tím dál

a ten nejsložitější vlastně tak automatické modulu kerý se prostě s poklesem plus

jak to je vlastně kvůli jenom kvůli rychlosti daným že to máme ten tydlecty zavolání

vypil dala jinak bychom vlastně si vystačím s tím nejsložitějším řekněme třeba s tím co

plus nula

ta jedovatá slina vycházet tak je dva

další inspirace s funkcionálních jazyků a hodně se dneska platí že vlastně proměnný jsou nezničitelný

jedno něco přiřadíte u tý době ta proměnná tuhlectu hodnotu drží o interferenci cokoli

tak to tam mám a o všechny promění set byte default

ne

tváří jako firmware dobrá plus a _e silně doporučeno _m si prostě setkal pře každou

proměnnou napsat že to je vrátil abyste se tě vlastně kontrola jsem sebe

a nemám tady call s těmi pár ale určitě najdete v repozitáři jich je toho

tam docela hodně a všude soupravu složenou jo to je tam je moc pěkná věc

já stejně mám to tady zdůraznění protože krásným se díky tomu rozšíření interfejsu tady budu

mluvit za chvilku stalo velice důležitou věcí dal pro ostatních jazycích se dost často říká

že to není dobrej nápad něco přetypovat a podobně když to tady to není jenom

běžné přetypování tady to

je vlastně převedení a koukání se na data o úplně mimo brejlema tak dále

pak vysvětlen takže krásný dal určitě jo a určitě správně určitě to dělejte

rekurzivní typy máme je rekurzivní typy můžete nadefinovat strom prostě rekurzivní aniž by ukazoval vlastně

na sebe a museli jste tam řešit nějaké po linky a podobně protože dal yum

jako ty statě neexistují takže je to vyšší jazyk tak právě proto

a máme rekurzivní topit to znamená můžete se s tím opravdu nadefinovat co potřebujete

a měl zejtra používá výjimky ale ty vím že jsou používané opravdu ve smyslu výjimečných

situacích to znamená ne na otevření souboru a podobně protože očekává uši ten programátory při

otevření souboru se prostě může stát že ten soubor neni nebo něco se stane takže

výjimka je spíš opravdu

nějaká chyba počítače nebo naprosto neočekávaná situace oko

řekněme že to podobnější chápání mezijazyk nebo

něco takového

a konferenci mlýny s máme tam mnoho způsobuje můžete si necháme za vlákna z měl

jsem push kanály a tam čas který jsou přímo zabudovaný znamená a měli by bejt

vypadá jakoby nejbezpečnější

ale určitě se nehodí na všechno a rozhodně se nehodí na všechno určitě sto přečtete

na internetu například právo omezit symbol kde se ty piny a podobně hodně tlačí ale

ve skutečnosti to není vůbec jako optimální způsob je všude synchronizovat vlákna podobně výpočtech

máme tady nějaké jako když rails máme tady standardní mutexy a podobný věci prostě všechny

synchronizační primitiva který používáte pochopitelně pokud můžete použijte ty vyšší abstrakce pokud ne tak užitečnější

jednoduchá věc tak teďka k těm interfejsu

interfejsy

vzdal

sme se jim a zabývali měli jsme původně dallas pak to je orientovaný programování sme

tam a nějaké dekorátory a podobné věci a nakonec jsme zjistili it interfejsy kterého si

fungovaly podstatě stejně jako nebo velice podobně jako javě no

posledních řekněme staticky typovaných je znovu stavy čtyři pět takových jazycích

a pak sme s

zjistili že se na to může podívat zase úplně jiným způsobem a vytvořili jsme konce

takzvaných abstraktních enterprises to soud interfejsy vo kterých sou teďka mohl a pak takzvaných konkrétních

interfejsu

a ty konkrétní interfejsy voze přestat jako implementace nějakého interfejsu

kterou můžete aplikovat na nějž existující data paměti a pak se na ně dívat jenom

prostřednictvím toho implementovány interfejs

pak nakonec ukážu je to funguje a nehodí se to například pro případech kdy

neznám to si objektově orientovaný programování jeden z největších problémů se ukazuje že vy musíte

prostě dopředu zná na co všechno kterým pověz evropu že když to neznáte tak musíte

použit dynamických bitový obě programování a tím pak musíte mít

všechno vím dynamicky prohledávaný daném tajný ztrácí ti p tím rychlost úplně ve všech směrech

a sebemenšího by musí prostě dané nicky prohledávat levice tak dál špatně se to ty

malé někdy té dost dokonce nebo mít optimalizovat znamená jinými slovy tudy cesta nevede a

my sme vymysleli že ten konkrétní interfejs

a vytvoří jednoduchou věc

on vlastně jak jsem říkal i je to implementace oznamem budete mít interfejs pro nějakou

přídu pera pro nějakou metodu

no todle interfejs pro třídu a růžový pro metody jednoduše tak hloupej na tomhle případě

tak vy znaménko ne to je to biče nakoupila funkce například ale s tím rozdílem

že by tudlectu funkci potom můžete aplikovat na

jakoukoli proměnnou která už má ten ty pro kterej byl tenhle konkrétní interfejs nekoukli ten

ris

vytvořeny to znamená vy budete mít třeba date a co vše statické ty paměti krys

vždycky kopíruje struktura malá prostě se která jenom naprosto nevinně na naprosto

ale vy byste chtěl aby to dělat řádovou metodu nebo aby se nějaká stávajícího teda

fungoval a chovala jinak prostě a tak dále a tak se vám nevyplatí vytvářet novou

třídu dědici všechno přepisovat všechno volat nějaký venca tak dál a tak dále jestli jednoduše

vytvoříte konkrétní interfejs

pro stávající interferes toho by tam třeba typu

a akorát si potom místě kde to potřebujete přetypuje tenhleten tady a tam bude staticky

prostě daná přímo jenom zavolání týdletý metody kterou je třeba potřebujete a nakonec to ste

si navíc tak všechno

znamená vlastně proběhne téměř nulová kopie všechno by mělo bejt výrazně rychlejší a je tady

čitelnější a jednodušší pro programátora

takže to je takových ruby ve představení

kolik mám času

novej k zámku

holt všichni znáte

není potřeba cítit

a za dvě minuty na je to vlastně základní podobně to je trošku cc plus

prase vypíšu si argumenty tři tečky znamená nějaký počet argumenty jakýhokoli typu s arc práce

s je přejmenoval ty tři teďka bych musel by tři tečky museli dělat tady už

radši teďka

nekonečně ty novinky původně tom a jazyce dál se používaly pages tedy byly uzavřený to

znamená jako v ruby by to mělo by nakonec se ukázalo o dvou letech používání

toho dalo vybraným provozu na reálný program a tak dále že to není plně

to nejlepší to není optimální jako prostě nakonec není _e změnilo se to chápání a

řekli že to bude uzavřený zleva otevřený zprava interval to znamená jako fajn

další věc co všechno jsme provedli za a vlastně odebrání odebrali sme ty dekorátory tady

vlastně se dají nahradit těma abstraktním a konkrétníma interfejs a má

to pak až ještě rychle

_m

no tímto mám napsaný vlastně dál jsme odstranili to aspect orientovaný programování který se ukázalo

že poměrně invazivní protože s tím aspektu je orientovaný program podle toho jak je definovaný

tak vlastně jsme schopni skočit kamkoli do běžícího programu a podobně a to není úplně

optimální

takže jsme řekli že radši dáme programátor větší kontrolu a řeknem nějak používá řádky konkrétní

interfejsy namísto toho

a

rozšířili souhlasim funkce metodě konkrétních interfejsu aby byly aplikovatelný na samotný rutiny na samotný metody

nadtřídy na cokoliv podstatě

a odstranil _e jsme podporu syntaxe liché sem má maker prosím tak si protože zase

ze stejných důvodů aby si každý programátor ne vymejšlel svoje vlastní vhodně to bylo hlavně

pro testovací účely pak to bylo spíš takové marketingové tahá ale pochopitelně v reálu to

není úplně nejlepší nápad

no a poslední mach rovina kterou jsme tam nějaké nám za někoho zamezí co teprve

ten střelím skrá vlastně člověk moh napsat vyloženě ták a následující call přímo dalo píšu

po

následující core toho označen jako že céčku a pak napíšu zase daleko a mysim je

to zkompilován prostě dodal všechno céčko se s kontrolou nemoce kompilátor na koho si přímo

jako modul toho dalo překompilován si programátor no sem sice vím o spoustě to já

jsem si přál superrychlý věci mu napsat céčku celku spouštět jsem chtěl

no jsme odstranili přes neuznali a že bude lepší když to vostudu řešit nějaké vyšší

abstrakce pro programátora třeba jí déčko

a programovací prostředí a nějakého ten je za c

ta nás ten sem zmínil a tady mám ukázky ty si pak můžete projít kdo

má doporučuju na tam zvýrazněný ty věci prostě konkrétní interfejs se dělá tímhle s tím

for pro něco

ukázka jak se to užívá a jak vypadá výstup potom

a teďka jak se používají ty

rozšířený interfejsy pro rutiny což předtím nebylo to je vlastně hlavní novinek

a trest

tady todle co sou konkrétní interfejsy pí no přímo na pro třídy

tak

kde si všude dá používat a kde se používá jazyk dalo tak především byl informatika

na několika univerzitách ve světě a pak se používá na všechny ty další věci který

tady mám vypsaný

na tam nějaký jednoduchý hry máme tam nějaký déčka tak dále takže používá se to

sice málo ale už vše toho zkoušený mnoha vlastně

a hodně nový zajímali o té takový minimalistický takže byste si měli žijícím srandu tady

a to ste na prvních vlastně ten který s tím jazykem manitovost neanimovaní ale _e

není

a tady si nějakého zase bude to dispozici po konferenci operejch opět stažení takže jsou

tak vám děkuju za pozornost dotazy prosím marku přednášce už nemáme čas já se omlouvám

že se zase přetáhl myslím si že ale dvě minuty na to že sem stahovalo

ten deficit je to ještě dobrý jako za pozornost