Zu heute: Rekursion, wer denkt sich sowas aus?
Ganz humorlos: Die gleiche Sorte Leute, die lieber einen Schlagbohrer erfinden, als sich mit einem Handbohrer an einer Betonwand abzumühen.
Die Nützlichkeit mag ich nicht in frage stellen. Es sieht nur für mich als unerfahrener Programnierer wie Magie aus.
Naja, Rekursion ist für die Theorie genial, in der Praxis ist sie nicht immer die sinnvollste Sache. Nahezu immer lässt sich Rekursion durch Schleifen darstellen. (Für Theoretiker: Eigentlich immer, wenn es sich um primitiv rekursive Problemstellungen handelt), was so ungefähr alles beinhaltet, was man in angemessener Zeit berechnen kann (Und noch viel mehr))
Ausserdem ist Rekursion teuer, da immer wenn die Rekursion angewendet wird, Die Funktion nochmal komplett im Speicher angelegt wird (jede nicht-statische Variable, Rücksprungadressen etc...)
Allerdings gibt es so komplizierte Fälle, dass die Rekursion die Sache wirklich einfacher macht. Und manchmal (Sehr selten) würde man bei einer Schleife denselben Aufwand durchführen wie bei der Rekursion.
Viele Compiler sind aber auch in der Lage, eine einfachere Rekursion selbstständig in eine Schleife umzubasteln.