Czy ktoś z was pracował kiedyś nad dużym projektem (tak 100k+ LoC), w którym kod tworzony był w pełni proceduralnie (bez wsparcia OOP) i może co nieco napisać na ten temat, głównie jeśli chodzi o łatwość utrzymania, przejrzystość kodu, modułowość, podział na niezależne warstwy itd.?
Mam tutaj na myśli głównie gry, w których proceduralność nie jest szczególnie dziwna, ale równie dobrze można wziąć pod uwagę okienkowe aplikacje narzędziowe, tworzone np. w WinAPI — struktura kodu oraz obsługa komunikatów jest bardzo podobna do proceduralnych gier.
Chciałbym zasięgnąć opinii w tym temacie, dlatego że stoję obecnie się nad doborem paradygmatu do własnej gry. Dla mnie nie ma wielkiej różnicy czy skorzystam z OOP czy programowania strukturalno-proceduralnego, operowanie na wskaźnikach w małym paluszku i nie mam żadnych problemów z zarządzaniem pamięcią oraz unikaniem wycieków.
Widze tutaj dużo plusów, jeśli chodzi o proceduralny kod, przy czym mógłbym stworzyć silnik gry w formie lekkiej i wydajnej oraz być w stanie łatwo wydzielić go do .dll
, co na pewno mi się w przyszłości przyda. Nie musiałbym też obsługiwać wyjątków (których nienawidzę) — mógłbym wszystko oprzeć na kodach błędów, co jest wydajnym i przyjemnym dla mnie rozwiązaniem. No i nie musiałbym SDL-a opakowywać w obiekty, co też byłoby plusem.
Minusem natomiast byłaby konieczność operowania na niskopoziomowych elementach, a więc trochę więcej kodu trzeba będzie wyprodukować. Choć to akurat nie powinno stanowić żadnego problemu, bo ilość kodu nie ma dla mnie żadnego znaczenia, jeśli jest on sensownie zmodularyzowany i rozwarstwiony.
Jeśli ktoś ma doświadczenie w temacie opisanym w pierwszym zdaniu i ma ochotę coś napisać (choćby w skrócie), to będę wdzięczny.