Rant na WordPress: zły kod boli całe życie…

Rant na WordPress: zły kod boli całe życie…

Czy ktoś mi jest w stanie wyjaśnić, jakim cudem ta kupa makaronowego kodu, gwałcąca zasady programowania obiektowego i wszelką bazodanową logikę była w stanie zdobyć pozycję najpopularniejszego CMSa, z 17% udziałem we wszystkich witrynach w całym internecie? (no dobra, 95% tego to precle, ale nadal to najpopularniejszy cms)

Gdy jeszcze raz zobaczę zmienne globalne, serię poleceń define() i funkcyjki-wrappery na zmienne globalne, które przede wszystkim robią echo i których wartości się nie da przechwycić inaczej niż przez ob_start(), to rzucę wyjątkiem i zacznę gryźć. Zwykłe print_r() można zmusić do zwrócenia wyniku zamiast wyrzucenia go na ekran… (drugi parametr na true, jakby ktoś nie doczytał dokumentacji)

Obserwowałem rozwój Zend Framework i Joomli. To, jak daleko posunięte jest wykorzystanie podejścia obiektowego, nie śniło się twórcom wordpressa… Wiem jakim koszmarkiem był kod Joomli 1.5, boję się pomyśleć jak w tamtych czasach musiał wyglądać kod wordpressa!

Czy wordpress to naprawdę taki kolos na glinianych nogach, rozwijający się podobnie, jak PHP w pierwszej dekadzie swojego istnienia? Czyli bez planu i krztyny rozsądku?

  • Czy wordpress to naprawdę taki kolos na glinianych nogach, rozwijający się podobnie, jak PHP w pierwszej dekadzie swojego istnienia?

    Trochę tak. Dla przypomnienia WP to system blogowy, cała CMS-owa reszta to proteza. Trzeba byłoby to wszystko zaorać i napisać od nowa… najlepiej gdzieś obok (podobnie jak PHP).

  • PHP gdy korzystamy z dobrych frameworków, jest znośny 😉
    To jeszcze nie jest taki fajny kod, jak w coffeescript czy choćby python, ale już przestaje gryźć.
    Przez bardzo długi czas miałem uraz do PHP, aż nauczyłem się Laravel. I chyba wolę Laravel, czy prowizorki typu Slim Framework + RedBeanPHP+PhpQuery niż cuda typu wordpress czy joomla… Chociaż joomlą tez kiedyś byłem zafascynowany.

  • takitam

    WP stał się właśnie dlatego tak popularny, że jest ultra-prosty. Byle 12-latek po dwudniowym „kursie” internetowym PHP jest w stanie coś tam pozmieniać i dostosować bez znajomości „programowania” „obiektowego”.

  • Gdyby Jogger uwolnić, odciąć jabberową pępowinę i otworzyć, jestem pewien że szybko zająłby to miejsce (przynajmniej wtedy gdy WP wzrastał na popularności, dzisiaj to maszyna ktorej nikt nie zatrzyma, a dobrze by bylo nawet, gdyby zdechła).

  • sprae

    Bo działa

  • troll

    Bo w krytycznym momencie miał najwięcej funkcji i łatwo go było postawić na własnym serwerze. Jakość kodu obchodzi tylko paru fascynatów. Patrz spory o XHTML lub div vs tabelki, którymi brać joggerowa żyła – dzisiaj, gdybym gdybym miał tworzyć swoją stronę, zrobiłbym tagzupę przy pomocy jakiegoś generatora w OpenOffice i nie pytałbym „azaliż mój kod waliduje się w HTML 6.66 Strict UltraNerd BDSM Edition?” 🙂

  • shameless plug: jak z importem z joggera na WP, kiedyś coś było ale to było miliard wersji temu, jaka teraz sytuacja?

  • @troll: W OO? Ble. Już lepiej użyj jakiegoś artisteera, lepszy efekt…

    Dobry kod interesuje mnie, webmastera. Wziąłem się za wordpressa uraczony ilością pluginów, nieskomplikowanym panelem administracyjnym i wysoką seo-efektywnością, a gdy wziąłem się za zrozumienie, jak to tatałajstwo działa – załamałem ręce.
    Dylemat div czy tabelka ma duże uzasadnienie, podobnie jak XHTML był sporym krokiem naprzód, w stronę standaryzacji. Mimo to, HTML5 pozwala w pewnych sytuacjach niedomykać tagów i świat się od tego nie kończy.

  • @pecet: podobno kiedyś była. Nic więcej o niej nie wiem.

  • @takitam: dwunastolatek lepiej niech się nie bierze za modyfikacje do core’u wordpressa, joomli ani czegokolwiek. Do bajzlu który obecnie jest w wordpressie doprowadzili ludzie którzy teoretycznie się na tym znają, tylko pracowali bez planu 🙁
    Gdy porównuję kod pierwszych wersji Joomli z kodem z wersji 2.5 to są bardzo duże zmiany w architekturze. W kolejnej iteracji są pewnie jeszcze większe zmiany, oczywiście na plus – rozdzielenie odpowiedzialności kodu, większa modułowość, re-use komponentów… De facto można zrobić rozbudowany komponent, prawie w ogóle nie korzystając z PHP, bo warstwę kontaktu z bazą danych robi sama Joomla.

  • PHP gdy korzystamy z dobrych frameworków, jest znośny

    Fakt. Szkoda, że na początku nie wybrałem jakiegoś (Seagull był na horyzoncie)… niepotrzebnie straciłem sporo czasu na projekty budowane od zera w „czystym” PHP. Z drugiej strony frameworki miejscami to już przerost formy nad treścią (jakiś czas temu Lithium reklamowało się hasłem „Lithium sucks. But your framework sucks more”).
    Póki co stwierdzam, że do szczęścia wystarczy CMS oparty na komponentach jakiegoś frameworka typu Zend – zawsze łatwo dopisać własny moduł, ale i tak sporo rzeczy jest gotowych. Może nie wszystkie pod spodem działają optymalnie, ale jakoś działają.

    Wydaje mi się, że w Joomli 2.5 już był dostęp do danych w bazie przez jakieś data objects. Wtedy to już był taki standard w CMSach, nawet w Xoops.