( XMI | 2013. 12. 16., h – 00:57 )

Szerintem meg az az egyik fő oka, hogy ma a programozók nagyrészt sokkal magasabb-szintű, deklaratív elemeket bevezető nyelvekkel/librarykkel dolgoznak. Ma már a legtöbb procedurális nyelvhez is csináltak pl funkcionális (lambda) eszközkészletet, és kifejezetten "divat" használni őket.

Ennek előnye, hogy sokkal gyorsabban lehet fejleszteni, elég bonyolult dolgokat is könnyen le lehet írni. Sokkal jobban lehet általánosítani és újrafelhasználni is a már megírt funkciókat. Ezenkívül a kód karbantarthatóságán is sokat javítanak. És a cégek számára ez mind szempont. (Persze nem értő kezekben a deklaratív paradigmákkal is lehet orbitálisakat gányolni - tehát nem csodaszer. Konkrét - teljesítménygyilkos - példáért érdemes elolvasni innen bevezető pár mondatot.)

A hátrányát meg nem kell részleteznem. Elég csak annyi, hogy a programozó a legtöbb esetben egyáltalán nem is érzi, hogy az egyes - látszólag ártatlan - műveletek költsége mennyire nagy lehet. Az utólagos optimalizálást pedig nagyon alaposan meggondolják, mert nemcsak befektetett munkát jelent, hanem a kód "szépségét" is károsan befolyásolja, ami a karbantartásnál hatványozottan visszaüt.

Szóval ez egy csúnya tradeoff a fejlesztés és a futás hatékonysága között, ami azért lehetséges egyáltalán, mert a gépek teljesítménye (egy darabig még) növekszik és képes elnyelni a futási hatékonyság romlását.
---
Régóta vágyok én, az androidok mezonkincsére már!