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 ... 600 601 [602] 603 604 ... 618
9016
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 04. 04. 2011, 21:52:39 »
Hele, oni přiznali, že LISP je v současností mrtvý :-D

Taky mě to překvapilo.

Co bude dál? Přiznání, že tohle téma nebylo ničím jiným než nekrofilií, nebo vyzdvihování krás exhumace, coby kratochvíle na dlouhé večery?

9017
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 04. 04. 2011, 21:30:15 »
Ano, kdyz se na to podiva clovek, co zna Lisp, je mu jasne, cim se inspirovali. :-) (Maly hint: [| je ` a $ je ,@ .)

A právě proto to lispovské implementaci nesahá ani po kotníky!

9018
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 04. 04. 2011, 20:57:29 »
Abych doplnil tuto debatu o relevantní názor... Schválně jsem tento dotaz (k čemu je dobrý LISP) poslal uznávané osobě na Katedře informatiky Fakulty aplikovaných věd na Západočeské univerzitě v Plzni.

No a? Pan učitel prostě taky ještě není spasen a osvícen...

9019
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 04. 04. 2011, 20:46:32 »
Myslím, že Boo je s ohledem na rozšířenost horší volba než LISP. LISP je sice i přes dlouhou historii málo používaný, ale Boo je na tom ještě hůř - nikdo ho nezná.

Jenže Boo funguje nad CLI, takže v něm jde používat všechno, co v C#. A když někomu dám .dll napsané v Boo, tak nepozná, že jsem ho nenapsal v C#.

Boo má ale jinou podstatnou nevýhodu: člověk jeho používáním nedojde osvícení a nenaučí se ostatní ohromovat poetickými báchorkami. Je to totiž úplně normální programovací jazyk, který se na něco hodí a na něco ne. Není to spása lidstva :)

9020
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 04. 04. 2011, 20:08:12 »
A to už je vážně konec? :(

Tak ne, no :)

Citace
Runtime code generation is a useful technique but most really interesting metaprogramming opportunities manifest themselves at compile time through one of the extension points provided by boo: attributes, macros, metafunctions and the compilation pipeline which shall all be covered next.

http://bamboo.github.com/2010/07/11/boo-meta-programming-facilities-I-the-ast.html


9021
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 22:02:08 »
Tak na tomto se shodneme. :-)

A máme konečně klid.

9022
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 18:54:38 »
No, není jich asi tolik, ale něco podobného lze dělat v jiných jazycích (různým způsobem): http://nemerle.org/wiki/index.php?title=Features, http://www.cs.utah.edu/flux/papers/pldi02-maya-base.html a koneckonců i http://lampsvn.epfl.ch/trac/scala/browser/compiler-plugins. Jasně že tam chybí tradice a zřejmě i vyzrálost Lispu, ale pracuje se na tom. Ve světě Pythonu bych čekal, že se něco podobného brzy objeví kolem projektu PyPy (pokud to už neexistuje).

http://boo.codehaus.org/Syntactic+Macros

V Lispu je to ale samozřejmě daleko osvíceněji udělaný...

9023
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 18:23:14 »
jinak syntaxe jako takova v LISPu rozsirit opravdu jde, protoze v LISPu jde preprogramovat i reader, ktery se stara o nacteni jednotlivych vyrazu. imho, by me zajimalo, kolik dalsich jazyku jeste neco takoveho umi. :-]]

Gratuluju.

9024
Odkladiště / Re: Máte zkušenosti s ITIL, ISO apod.?
« kdy: 03. 04. 2011, 18:11:41 »
Je jim pak problem vysvetlit, ze je potreba delat krom byrokracie i praci.

No jo no, to je druhej extrem k pristupu "spravuje nam to tady Franta" - a kdyz se Frantovi neco stane, muze to firma zabalit, protoze Franta pochopitelne nemel potrebu delat zadnou dokumentaci.

Aka všechno je jenom otázka rozumné míry a kvalitní implementace...

9025
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 17:52:39 »
No vidis, a pritom by stacilo, aby jsi uznal, ze s tim LINQ ma deda.jabko uplnou pravdu.

Jasne, vsichni mate pravdu. Kdyz jste osviceni, tak co holt mate delat :)

Jen tak pro osvezeni znovu citat Pavla Tišnovského (cvičená opice?):
Citace

Pridani nove syntakticke kategorie je tedy velmi jednoduche, protoze vlastne samotna syntaxe zustava nezmenena (treba smycky v LISPu neni nic jineho nez specialni forma)
http://www.root.cz/clanky/lispova-makra-aneb-programovatelny-programovaci-jazyk/nazory/153290/

(pochopitelne zustalo bez odpovedi...)

9026
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 17:42:37 »
@deda.jabko: je to furt dokola, nemám potřebu v tom pokračovat po 101ní

9027
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 15:31:52 »
Mně to přijde jako typická násobná dědičnost, snad dokonce pouhý mixin (trait v terminologii Scaly). Ano, pár znaků se při vytvoření každé nové třídy ušetřit dá, ale...

V tomhle jednoduchym pripade jo, ale samozrejme by se to asi dalo pouzit nejak vychytraleji. Nicmene cim vychytralejsi pouziti, tim tezsi bude precist, co vlastne ten kod dela a tim horsi bude i ladeni... Takze to zas takova bomba neni...

P.S. jen tak ze srandy trochu priblbla implementace v Pythonu :)

Kód: [Vybrat]
# cat test.py 
#!/usr/bin/python

def defmacro(name,code):
   # pomocna funkce
   def macrodef(params,code):
      exec code%params in globals()
   globals()[name]=lambda params: macrodef(params,code)

# ukazeme, ze muzeme v klidu dedit z normalniho kodu
class XYZHandler(object):
   def test(self):
      print "XYZHandler.test()"
      print "    self=%s"%(self,)

# timhle nadefinujeme FUNKCI MyHandler, jejimz spustenim
# nadefinujeme konkretni (parametrizovanou) tridu
defmacro("MyHandler","""
class %(className)s(%(superClass)s):
   def test(self):
      super(%(className)s,self).test()
      print "%(className)s.test()"
      print "    self="+str(self)
""")

# nadefinujeme tridu JabberMessageHandler
MyHandler({'className':'JabberMessageHandler','superClass':'XYZHandler'})

# nadefinujeme tridu SuperJabberMessageHandler, ktera dedi z predchozi
MyHandler({'className':'SuperJabberMessageHandler','superClass':'JabberMessageHandler'})

handler1 = JabberMessageHandler()
print "=====> Testuju handler1"
handler1.test()

handler2 = SuperJabberMessageHandler()
print "\n=====> Testuju handler2"
handler2.test()
Kód: [Vybrat]
# ./test.py 
=====> Testuju handler1
XYZHandler.test()
    self=<__main__.JabberMessageHandler object at 0x1004cc890>
JabberMessageHandler.test()
    self=<__main__.JabberMessageHandler object at 0x1004cc890>

=====> Testuju handler2
XYZHandler.test()
    self=<__main__.SuperJabberMessageHandler object at 0x1004cc8d0>
JabberMessageHandler.test()
    self=<__main__.SuperJabberMessageHandler object at 0x1004cc8d0>
SuperJabberMessageHandler.test()
    self=<__main__.SuperJabberMessageHandler object at 0x1004cc8d0>

:)

P.P.S. člověk musí mít hodně drzosti, aby tvrdil, že takhle "vlastně vytvořil nový jazyk"...

9028
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 14:40:46 »
Jediné dva praktické příklady, které jsem tu viděl [...] Podle mě vesměs nic, co by nešlo v jiných jazycích udělat také za srovnatelných obtíží.

No ještě jsem sem dával ten příklad s vypsáním xml, to je hezká hříčka, ale o praktičnosti takového řešení by se dalo diskutovat...

Kromě toho tady zaznělo, že pomocí maker by se daly stručně napsat třeba definice spousty tříd, které mají dostatečný společný základ.

Něco jako (pseudokód)
Kód: [Vybrat]
defmacro MyHandler (name) 
{
   class ${name}: XYZHandler {
     ...
   }
}

MyHandler(JabberMessageHandler)
MyHandler(ConsoleMessageHandler)
MyHandler(TcpMessageHandler)

handler = JabberMessageHandler()

Jako jo, no... v hodně divokých snech si dovedu představit, že by se to k něčemu mohlo hodit...

9029
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 13:45:28 »
Asi si to nepochopil, zaujímavý článok na túto tému je: http://vbnet.cz/blog-clanek--131-dva_programatorske_pristupy.aspx

Tohle je naprostá pravda:
Citace
Na Matfyzu nám říkali, že programování je hlavně o teorii a algoritmech, že jazyk nebo technologii se už naučíme za týden. S tím bych si dovolil polemizovat, základy .NET frameworku se za týden pochytit dají, pokud člověk má obecné programátorské znalosti, ale aby člověk programoval pořádně a elegantně, musí mít s touto technologií alespoň půl roku zkušeností.

Programování je už dávno nejenom o znalosti algoritmů a jazyka, ale především o znalosti dostupných nástrojů. Někdo ale má v dané technologii k dispozici tak zoufale málo nástrojů, že má potřebu ostatní ohromovat tím, že má nástroje k vytváření nástrojů...

9030
Vývoj / Re: Na co všechno je dobrý LISP?
« kdy: 03. 04. 2011, 13:39:28 »
a uvedomujes si, ze podle tve logiky autori tech knihoven, frameworku a navrhovych vzoru jsou prave ti spatni programatori? :-]]

Ne. Oni totiž taky používají knihovny a frameworky, pokud je to v dané situaci vhodné.

Stran: 1 ... 600 601 [602] 603 604 ... 618