Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 605 606 [607] 608 609 ... 618
9091
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 01:57:54 »
Lispař nebude nikdy v diskusích žehrat na to, že mu v něm chybí nějaká vlastnost - tu výjimky, tu rozhraní, tu vícenásobná dědičnost, nebo když už se to tam dodá, tak že je to vymyšlené nešikovně.

No tohle už je úplná zoufalost... Takže vlastně ostatní jazyky jsou špatné proto, že mají něco, co Lisp nemá, takže v Lispu si to člověk musí sám napsat, čímžpádem pak nenadává na to, že to někdo jinej napsal blbě.


Aneb: člověk programující ve strojovém kódu nikdy nebude žehrat na to, že nemá výjimky, ale jenom nuly a jedničky - když bude vyjímky chtít, tak si je napíše tak, jak sám potřebuje, protože nuly a jedničky jsou to nejmocnější a nejjednodušší, co se dá počítači naservírovat.

Uf.

9092
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 01:45:26 »
Ta argumentace "ale tohle se dá udělat v XYZ taky.. a dál?" mi není moc srozumitelná. A co jako? Zmínil jsi jakýsi jazyk Boo. To se můžu mnohem smysluplněji ptát - k čemu je to dobré? Všechno, co zvládne Boo, se zvládne v LISPu taky a přinejmenším stejně jednoduše. O opačné inkluzi se dá s úspěchem pochybovat. Tak na co Boo? :D

Ovšem já jsem taky netvrdil, že Boo je jazyk pro opravdové chlapy, kteří si umí narozdíl od cvičených opic pomocí nářadí udělat nářadí. A že se dá o nějakých jazycích s úspěchem pochybovat.

Pokud by se mě někdo ptal, proč Boo, tak bych řekl, že proto, že je stručný, přehledný, má k dispozici poměrně slušnou standardní knihovnu (CLI), poskytuje bezešvou integraci s jedním z komerčně nejpoužívanejších jazyků (C#) a tímpádem je k němu obrovské množství knihoven. Ovšem nenabízí nic, co by se nedalo najít jinde.

Takže Boo například proto, že si v něm napíšu webservice s veškerým komfortem (testovací webová stránka, generování wsdl, atd. atd.) asi tak za dvě minuty včetně prohledání dokumentace a výsledek bude na tři řádky kódu. Nemám pocit, že jsem pánem světa a proto tady nehulákám, že by se dalo s úspěchem pochybovat o tom, že v Lispu by šlo totéž stejně elegantně, rychle a efektivně. Místo toho jsem se snažil zjistit, co teda jde v Lispu tak elegantně - a zatím jsem se nedozvěděl v podstatě nic... Škoda, protože v blízké době budu potřebovat napsat nějakou věc na zpracování dat a přemýšlel jsem o prologu, ale pro CLI mě žádný neoslovil. Třeba by Lisp byl zajímavý, ale po přečtení téhle diskuse na něj nemám ani trochu chuť :(

9093
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 01:29:05 »
Mně stále není jasné, oč ti jde.

Chci se konečně dozvědět, proč je Lisp jazykem pro programování, zatímco jiné jazyky jsou pro cvičené opice ke slepování kódu...

Ptal se, jak se LISP uplatní třeba v robotice nebo obecně v embedded - dal jsem ten nejtriviálnější příklad, jaký si lze vymyslet.

Podle toho, co tady zatím čtu a co jsem si teda (páč argumenty tady nezaznívají) byl donucen přečíst o Closure, mám ještě triviálnější odpověď: Lisp se v robotice uplatní úplně stejně jako jakýkoliv jiný moderní jazyk. Ovšem při používání Lispu se naučíte druhé lidi ohromovat poetickými báchorkami o Lispu.

9094
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 01:15:50 »
Ty příklady jsou ale na demonstraci docela fajn.

Mně přijde, že ty příklady nedemonstrují nic jiného než by demonstroval (print '(print 1)). Někdo je z toho asi paf, to mu neberu, ale já bych chtěl vědět, k čemu tak zázračnému se to teda dá použít...

Tak nějak tuším, že by to mohlo být fajn pro různé automatizované dokazování korektnosti nebo tak něco, ale zatím jsem se tady jenom dozvěděl, že je to jako nářadí, kterým si můžu poskládat nářadí, se kterým bych možná mohl něco vytvořit, pokud bych byl geniální tak, jak obvyklý lispař je... ...a pak teprve bych mohl vytvořit třeba... nářadí.

9095
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 00:38:54 »
Díky, Ondřeji, konečně něco konkrétního!

Pokud třeba máte jazyk, který neumožňuje rozumně definovat přístupové metody pro atributy objektů, tak si můžete nadefinovat makro, které ty přístupové metody automaticky vytvoří. Něco jako:

(create-setters 'age 'name)
(create-getters 'age 'name 'job 'wtf)


…a to makro automaticky vytvoří metodu set-age, get-age apod.

Tohle třeba v Pythonu jde úplně v pohodě (dekorátory, setattr). Jak moc to jde (za běhu) v CLR jsem nezjišťoval, protože jsem to zatím prostě nepotřeboval. Ale předpokládám, že to půjde minimálně od doby, co CLR umí extensions, nebo jak se to jmenuje - prostě rozšiřování už existující třídy. (Mimochodem, škoda že kromě tohodle neopsali z Objective C raději dědění konstruktorů...)

Když tak ať nějaké víc hardcore příklady dá nějaký hardcore lispař ;-).

No já na to pořád čekám a pořád nic... Asi se hardcore lispaři s ne-hardcore ne-lispaři nemají potřebu bavit...

Docela zajímavé bylo makro, které umělo převádět rekurzivní funkce na iterativní verzi, pokud to šlo. Takže pokud bylo jednodušší napsat rekurzivní verzi než iterativní (třeba klasicky faktoriál), tak jste to mohli napsat rekurzivně a nechat to projet tím makrem.

No tak tohle konečně zní opravdu dobře a zajímavě! A to makro to umělo OBECNĚ? (jde to vůbec? Teď nějak nemám buňky nad tím přemýšlet...)

Jo a omlouvám se, pokud všechno tohle lze běžně v jazycích dělat, já už moc přehled nemám, skončil jsem nakonec u C# a tam tyhle krávovinky fakt dělat nejdou.

No až na ten převod na iterativní algoritmus tam všechno (nějak) dělat jde.

A pro jistotu — hlavní rozdíl mezi makrem a klasickou funkcí je, že makro hned nevyhodnotí své atributy, to bylo vidět u toho příklad at-least-two. Proto jdou makrem zapsat věci, které by klasickou lispovou funkcí zapsat nešly.

No to zas taková bomba není - když už by to teda člověk tak strašlivě chtěl, stačí mu napsat něco podobného ICallable, co bude zároveň zapouzdřovat zdroják... Jasně, není to tak elegantní - no a? Copak je to něco, co používáme denně pětkrát?

9096
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 22:23:54 »
Zkrátka nadefinuješ si funkci pro zatočení a hned si ji zkusíš. Když něco nejde, opravíš a zkusíš znova. Odladěnou funkci pak použiješ dál. [...] přímo za provozu pak můžeš měnit program, testovat nové funkce - žádná editace zdrojáku-překlad-upload do robota-zapnutí robota-vypnutí robota-a znova. [...]  Reakce robota na podnět senzorů se může generovat makrem na základě předchozích zkušeností atp...

Všechno tohle můžu v libovolném interpretovaném jazyce, který má eval... A dál?

Ten kód co tvoříš je navíc dost hutný [...] Fakt je ten kus kódu tak šíleně nečitelný a nesrozumitelný, jak tu někteří tvrdí?

Kód: [Vybrat]
(defun opposite (side)
  (if (eq side left) (right) (left)))

(defun turn (direction angle)
  (switch direction motor off)
  (switch (opposite direction) motor on)
  (delay (normalize-to-speed angle))
  (switch (opposite direction) motor off))

A o co méně hutný je tenhle (Boo, Python)?
Kód: [Vybrat]
def opposite(side):
  if side==left: return right
  return left

def turn(direction,angle):
  switch(direction, motor, off)
  switch(opposite(direction), motor, on)
  delay(normalizeToSpeed(angle))
  switch(opposite(direction), motor, off)

Co z toho je srozumitelnější je samozřejmě věcí názoru, zvyku, atd., nikomu necpu svůj názor, že to první je daleko méně přehledné.

9097
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 17:27:15 »
A co je na nich tak zásadně nového?

Je to dalsi zpusob abstrakce, tj. zpusob jak zkratit program.
[/quote]

Aha.

9098
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 16:27:12 »
Makra.

A co je na nich tak zásadně nového?

9099
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 15:52:23 »
Kdybys kliknul na odkazy v tom komiksu, tak by ses mozna i neco dozvedel. Nicmene..

Ptám se naprosto srozumitelně: umíš výhody Lispu uvést v deseti větách a přidat relevantní důkazy? Nechci na nic klikat, nechci se Lisp učit, nechci poslouchat citáty slavných. Je to tak složité?

Nevim, co jsou "relevantni dukazy".

No tak to je pak opravdu těžké... Co třeba odkaz na šéfa nějaké firmy, jak říká, že po přechodu od C# na Lisp zvýšili produktivitu práce na dvojnásobek? Co třeba odkaz na nějaký projekt, který v Lispu realizoval za pár dní něco, co se jiná srovnatelně velká skupina lidí snažila dělat měsíce? Co třeba odkaz na akademický projekt, v rámci kterého se (zjevně díky Lispu) podařilo udělat něco, do čeho se do té doby nikomu nechtělo (protože neznal hermetické tajemství Lispu)?

Ptas se jako programator, nebo kapitalista? Programator by se mel spis ptat, proc by se mel Lisp trochu naucit.

Moc nechápu, jaký v tom je rozdíl, když oba mají (resp. měli by mít) ten samý cíl: pracovat rychle, efektivně, kvalitně a komfortně, ale ok, ptám se tedy raději jako programátor: zkusil jsem c, c++, objective C, javu, python, boo, prolog, haskell, maličko tuším, co je to lambda kalkul a transparentní intenzionální logika. Co tak zásadně nového mě naučí lisp (především oproti prologu, haskellu a zmíněným formalismům)?

9100
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 15:01:49 »
Jako muzeme diskutovat konkretni aspekty. Me se treba hodne v CL libi system restartu (i kdyz jsem ho zatim nepouzil), a to je takova vec, ktera se bezne nezminuje. Co by te zajimalo? Vysvetleni konkretnich vyhod je zabavnou formou podane na http://landoflisp.com/.

No tak zase takovouhle formou to nemusím mít :)

Co by mě konkrétně zajímalo? Ta nejzákladnější otázka: proč bych měl Lisp použít? To mi to opravdu někdo neumí říct v deseti větách a přidat k tomu relevantní důkazy?

Přijde za mnou člověk a řekne "Naprogramuj mi aplikaci na XY". Měl bych použít Lisp? Pro která XY? Proč? Bude ten program rychlejší, stabilnější, uživatelsky příjemnější, budu ho mít rychleji napsaný, bude snadnější jeho nasazení na běžném OS, bude se lehčeji udržovat, bude kód srozumitelnější pro někoho, kdo přijde po mě, bude kód znovupoužitelnější?

Chápej, mně taky přijde pěkný, že program a data jsou totéž, takže si můžu nakrásně vzít funkci, smazat každou druhou operaci a poté tu takhle upravenou funkci spustit, ale ať přemýšlím, jak přemýšlím, ještě jsem to nikdy nepotřeboval (a to jsem už programoval hodně ulítlý věci, včetně třeba migrace spouštěného kódu po síti na jiný stroj apod.) - natož, aby to ocenil nějaký potencionální zákazník.

9101
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 14:20:13 »
Je informatika a "informatika" a VŠ a "VŠ" - dneska se "informatika" učí na každé "VŠ", jinak by se jim tam nikdo nehlásil, protože přece informatika dneska frčí.

Aha, takže teď se navíc budeme ještě kádrovat. Ach jo. No tak třeba já mám MU Brno - je to dostatečná kvalifikace pro to, aby mi mohla být sdělena aspoň ta nejtriviálnější zásvětná tajemství tohodle hermetického kroužku?

Nejlepší je se samozřejmě o tom pobavit a nejlépe názorně s někým, kdo se tím zabývá.

Sorry, ale tady platí to, co jsem psal výš - IMHO jestli nkdo neumí srozumitelně vysvětlit alespoň základní věci v pár větách, tak to pravděpodobně ani nestojí za zkoumání...

když se lidi, jako je např. Alan Kay vyjadřují o LISPu jako o [...]

Než se mlátit po hlavě citáty slavných, tak to už asi raději ta poetická přirovnání...

9102
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 13:44:42 »
To je jako by ses na srazu diskotékových DJs vyptával, co si myslej o Bachovi, jestli má smysl se jím zabývat a jestli má smysl učit se hrát na piáno. Asi takovou relevanci má diskuse o LISPu tady

Další zajímavá poetická parela do sbírky :) Skoro se mi zdá, že LISP člověka naučí hlavně tohle :)

Smím se zeptat, proč diskuse o LISPu tady nemá smysl? Je tu zjevně dost lidí, kteří o programovacích jazycích něco ví, s několika mají vlastní zkušenosti, včetně nějakých neprocedurálních, a pravděpodobně mají za sebou nějakou tu informatiku na VŠ.

V jakém už jiném prostředí by diskuse o LISPu měla smysl? V tom citovaném kroužku asociálů?


9103
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 13:32:11 »
Tak jsem trochu googlil a zjistil jsem. Co rici zaverem. LISP se stava pouzivanejsim, jak je patrne z nekterych srovnavacich tabulek.

Možná jsi použil špatné nástroje Googlu. Z jakých tabulek je patrné, že je Lisp stále používanější?

Já jsem našel něco jiného: http://goo.gl/DDBnR  (když si tam přidáš "C#", LISP úplně zmizí ze scény...)

A co se týče zaměstnání, tak třeba: http://goo.gl/RCfPf

Chapu to spravne tak, ze LISP je dnes uz vlastne jen prostredek k tomu, aby se mohlo par asocialnich zivlu vymezovat a placat se po ramenou?

Tak peprně bych to asi neřekl (ale zasmál jsem se, to jo :), ale ta diskuse tak vypadá :( Konkrétních argumentů jako šafránu, zato emotivních srovnání typu "jazyk pro programátory a ne pro cvičené opice", "reálná a komplexní čísla", "nářadí" habaděj...

Tak to ukončeme. Na co se Lisp používá tu bylo řečeno.

Ano :)

9104
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 29. 03. 2011, 00:02:06 »
Kvalitní zápis programu v Lispu je sice vývojově zdlouhavější, ale výsledný kód je výrazně kratší a je efektivnější.

Efektivnější než co?

9105
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 28. 03. 2011, 23:53:16 »
považuji statické typy čím dál častěji za užitečnou vlastnost.

Taky jsem k tomu dospěl. A když mě chytla zoufalost, co že teda budu používat místo Pythonu, objevil jsem Boo :)

P.S. tímto příspěvkem nikoho k ničemu nevybízím a nic neprosazuju. Flame o statickém typování jsem si už jeden zažil a myslím, že jeden za život je tak akorát dost ;)

Stran: 1 ... 605 606 [607] 608 609 ... 618