Jak tak pozoruji firmy kolem sebe, vidím možnosti, jak radikálně zlepšit způsob, jak vyvíjí software. Jeden z nich se zaměřuje na PHP. Potkávám spousty firem, které mají staré zdrojáky a cítí, že nasadit běžný MVC framework by pro ně znamenalo zahodit spoustu času, peněz a kolikrát ani nemají pro něco takového podporu managementu. Zároveň vidím to, že se pořád víc věcí programuje v JavaScriptu. V JavaScriptu, který ale mnoho vývojářů moc neumí, dělají v něm řadu kopanců, buď ho používají jako dlouhatánskou jQuery nudli, nebo se z něj naopak snaží udělat druhou Javu. Já chci ukázat jiný přístup, odlehčený, přístup, který nevyžaduje tunu knihoven pro to, aby byl vývojář produktivní.
Takže mám něco jak pro ty, kteří píší v PHP, tak pro ty, kteří píš
Celý článekDnes představuju druhý díl povídání s přednášejícími na JS Transpilers Room. Na mé otázky odpověděl Honza Voráček, Pardubický vývojář v TypeScriptu, kterého jste už mohli slyšet na Javascript Frameworks Conference.
Ahoj. Jmenuji se tedy Jan Voráček. Jsem student na Univerzitě Pardubice, kde aktuálně dělám na diplomové práci na téma (ve zkratce) Dart vs. TypeScript. Pracuji také v Agiliu – malém pardubickém startupu, kde působím jako JavaScript (resp. TypeScript) a PHP vývojář. Baví mě poznávání nových technologií a postupů a zároveň šíření mých znalostí dál. Od počítače se ale i rád zvednu a jdu někam na procházku a v poslední době mě docela baví posilování. No a sa
Celý článekV příštích několika dnech mám v úmyslu vydat rozhovory s Michalem Tillem o ClojureScriptu a Honzou Voráčkem o TypeScriptu. No a protože otázky, které jsem jim dal, můžou být relevantní i pro LiveScript, máte tu první část – o LiveScriptu.
Už dříve jsem experimentoval s tím, jak se dá psát funkcionálně v CoffeeScriptu. Vytvářel jsem si různé funkce na statistiky, výpočty apod. No a vloni v létě jsem se naučil základy Erlangu a pochopil jsem mnohem víc to, jak se dá psát immutable software. Vždy, když jsem se snažil přenést své nově nabyté vědomosti do CoffeeScriptu, narážel jsem. Zkoušel jsem tak i jiné dialekty a vyhrál pro mě LiveScript.
Je totiž kompatibilní s CoffeeScriptem, který jse
Celý článekJedna z vychytávek, kterou používají vývojáři v Haskellu, je tzv. point-free programming. Jedná se o formu zápisu funkcí, při kterých vůbec není potřeba zapisovat parametry funkce.
Mějme v LiveScriptu funkci pro sečtení čtverců od 1 do N.
to = (n) -> [1 to n]
sum-of-squares = (n) -> sum map (^ 2), to n
Tato funkce není point-free - vypisujeme seznam parametrů.
Nyní bych vám rád představil operátor . (ano, tečka), který slouží pro kompozici funkcí. Když napíšu abc = a . b, je to jako napsat abc = -> a(b.apply(arguments)).
Funkci můžu převést na tento tvar:
sum-of-squares = sum . (map (^ 2)) . to
Všimněte si, že už nepotřeuji šipku ->. Jak se vyhodnocuje potom tento kód?
sum-of-squares 5
V 1. kroku je zavolána funkce to(5), která vrátí [1, 2, 3, 4, 5]. V dalším
Celý článekKdysi Borek Bernard napsal, že „JavaScript je assemblerem webu“. Dokud se nerozšířil CoffeeScript, nedávalo mi to vůbec smysl. Časem se ale začaly rozmáhat i další a další transpilery a začaly si konkurovat. CoffeeScript už dnes považuju za překonaný (nevím o jediné věci, která by šla v Coffee zapsat kratší nebo čitelnější, než v LiveScriptu).
Každopádně konkurence je dobrá věc. A každá konkurence si vybírá svou cílovku.
Rozhodli jsme se ve Sprint Masters uspořádat první ze série večerů pro vývojáře, kteří se zajímají o jazyky překládané do JavaScriptu: JS Transpilers Room.
Na co se můžete těšit?
Praha, Ostrava, Pardubice – v příštích týdnech budu povídat o tomto skvělém transpileru na třech místech. Pokud vás zajímá, moc rád vás uvidím.
Praha 15.5. večer – Na Lambda Meetupu na ČVUT, kde si budeme povídat o funkcionálním programování, budu mít krátký lightning talk. Kromě toho tady můžete potkat partu nadšenců do Clojure, F#, Shenu a Haskellu a dozvědět se víc o funkcionálním programování.
Pardubice 24.5. večer – Tato akce ještě nemá web, ale už tento týden se dozvíte více. Budu ukazovat LiveScript a můžete se těšit na další přednášky o TypeScriptu a ClojureScriptu. Stay tuned!
Ostrava 30.5. přes den – Na Javascript Frameworks Conference na VŠB se můžete těšit na trochu delší povídání o LiveScriptu, finty v syntaxi a na ukázky kódu z prCelý článek
Pár hodinek denně si vyvíjím aplikaci pomocí TDD v Clojure. Je to pro mě odlišný svět, byť se ten jazyk už nějakou dobu učím.
Před časem jsem se naučil základy Erlangu. Už o něco dřív jsem zkoušel psát skoro-funkcionálně v CoffeeScriptu. Ale až ten Erlang mě dovedl k pochopení toho, jak je možné vyvíjet aplikace s immutable datovými strukturami (lehce, když to jazyk podporuje) a bez přiřazování.
Erlang mezi funkcionálními jazyky mi přišel trochu jako PHP mezi imperativně-objektovými. Pragmatičnost velká, ale zdroják se mi nelíbil.
Tak jsem si četl a poznával další jazyky. Celé to moje bádání by vydalo na samostatný článek. Co chci ale říct, nakonec jsem zakotvil u dvou (ne pure-) funkcionálních jazyků, v kterých dnes píšu 80
Celý článekKdyž něco děláte a děláte to s nadšením, tak se kolem vás začnou objevovat spousty lidí, s kteými chcete spolupracovat. A protože ti lidi jsou často ochotní vám pomoci s různými cíli, začnete spolupracovat.
No a tak jako každý člověk, mám víc nápadů než času. A přitom se některých projektů nechci vzdát. Věřím, že jsou užitečné a pomůžou spoustě lidí.
A tak jsem založil Sprint Masters s.r.o.. Firmu, která je zatím mou prodlouženou rukou (v budoucnu to tak, pevně věřím, nebude).
V tuto chvíli je nás 6. Bylo nás pět, ale hned zezačátku se mé druhé jednatelce narodila malá Verunka. Kdyby vás to zajímalo, má se super a brzo začne mluvit.
A teď vám povím víc o věcech, které pro vás chystáme.
Každá úspěšná firma se občas
Celý článekIkdyž budete sebevíc měnit a ovládat svůj život, vynoří se občas úkoly, do kterých se vám vůbec nechce. Pro někoho to bude návštěva zubaře, pro jiného práce s nepříjemným zákazníkem…
Co funguje mě, když se mi nechce pustit do nějakého úkolu?
Jeden z postupů, který používám, pokud úkol odkládám o opravdu hodně dlouho (týdny), je, že si vytvořím mind-mapu.
Na jedné straně mind-mapy sepisuju cíle, které úkolem sleduju a podmínky, které mám.
Na druhé straně sepisuju problémy a důvody, proč se mi do úkolu nechce.
Obvykle zjistím, že to, co mě odrazuje, je jeden z prvních kroků. Kroků, které se dají přetransformovat na jiný, zábavnější úkol, často i úkol, který můžu delegovat.
Takže přepíšu úkoly tak, aby cíle byly dosaženy, pod
Celý článekNarychlo poskládaná akce, podle slov pořadatele Štěpána Bechynského: „Původně nápad na akci pro 90 lidí v jednačkách Microsoftu přerostl přes hlavu“. Jaká byla?
Bylo fakt vidět, že je to rychloakce. Jediný web je tato stránka: http://www.geekcore.cz/events/3634 Nebyla domluvena restaurace, kam jít. Část lidí to řešila KFCčkem. Já jsem šel do prověřené Restaurace Pod Loubím, která by rozhodně Michelinskou hvězdu nedostala, ale své okolí převyšuje.
Těžko můžu vyčítat něco, co byla původně fakt jen rychloakce, ale příště bych doporučil: