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 ... 603 604 [605] 606 607 ... 618
9061
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 31. 03. 2011, 15:08:39 »
Myslim, ze na to, ze je CL dynamicky jazyk, ma dost slusnou rychlost.

Souhlasím. Rozdíl oproti třeba tomu Pythonu je obrovský. To je rozhodně zajímavé a jsem rád, že jsem se to dozvěděl.

Ale na druhou stranu třeba se C#em Lisp co do paměti prohrává a co do rychlosti je to nastejno:

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=sbcl&lang2=csharp

takže za předpokladu, že Boo bude co do výkonu stejné jako C# (není žádný důvod, proč by nebylo), volím jednoznačně Boo a ne Lisp - z důvodu dynamičnosti kdy-je-potřeba a statičnosti jinak (->kontrola), obrovského množství knihoven a nástrojů a snadné integrovatelnosti.

Lisp mě prostě nemá čím oslovit - a makra to jednoduše nemůžou zachránit...

9062
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 31. 03. 2011, 13:47:42 »
char*x(char*s,int c){char*r=0;while(*(*s-c?s++:r=s++));return r;}


Kouknu a vidím není vlastností jazyka, ale vlastnost konkrétního programu a programátora. Funkce x kterou uvádím pro pobavení je napsaná v jazyce C, který syntaktický cukr obsahuje, přesto není na první pohled vidět, že je ekvivalentní jedné standardní knihovní funkci.

To je klasická polopravda. Kdybych chtěl být ostřejší, tak řeknu (dost zjevná a chabá) manipulace.
Z tvrzení "v každém jazyce se dá psát nečitelně" totiž nijak neplyne, že "v každém jazyce se dá psát čitelně" a tedy ani "čitelnost je (JEN) vlastnost programátora".

Celá pravda je, že syntaxe jazyka přinejmenším stanovuje horní mez čitelnosti, kterou je pisatel schopen dosáhnout.

V některých jazycích se totiž NEDÁ psát tak čitelně jako v jiných i kdyby se pisatel přetrhl a na druhé straně některé jazyky čitelné a strukturované psaní dokonce částečně vynucují (např. python syntaxe vynucující odsazování bloků).
 
1. Jde jen o zvyk. Když jsem přešel z Pascalu na C, tak mi přišlo { a } místo begin a end  podobně nepřátelské. Dokonce jsem si myslel, že na = a == místo := a = si nikdy nezvyknu.

Opět podobná věc: z toho, že se ti zdálo X o Y a pak jsi zjistil, že X nebyla pravda, nijak neplyne, že když se někomu zdá X o Z, tak to taky není pravda.

Příčinou zdánlivé nečitelnosti je jen nezvyk a nechuť učit se nové věci.

Takže např. binární výpis programu je vlastně čitelný - a jestli si někdo myslí, že ne, tak se jenom nechce učit nové věci.

Dokonce je "čitelný" i program ve zvukové podobě: cat binarka >/dev/dsp

Ach jo. Možná by to chtělo vzít v úvahu, že člověk není stroj, který se může naprogramovat na libovolný způsob komunikace. My lidi prostě máme některé věci zažité a přijdou nám "přirozené" (i když přirozené nejsou, museli jsme se je naučit), proto ke srozumitelnosti přispívá, když jde jazyk těmhle zažitým věcem naproti a ne zcela proti nim.

9063
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 31. 03. 2011, 11:05:30 »
Bohuzel, krome http://page.mi.fu-berlin.de/prechelt/Biblio//jccpprtTR.pdf a mozna trochu http://shootout.alioth.debian.org/ nevim o zadne studii srovnavajici produktivitu programovacich jazyku (libovolnych - ne primo Lispu).

Benchmarků se dá najít kupa.

http://dan.corlan.net/bench.html

Java (do nativniho kodu): 25 radku kodu, 3.03s
Java (bytekod): 8.23s
Lisp: 22 radku kodu, 4.69s

Java-nativni kod o 35% rychlejší.

A z toho tvyho odkazu:

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=sbcl&lang2=java

Lisp 2x (median) pomalejší než bytecode java.

9064
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 22:01:37 »
Vadí to moc?

Až někdo přijde s příkladem, kdy je to nutné nebo alespoň mimořádně vhodné použít k řešení nějakého problému, tak to vadit bude. Do té doby je to úplně bezpředmětné, protože se tady jenom trumfujete, kdo si umí líp honit triko.

9065
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 21:49:16 »
precti si neco od grahama

To je nejaka lisperská nemoc, tohle*? Je to nakazlive?


* neschopnost neco strucne vysvetlit, napr. popsat pomocí pár vět implementaci algoritmu

9066
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 21:47:23 »
tak si zkusime nejaky prakticky priklad... co treba line vyhodnocovani, kod je ve schemu, ale to je jedno.

vytvorme si novy typ hodnot, tzv. prislib. do teto hodnoty si ,,schovame'' nejaky vyraz a vyhodnotime ho az kdyz bude opravdu potreba.

V Pythonu třeba takto:

Ta lambda tam dost omezuje, co je mozny do toho delay schovat. Pokud by to melo byt obecne, tak bez toho execu (nebo nejake jeho rucne udelane varianty) se neobejdem.

(samozrejme Lisp se bez neho taky neobejde, ale to si jaksi nikdo nechce priznat - ze totiz ty pismenka se zazracne v nuly a jednicky nepromeni samy - a je uplne jedno, jestli je exec-uju skryte na pozadi, nebo zjevne v kodu...)

9067
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 21:18:07 »
Koukám, že už se to tady zvrhlo na úroveň "kdo ho má většího"  :)

Jak zvrhlo? Vždyť tahle debata je přece od začátku o tom, že lispeři ho mají nejen největší, ale hlavně ostatní ho nemají vůbec.

(makro)

9068
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 20:58:49 »
Citace
Nemůžete přece chtít, aby se v nějakém jazyce implementovaly obraty s něčím, co daný jazyk v takové podobě vůbec nemá.

a v tom bude asi jadro pudla. silne mi to tady zacina zavadet podobenstvi o jeskyni....

Tak nějak. Reaguješ na příspěvek, ve kterém říkám, že nemá smysl se snažit jeden typ ŘEŠENÍ přenést z jednoho jazyka do druhého* a přesně tohle uděláš...

Jediné, co má smysl, je vzít PROBLÉM a jeho řešení napsat ve dvou různých jazycích takovými prostředky, které jsou v tom kterém jazyce pro řešení problému optimální.

Takže jestli máš potřebu tím příkladem něco ilustrovat, tak přijď s nějakým PROBLÉMEM, který se pomocí tohodle obratu dá vyřešit, zatímco v jiném jazyce by se dal řešit jenom daleko kostrbatěji. Promiň, ale já si takhle z hlavy opravdu neumím představit problém, který by se vyžadoval (!) použít zrovna tohle a nic "normálnějšího".

* což je obzvláště pikantní jestliže součástí řešení je použití obratu, který ve druhém jazyku jednoduše v takové formě není...

9069
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 20:39:23 »
Stejně jako Tebe mě nebaví číst vznešené řeči a alegorie, jsem technokrat a mám zájem o inženýrskou debatu. Tam samozřejmě patří metriky, příklady nástrojů, knihovny atd., ale bez nějakého umělého příkladu se asi neobejdeme.

K technické debatě* tady ale samozřejmě nikdy nemůže dojít z jednoduchého důvodu: všichni dobře víme, že i kdyby nakrásně lisp měl nějaké geniální vlastnosti (jakože já netvrdím, že nemá! Jen mě o tom tady nikdo neumí nebo nechce přesvědčit), tak tím třeba oproti jiným jazykům deset bodů získá, ale jiných dvěstě ztratí na tom, že nejsou knihovny, nejsou programátoři, není provázanost s komerčními produkty, atd.

A za druhé ta debata tak, jak jsi ji postavil, je nesmyslná - nemá cenu porovnávat dva jazyky bez jejich standardních knihoven - vždyť ty knihovny přece tvoří velkou část přínosnosti toho kterého jazyka...

A za třetí ta debata nemá smysl, protože každá cvičená opice ví, že co do tvrdých kritétií jsou všechny jazyky stejné, protože se v nich dá napsat ten stejný algoritmus - a potom už jenom měříme schopnost překladače optimalizovat... Takže bysme stejně jen skončili u bezobsažné debaty o tom, co je elgantní a co ne.

......

* tj. takové, jakou bych si představoval ve firmě, když někdo přijde s nápadem, že by se mělo přejít na Lisp.

9070
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 19:58:12 »
Nikdo netvrdil, že ti, co neprogramují v Lispu, jsou cvičené opice. Za cvičenou opici jsem označil člověka, který není schopen dohlédnout ani mimo rámec vývojového nástroje, na nějž je zvyklý. Prostě jako by se někdo dotázal na možnosti použití elektromotoru a kdosi se zapojil do debaty stylem "Nejdůležitější je - kolik to má válců? A jaký mají obsah? Leje se tam benzin nebo nafta? Co se k tomu dělá za turba? Protože tohle jsou přece věci, které každého experta na pohony zajímají především."

To ale není pravda. O cvičených opicích jsi začal mluvit po tom, co se blizzboz opovážil zeptat, jestli pro Lisp existují taky nějaké pořádné knihovny, frameworky a RAD nástroje - tj. jestli se dá skutečně v lispu něco velkého a praktického vytvořit, nebo si jen na rootu honit triko, že nikdo jiný nemá nářadí kterým se dá vytvořit nářadí.

Kdokoli si to může přečíst: http://forum.root.cz/index.php?topic=1978.msg15063#msg15063

9071
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 19:48:49 »
Pak uvidíme, k čemu jsme došli.

Vsadím boty, že bysme došli k tomu, že lispaři budou tvrdit, že jejich kód je sice stejně rychlý a stejně dlouhý, ale že je elegantnější. Takové zjištění mi teda za tu námahu nestojí.

9072
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 17:43:18 »
No vida - tak tedy Forth uznáváš.

Ježkovanoho, to je už jak v mateřské školce...

Seš s Forthem? Já teda s Forthem nejsu! Já su teď s Lispem!

Co to proboha znamená "uznávat jazyk"? Když se vám nějaký jazyk líbí, tak si v něm programujte, ale když už ostatním nadáváte, že jsou cvičené opice, tak byste aspoň mohli umět dokázat svoje silná tvrzení o svém miláčkovi...

P.S.

# definovani whilu, ktery pri kazdem pruchodu testuje znovu podminku
i=0
def While(podminka,telo):
  while eval(podminka):
     exec telo in globals()
podminka1 = "i<3"
telo = "print i; i+=1"
While(podminka1,telo)

:)

9073
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 17:18:50 »
@Mirku: nevadi, kdyz ti budu tykat? Jednou si mi rekl, tykejte mi, ajtaci si tykaji. Uz si ani nevzpominam, jestli jsem rekl, ze tykani mi nevadi. Tak to reknu ted, nevadi mi to. Tak tedy Mirku, ze se porad tak nejak vsemu branis. Ptal ses uz tolikrat na to co jsem chtel vedet i ja a misto konkretni odpovedi, kterou potrebujes vedet, se ti dostalo jinych odpovedi, ktery ti nic nereknou. Proc se treba nezeptas jinak. Proc se na to nepodivas z jineho uhle pohledu a nepouzijes uplne jinou otazku, s jejiz pomoci byses dobral odpovedi na to, co chces vedet?

Tykání v pohodě, naopak díky za něj!

Mno, je to docela dobrá připomínka, ale já holt prostě nevím, jak jinak položit naprosto triviální otázku...

9074
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 17:14:55 »
Jedná se o makro, které přebírá různý počet parametrů, všechny je vyhodnotí a vrátí, jestli jsou všechny pravdivé, či ne. [...] Jak by se to udělalo v Pythonu?

To není žádný praktický příklad. (ano, skutečně trvám na tom, že není) Praktický příklad je "načti deset čísel ze souboru a najdi největší" nebo "připoj se na webservice googlu a stáhni mapu brna" nebo "vykresli GUI s obrázkem Majora Gagarina" nebo "vyřeš problém batohu, přičemž data jsou v souboru ve formátu XY".

Nemůžete přece chtít, aby se v nějakém jazyce implementovaly obraty s něčím, co daný jazyk v takové podobě vůbec nemá. Co se např. myslí "parametrem"? Co se myslí jejich proměnným počtem? To je asi jako by se C++kař zeptal Objective-Cčkaře, jak se v Objective C udělá přetížená metoda - no prostě v C++kové podobě neudělá, používají se jiné obraty.

Takže co má být ty parametry? Výrazy zapsané ve stringu? Volatelné objekty? Integery? Filehandlery?

Pokud opravdu chcete, aby to vypadalo co nejvíc jako v tom lispu, tak by to opravdu musely být stringy, protože všechno ostatní by se samozřejmě vyhodnotilo před voláním - to jaksi Pythonu nemůžeme zazlívat, prostě jeho koncept je od lispu odlišný. A funkci, která projde všechny svoje parametry, pustí nad nima eval a vzájemně je pro-or-uje snad psát nemusím... Jenže to se vám nebude líbit, že to je něco jiného než v lispu - ano je - a to proto, že jste nepřišel s praktickým úkolem, ale lispovským cvičením nad lispovskými typy dat...

9075
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 30. 03. 2011, 16:34:59 »
No vidite. Tohle jste mohl udelat ve chvili, kdy jsem zminil slovo "makro". Ruku na srdce - kdybych vam ten link poslal, precetl byste si jej?

Myslíte, že má smysl vám vysvětlovat, že jsem se z toho linku nic nového nedozvěděl? Nemá, že?

Stran: 1 ... 603 604 [605] 606 607 ... 618