Mój stary framework odchodzi do lamusa.

Przez kilka lat opieraliśmy interfejs WWW dla pewnego systemu o framework “mwadmin” mojego autorstwa.

W czasie kiedy stworzyłem ten framework, a później razem z Damianem udoskonaliłem dla niego moje biblioteki “phplib”, możliwości tego frameworka były całkiem sensowne, szczególnie że był ukierunkowany na pewną wąską specjalizację - tworzenie backendowych aplikacji internetowych. Mieliśmy zaimplementowane biblioteki ORM dla PostgreSQL, prosty system szablonów, biblioteki generujące konfigurowalne i sortowalne tabele na podstawie różnych źródeł danych, biblioteki ułatwiały stosowanie kilku popularnych wzorców projektowych, a sam framework stosował wzorzec MVC.

Niestety wymagania interfejsu systemu się zmieniły potrzebna była o wiele większa funkcjonalność, a ja nie miałem czasu rozwijać tego frameworka tak aby te wymagania spełnić, zresztą wymagało by to tak dużych zmian, że nie zostałaby zachowana absolutnie żadna kompatybilność z modułami obsługującymi system.

Po gruntownym przeanalizowaniu tego co mamy, naszych potrzeb i skonfrontowaniu wniosków z możliwościami współczesnych osiągnięć wspomagających tworzenie aplikacji internetowych, zastanawialiśmy się poważnie nad zastosowaniem frameworka Pylons (Python) lub Rails (Ruby). Po dokładnym sprawdzeniu ich możliwości względem naszych potrzeb oraz dotychczasowych rozwiązań (bardzo ważna dobra współpraca z PostgreSQL oraz wsparcie dla “legacy databases”) zdecydowaliśmy się na Ruby on Rails.

Nic nie jest idealne, tak więc i ten framework nie spełnia w 100% naszych oczekiwań, nie zapewnia tyle automatyki w niektórych kwestiach co “mwadmin” ale z kolei jest dużo bardziej elastyczny, ma dużo dodatkowej funkcjonalności, której dotychczas nie mieliśmy, a co najważniejsze wspiera nowoczesne technologie tworzenia aplikacji internetowych.

Nie obyło się też bez kilku dość poważnych problemów ale byliśmy w stanie je obejść (monkey patching), przynajmniej do czasu kiedy programiści Railsa sobie z nimi poradzą. Na dzień dzisiejszy (tworzenia wersji alpha interfejsu systemu) mogę śmiało stwierdzić, że wybór był dobry i jesteśmy w stanie zrobić o wiele lepszy interfejs dla naszego systemu.

Napisano dnia: r.