Slajdy z přednášky "Znáte dobře Ruby?"

Zveřejnil jsem slajdy z mé včerejší přednášky Znáte dobře Ruby?

Myslím, že mé povídání se celkem vyvedlo a rubysti tak spatřili i odvrácenou tvář svého oblíbeného jazyka, která je bude ve snech ještě nějakou chvíli pronásledovat :-) Účinky na přítomné nerubysty si netroufám odhadovat...

Slajdy jsou v XHTML. K prohlížení slajdů v XHTML v normálním režimu (všechny slajdy za sebou na jedné stránce + zobrazené poznámky) stačí libovolný prohlížeč podporující data: URL (Internet Explorer, který je neumí, zobrazí stránku bez stylů a obrázků). Slajdy je také možné přepnout do režimu prezentace – ve Firefoxu použijte odkaz Spustit jako prezentaci, v Opeře stačí přepnout do režimu zobrazení přes celou obrazovku. V jiných prohlížečích není prezentační režim podporován.

Nov 6, 2008 – 12:01

Comments

Jakub Vrána
Přednáška byla velmi podařená, od Ruby mě definitivně odradila...

Je nějaký důvod, proč se v prezentaci používá {link href="data:"} místo standardního {style} a {script src="data:"} místo samotného {script}?
David Majda
[1] Je to dáno buildovacím skriptem, který balí více zdrojových souborů prezentace do jednoho výsledného. Přibaluje takhle všechny externí soubory včetně třeba obrázků, kde už to jinak než přes data: nejde.

Jasně, šlo by to obejít, ale radši mám CSS a JavaScripty při vývoji oddělené a balící skript jednoduchý.
David Majda
[3] Skript jsem si psal sám. Jeho účelem je především to, aby výsledek (včetně obrázků, odkázaných příkadů apod.) byl v jednom self-contained HTML souboru, takže uživatel není nucen stahovat moře souborů. To jde pokud vím udělat jen dvěma způsoby: přes data: a přes MHTML. Zvolil jsem první způsob, protože má větší podporu a je standardní.

Nijak nešikovné mi to nepřijde, naopak, funguje to docela pěkně. Jediná nevýhoda je, že to nefunguje v jednom konkrétním technologicky zaostalém internetovém prohlížeči, s čímž se s lehkým srdcem smířím.
Milan Kryl
Google Chrome v poslední verzi má nějakej problém při otvírání. Nicméně stránku nakonec zobrazí.

No style sheet with id "presentation-stylesheet" was found in the document.
David Majda
[5] Dík za bugreport.

Na vysvětlenou: JavaScript pohánějící prezentaci vznikal v době, kdy byl WebKit k dispozici pouze v Safari a to běhalo jen na Macu, takže jsem tehdy neměl jak funkčnost prezentace ve WebKitu snadno otestovat. Od té doby skript jen kopíruju do dalších prezentací...

Dneska už je samozřejmě situace jiná a až budu dělat další přednášku, nejspíš se podívám, zda skripty ve WebKitu půjdou zprovoznit.
karmi
karmi
@Jakub: To jako vážně? Tomu nemůžu uvěřit :) Každý jazyk má přece takových demencí asi pět miliónů, nebo ne? Co *konkrétně* ti na těch předváděných bizarnostech přijde tak strašlivé, že tě to "definitivně" odradilo od Ruby?

(A přitom mi nejde o Ruby jako takové, na tom nezáleží. Ale o tu argumentaci, co je právě na *tom* tak strašlivé...)
Jakub Vrána
Mě na Ruby nejvíc odrazuje http://latrine.dgx.cz/ruby-on-rails-dekuji-nechci

Přednáška mě navíc přesvědčila o tom, že ten jazyk prostě vychází z jiné filozofie, než kterou používám já. Konkrétně mi vadí "Metody a proměnné" a "Jména tříd", nejvíc ale asi "Ekvivalence". To jsou věci, které by mě asi nikdy nenapadly. V jiných jazycích jsou také chyby, ale většinou chápu, jak vznikly, protože sám bych se jich možná dopustil taky.
optik
optik
[8] - Až bude stabilní 1.9 tak se může ruby stát opravdu velmi zajímavé a to zejména díky novému virt. stroji, pokud opravdu výkonově strčí do kapsy i Python, tak to bude super. Dýchavičné PHP nebude moc stačit, interface do C má ruby také prý o dost jednodušší než PHP.

Těch much bych se nebál, to se časem vychytá. Hlavní výhoda oproti PHP je objektový design od začátku, ne roubování někde v půli trati. Rubinius je další slibná věc.
karmi
@Jakub: Sorry za zpoždění, vypadl jsem.

Jo tááááááák, to je ta Davidova filipika proti dynamičnosti v Ruby :)

Ono to má prostě dvě strany: jednak si můžeš předefinovat `capitalize` nebo i `+`, na druhé straně to umožňuje ty věci z Rails typu `1.day.ago` (které by jinak samozřejmě jít ani nemohly.)

Není to ale v Ruby to nejhorší. Z tohoto pohledu jsou brutální věci jako je zne/využívání `method_missing`, definice metod za běhu, š'tourání se v objektech pomocí `instance_variable_get`, atd. To je něco, co si umím představit, že neznalého vyděsí.

Proto mně překvapuje, že by Davidova přednáška někoho mohla "odrazovat", protože se něčím takto pragmaticky platným nezabývá, ale řeší zajímavé || nepodstatné (škrtněte co se nehodí) bizarnosti na okraji jazyka, které na běžnou práci nemají žádný vliv...

A přijď zase!! :)

--karmi


David Majda
Karmi: Jasně, jsou to nepodstatné okrajové případy. Na žádný z nich jsem nenarazil v praxi, ale přímo ve zdrojáku Ruby nebo jsem o něm někde četl (Pickaxe, Flanagan).

Ale je to zároveň okénko do mysli Matze a dalších tvůrců Ruby. A když někdo podle tohohle výseku bude soudit, jak je udělané celé Ruby, dovedu si docela dobře představit, že ho to odradit může.
karmi
@David: Ale tak to ty říkáš o Matzovi pořád takové věci :)

Já bych neřekl (a to poměrně emfaticky), že je to "okénko do mysli". Je to prostě důkaz, že i implementace programovacího jazyka je *jen další software*, tudíž má *chyby*, což u software většinou znamená "aha, tohle mně nenapadlo (že by někdo mohl zadat, že by někdo udělal, atd)"...

Možná bychom mohli vyděsit někdy příště neRubysty spíš nějakou brutální ukázkou s method missing nebo otvíráním a předefinováváním tříd .)

Add comment

It is not possible to add comments to posts older than one month.