Chyba naturalne byłoby spostrzeżenie u w miarę doświadczonych programistów, że kod Open Source jest... lepszy.
Bo ilu z nas pracuje w naprawdę DOBRYCH firmach, z naprawdę dobrymi pracownikami, zasadami itp., co umożliwia tworzenie dużych i faktycznie super dobrze napisanych projektów? Zauważcie, że to teoretycznie jedyna szansa na zobaczenie świeżego kodu closed-source. Trzeba być blisko jego tworzenia. Zobaczę tylko ten kod closed-source, który tworzy moja firma.
A Open Source możemy przeglądać sobie do woli. Przeważnie słyszymy o tych lepszych, może nawet najlepszych projektach open-source. O tych znanych, tworzonych przez wielu programistów i wykorzystywanych przez wielu dobrych programistów. Więc i w grupie tworzących sporo jest dobrych kolesi.
Może fałszować wyniki naszych obserwacji. Bo widzimy sporo dobrego kodu OS z całego świata, a także trochę "naszego" kodu CS. Ewentualnie: dużo "naszego" kodu CS, a duże projekty bardzo trudno opanować i rzadko który duży projekt CS tworzony przez niewielki zespół ludzi ma super spójną, przemyślaną architekturę i jest fajnie napisany.
W praktyce jednak... Kodu OS jest mnóstwo i spora część z tego to jedno wielkie łajno. Zdarzają się i projekty, które zdają się być tworzone bez jakichkolwiek zasad przez przypadkowych ludzi. W firmach tworzących CS teoretycznie nie powinno być aż tak źle ;).
No i mam nadzieję, że wszyscy widzimy też czasem bardzo przyzwoite kawałki kodu CS. Każdy z nas powinien starać się je tworzyć. Czasami jakiś kod CS zostanie otwarty po latach, albo nawet wycieknie. W dobrych firmach kod jest zwykle przynajmniej przyzwoity. Pamiętacie, jak wyciekł jakiś kod Microsoftu? (to nie był kod Windowsa?) Był bardzo przyzwoity. Spójny, nieźle opisany, nieźle podzielony, a to fragment kolosa na 400 pierdyliardów linii.
Mniejsze firmy też potrafią pisać dobry kod, jeśli są dobre. Takie 37signals nie otwiera kodu swoich aplikacji. Ale jak tworzyli jedną z nich, to zrobili sobie przy okazji tak fajny framework, że postanowili go otworzyć -- i mamy Ruby on Rails. Styl oraz idea RoR (monkey-patching i definitywny brak minimalizmu ;) ) nie muszą wszystkim podchodzić, ale przy tych założeniach napisane jest to dobrze.
Na plus OS dorzucę jeszcze wstydliwość. Ja już dobre pół roku trzymam w szafie aplikację, którą jak najbardziej mam zamiar otworzyć i wypuścić. Ale jeszcze tego nie zrobiłem, bo się trochę wstydzę, a nie mam czasu poprawić tych paru rzeczy i przeprowadzić jeszcze kilku refaktoryzacji. A nie pisałem tego na odpieprz. Wymyśliłem architekturę, opracowałem standardy kodowania, mam testy jednostkowe, przeprowadzałem optymalizacje (z profilowaniem) i niezliczone refaktoryzacje. Mimo to, to jeszcze nie ten poziom. Kod nie jest dopieszczony. A jakbym dla kogoś pracował, to pewnie już dawno wylądowałby u klienta, bo nikt za to dopieszczanie by nie płacił. Kod by się sprawdził, nie byłby ohydny, ale jak go wypuszczę, to będzie ładniejszy (co nie znaczy, że i tak się z niego nie pośmiejemy). O ile go wypuszczę, bo zbieram się do tego jak sójka za morze.