Ach jo - já nevím, ale stále vidím, že při propagaci jiných jazyků se projevuje komplex méněcennosti zvaný musíme dokázat, že jazyk je rychlejší, než C/C++. A jako vždy i v případě Scheme jde o naprostý blábol - vyzývám autora, aby dokázal svoji tezi, že něco co vyleze kompilací Lispu je rychlejší, než ten samý problém efektivně zapsaný v jazyce C.Jen abyste se nedivil. Dokonce i Jon Harrop, slavný to flamer, co na comp.lang.lisp a comp.lang.scheme leze jen proto, aby tam pořád protlačoval Ocaml a všechny jen soustavně nasírá, byl nucen přiznat, že raytracer napsaný autorem Stalina je rychlejší, než tentýř program zapsaný v C/C++, Ocamlu a MLtonu. Thread máte tady, můžete zkusit napsat lepší kód v C a Siskindovu verzi přebít. Tedy máte-li na to koule. ;-)
No, jestli někdy někde nadhodíte nějaký kód v C++, který berete za příklad efektivity C++, a dotyčný kód nebude proprietární, jistě se někdo rád pokusí přepsat ho do Stalina. :-) Které efektivní prostředky pro práci s pamětí máte na mysli? Snad ne reference-counting smart pointers, to je přesně to, co Stalin dělá "v čase kompilace", aby si nemusel dělat přehled za chodu. :-) Ale přiznávám, že se v C++ možná mimo věcí v STL a spol. objevilo i něco lepšího, nejsem na tohle expert a ani nechci. :-) (BTW, v tom testu se Stalin srovnával zrovna s C++, ale toho jste si určitě všiml. :-))
Osobně ale myslím, že dobrý C++kař schopný abstrahovat a využívat prostředky jazyka by byl i dobrý lisper, takže to nakonec asi zase bude o lidech. Přesto se nemohu ubránit pocitu, že C++ má oproti Lispu "určité nedostatky" (na které jsem prostě možná citlivější než někdo jiný, třeba Vy ;-))... Už jen ty návrhy alternativní syntaxe, na kterou by se i dal napsat normální parser, o něčem vypovídají (já si třeba rád píšu vlastní tooly pro práci se zdrojovým kodem, ale zkuste to v C++ konzistentně - v Lispu je to hračka, navíc parser je exponovaný jako API).
Hmm, většina lispů, co běhala na holém železe, mela i integrovaný assembler, a mnohé ho mají i dnes na PCčkách. :-) Takže by ty dva vztahy (Lisp ≤ C/C++) a (Lisp ≥ C/C++) šly zredukovat na pouhé (Lisp ≡ C/C++) :-) A to ne co do výpočetní úplnosti, ale spíš v tom smyslu, že se dá obojí dokopat přesně k témuž, s větší či menší námahou. :-D
A mimochodem, já mám céčko velice rád, ostatně jsem se s ním potkal v devíti letech a asi to ve mně nějak zůstalo... Nicméně v otázce "co nad ním?" jsem se asi trošku odklonil. :-) A pokud v Lispu něco chybí, no, to je jeho největší síla - úplná makra, jejichž slabý odvar sice v C++ je taky, ale už jen tím, že jsou v C++ psána v jiném (byť turingovsky úplném) jazyku omezuje jejich použitelnost jen na první řád transformace. To by mi asi trošku chybělo, protože transformace druhého řádu mají leckdy opodstatnění (už jen obyčejné with-gensyms
je skoro nutnost pro kohokoli s mozkem na správném místě).