In den Tagen der C-Programmierung unter MacOS 7 habe ich eine ziemlich umfangreiche OO-Bibliothek geschrieben (ja, OOP in sehr altem C), hauptsächlich um mit Windows-Dialogen umzugehen. Ich habe es für PowerPlant (ein nettes C++ von Metrowerks) während des Wechsels von 68k zu PPC-Prozessoren aufgegeben.
Wenig später begann ich mit dem Schreiben von Webanwendungen, zunächst in PHP, seit kurzem in Django. In dieser Hinsicht ist mein wiederverwendbarer Code auf einige Tricks und einen bestimmten Codestil beschränkt.
Aber für alle nicht-Web (oder mit nur kleinen Web-Komponenten), habe ich Lua verwendet. Es ist so schnell, Code zu schreiben und neu zu schreiben, dass es sehr wenig Anreiz gibt, Code wiederzuverwenden. Ich meine, wozu eine 10-zeilige Funktion kopieren und dann anpassen? Es ist schneller, sie nur für dieses Projekt neu zu schreiben.
Das ist nicht so verschwenderisch, wie es klingt. Lua-Code ist so prägnant, dass meine Anwendungen sehr komplex sein können, aber selten mehr als ein paar tausend Zeilen haben.
Gleichzeitig gibt es mehrere Lua-Projekte, die eine Schnittstelle zu C-Bibliotheken benötigen. Es ist sehr einfach, Bindungen zu bestehenden Bibliotheken zu schreiben, also mache ich das einfach als Unterprojekt. Und diese Module sind es, die ich immer wieder verwende... mit sehr wenig (wenn überhaupt) Änderungen von einem Projekt zum anderen.
Kurz gesagt: Nicht-Web-Projekte bestehen in der Regel aus einmaligem Lua-Code und einigen stark wiederverwendeten Bindungsmodulen.