[rosedu-general] Pure mathematics and programming
Adrian Scoica
adrian.scoica at gmail.com
Fri Nov 4 13:25:10 EET 2011
>> In template metaprogramming am vazut cele mai frumoase si elegante
>> implementari pentru lazy evaluation, function closures, si alte
>> concepte ce tin de programarea functionala, despre care puteti citi
>> aici[0]. C++0x o sa mai depaseasca o limitare a limbajului permitand
>> function literals.
>>
>> Is this going in the right direction? Well, in mod clar implementarile
>> nu mai sunt black box, ceea ce iti da un sentiment placut de control.
>> Pe de alta parte, gramaticile devin rupte din iad (fun fact: g++ nu
>> parseaza corect C++, m-am lovit de mai multe ori de asta).
>
> Deci facem un franken-C++. Exact cum o sa avem un franken-Java, un
> franken-C# (numit F# acum) și tot așa. Nu sunt împotrivă, consider un
> semn bun faptul că din ce în ce mai mult se împumută features din
> programarea functională (oare de ce? -- e mai greu să te obișnuiești
> să gândești doar așa, cqnd ai nevoie de ceva functional apelezi la un
> patch de ăsta și gata). Pe viitor, din ce în ce mai mult o să se
> meargă pe direcția funcțională, lightweight threads (green threads),
> STM, bracket, iteratees, etc. O să vezi cum o să se introducă și de
> astea în C++ în câțiva ani, după ce se testează în Racket/Scheme și
> Haskell și LISP.
Eu nu sunt de acord cu notiunea de "Franken-C++" si de faptul ca e
artificial ce se face. Tranzitia de la language la metalanguage nu e
deloc ceva trivial si nici nu ma astept sa fie corecta din prima. Mai
mult, in C++ NU exista threading tocmai pentru ca e dependent de
implementare. Daca ai nevoie de thread-uri, poti implementa o clasa
care descrie ce inseamna asta... sau un template... si apoi sa "plug
in" thread-urile din C.
Gandeste-te la gramatica care descrie gramatica expresiilor
regulate... totul incepe sa devina greu de exprimat de la un punct,
dar asta nu inseamna ca e artificial sau hacky. Noi ca oameni avem
HUGE issues la a descrie descrierea descrierii.
>> At the end of the day, totul tine de gustul personal al fiecaruia. Eu
>> daca _chiar_ am nevoie de lazy eval si inchideri functionale, le
>> prefer pe cele din Boost, altcineva ar putea prefera sa se orienteze
>> spre alt limbaj... eventually, matematica este _unica_ stiinta reala.
>> Restul e doar... stamp collecting.
>
> Agree. Fiecare lucrează în ce e mai performant. Mie C++ mi se pare un
> monstru colosal din cauza multitudinilor de features pe care le are,
> de exemplu. Haskell e atractiv pentru mine din cauza purității și a
> apropierii foarte mari de matematică.
>
> Ce-am comentat nu se vrea a fi un bashing, doar comentariile mele
> scurte pe subiectul ăsta. Oricum, ce zici de un articol pe techblog?
O sa incerc sa pregatesc un articol, dar peste cateva saptamani abia o
sa am timp. :)
More information about the rosedu-general
mailing list