_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
já
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