Nie tylko o przeglądarkach...

Acid2: Co się wydarzyło na linii Webcore - KHTML?

Miałem o tym napisać już jakiś czas temu, ale niespecjalnie udawało mi się wykrzesać motywację wink Teraz widząc mity, jakie narosły wokół całej tej sytuacji nadrabiam zaległości. Wróćmy do początku.

Otóż jak zapewne wielu z Was się orientuje, Apple swego czasu wybrał jako bazę do budowy własnej firmowej przeglądarki silnik KHTML, który jest rozwijany przez zespół KDE i jest opoką, na której stoi przeglądarka Konqueror. Ten entuzjastycznie przyjęty wybór obudził głębokie nadzieje na to, że nareszcie rozwój silnika KHTML ruszy z kopyta. Wszak do pracy nad nim zaprzęgnięto wielu wysokiej klasy programistów firmy Apple. Jednak rzeczywistość okazała się szara i nieciekawa.

Apple ma dostęp do repozytoriów i bugzilli KDE. Natomiast w zamian programiści KDE otrzymują jedynie od czasu do czasu spakowane archiwa ze źródłami silnika, który tak naprawdę coraz mniej przypominał KHTML. Apple nazwał go Webcore. Owe archiwa zawierają tony zmian pomiędzy poszczególnymi wersjami, których normalny człowiek nie jest w stanie prześledzić i często, gęsto bywało tak, że gdy ktoś z teamu KDE chciał przeportować odpowiednie poprawki Apple z Webcore do KHTML, kosztowało go to więcej pracy niż własna autorska implementacja. Dlatego coraz rzadziej pojawiały się włączenia patchy autorstwa Apple.

Znamiennym przykładem tego zjawiska jest wsparcie dla właściwości text-shadow pochodzącej ze standardu CSS 2.0 Safari jest pierwszą przeglądarką, która wprowadziła obsługę tej właściwości. To fakt niezaprzeczalny, natomiast nie jest prawdą jakoby programiści KHTML włączyli tylko kod Webcore za to odpowiedzialny do źródeł KHTML. Programiści KDE zaprogramowali absolutnie niezależnie i zdecydowanie lepiej niż to jest obecne w Safari obsługę tej właściwości. Ale o tym wiedzą nieliczni.

Powszechna jest natomiast fama jakoby KHTML jest na garnuszku Apple'a. Atmosfera wokół tej sprawy niespodziewanie zgęstniała i urosła do masy krytycznej w czasie, gdy Dave Hyatt opracował ostatnie poprawki, które sprawiły, że Safari stała się pierwszą przeglądarką poprawnie obsługującą test Acid2 i które zostały publicznie udostępnione.

Natychmiast po tym fakcie pojawiły się żądania szybkiego włączenia tych łat do kodu KHTML. Wtedy to Zack Rusin, wylewając kubeł zimnej wody na rozemocjonowane głowy użytkowników Konquerora, stwierdził, że prawdopodobnie patche Hyatta nigdy nie zostaną przeportowane do KHTML z uwagi na opisywane wyżej zjawiska, które spowodowały, że rozdźwięk pomiędzy obydwoma gałęziami silników stał się zbyt duży i niemożliwy od ogarnięcia i jednocześnie z goryczą przypomniał co jest tego powodem.

Na szczęście firma Apple, dbająca o dobry PR, postanowiła zmienić ten stan rzeczy. Doszło do spotkania pomiędzy czołowymi programistami obu teamów na IRC-u, gdzie rozpoczęto ustalanie zasad wzajemnej współpracy. Wierzę, że zmieni to wzajemne relacje z obopólną korzyścią smile

To tyle co chciałem na ten temat rzec. Jak widać z tego jest kompletną nieprawdą jakoby Dave Hyatt chaotycznie łatając Safari, byle tylko ta przeglądarka pierwsza mogła prawidłowo wyrenderować Acid2, popsuł kod Webcore, za co dostał połajankę od zespołu KDE, którzy dzięki temu nie mogli w szybko włączyć patchy do kodu KHTML. Natomiast prawdą jest, że Ben Goodger, jeden z ojców Mozilli Firefoxa, ni z gruszki ni z pietruszki wciął się między wódkę i zakąskę, udzielając reprymendy teamowi KDE. Ci oczywiście nie pozostali mu dłużni i szybko opublikowali listę faktów, które Goodger raczył pominąć w swoich rozważaniach.


Piszą o nas w Japonii :)Niepoprawne politycznie porównanie - nowości

Comments

Zbigniew BranieckiGandalf1 Friday, May 20, 2005 8:27:01 PM

> To tyle co chciałem na ten temat rzec. Jak widać z tego jest kompletną nieprawdą jakoby Dave Hyatt chaotycznie łatając Safari, byle tylko ta przeglądarka pierwsza mogła prawidłowo wyrenderować Acid2, popsuł kod Webcore

Quiris, wybacz, ale mam nadal poczucie, ze Twoja wiedza na ten temat jest zbyt mala by sugerowac takie rzeczy. Widziales ten kod? To obejrzyj, najlepiej zanim zdecydujesz sie znow pouczac.

Marek Stępieńmarcoos Friday, May 20, 2005 8:27:01 PM

IMHO Goodger ma takie samo prawo komentować wydarzenia w świecie KHTML, jak Ty w świecie Gecko. Poza tym, Ben nie udzielił reprymendy _projektowi_ KDE, tylko raczej nadmiernie podnieconym fanom KDE, którzy na różnych slashdotach zaczęli bluzgać na Apple, zaraz po tym, jak przestali bluzgać na KDE za nieimportowanie patchy.

Apple ma pełne prawo robić z KHTML/Webcore co im się żywnie podoba, dopóki to jest zgodne z licencją LGPL (tak samo jak AOL ma absolutne prawo przerobić Firefoksa na g*wno pt. "Netscape 8", dopóki trzyma się MPL).

Jeśli współpraca między Apple a KDE się nie układała, tak, jak sobie to KDEowcy wymarzyli, to powinni wcześniej próbować coś w tej sprawie zrobić, a nie pozwolić jej się gotować pod przykryciem, by wykipiała.

Zbigniew BranieckiGandalf1 Friday, May 20, 2005 8:27:01 PM

Marcoos: IMHO KDEowcy nie maja zadnej mozliwosci "dyskusji o wspolpracy" poza tym co mozna nazwac "dobra wola Apple", czyli checia wspolpracy od Apple. Apple ma prawo i moze nie kontaktowac sie w ogole i nie dawac KDE nic. I nadal wszystko jest fair.

Natomiast to, ze Apple podsylalo od zawsze patche w formie po prostu bzdurnej, np. 2 mb patcha z ostatnich 2 miesiecy, albo podsylali patche z Obj C, ktore oczywiscie jest MacOSX, to juz zakrawalo na zlosliwosc. Teraz sie okazalo, ze nie bylo to zlosliwoscia, ale frustracja w ludziach z KDE rosla.

Zastanow sie, ja Ty bys sie czul, jakbys dostawal takie cos, co mozna nazwac "ochlapem", a ktory wymaga czasem niezwykle duzo pracy (zadnych dokumentacji, logow patchy, nic, 2mb diffa z dwoch miesiecy pracy...) zeby cokolwiek z tego skorzystac.

Robert Błautquiris Friday, May 20, 2005 8:27:01 PM

Quiris, wybacz, ale mam nadal poczucie, ze Twoja wiedza na ten temat jest zbyt mala by sugerowac takie rzeczy. Widziales ten kod? To obejrzyj, najlepiej zanim zdecydujesz sie znow pouczac.

Wybacz, ale mam na tyle wiedzy by zrozumieć:

For what it's worth, the patches I posted are to WebCore, which consists of both KHTML and KWQ (our port of Qt). They are posted to illustrate all the WebCore bugs that had to be fixed in Safari to pass the Acid2 test. They are not solely KHTML patches. The antialiasing bug was in KWQ, and so doesn't even apply to KHTML. The better object element support necessarily involves KWQ as well, since the plugin code is (obviously) platform-specific.


<a href="http://weblogs.mozillazine.org/hyatt/archives/2005_04.html#008054&quot;&gt;http://weblogs.mozillazine.org/hyatt/archives/2005_04.html#008054&lt;/a&gt;

oraz:

Code in Safari is hugely inconsistent and changes are always interdependent. There’s basically no way of merging in one change without bringing a whole bunch of others in. And you know what? Don’t even tell me about merging stuff like render_canvasimage.h,cpp.
Do you have any idea how hard it is to be merging between two totally different trees when one of them doesn’t have any history? That’s the situation KDE is in. We created the khtml-cvs list for Apple, they got CVS accounts for KDE CVS. What did we get? We get periodical code bombs in the form of them releasing WebCore.


<a href="http://www.kdedevelopers.org/node/view/1001&quot;&gt;http://www.kdedevelopers.org/node/view/1001&lt;/a&gt;

Zauważ o czym jest mowa. Mowa nie jest o tym, żeby Hyatt poszedł do szkoły uczyć się programowania, tylko o tym o czym inni pisali i o czym ja przypominam, bo zdaje się, że zupełnie wypaczyłeś sens tego co się wokół sprawy Apple/KDE dzieje.

Robert Błautquiris Friday, May 20, 2005 8:27:01 PM

IMHO Goodger ma takie samo prawo komentować wydarzenia w świecie KHTML, jak Ty w świecie Gecko.
Oczywiście, że ma takie prawo jednak nie może czynić tego w taki frywolny sposób w jaki ja to miewam czasem w zwyczaju czynić z uwagi na fakt jaką funkcję pełni.

> Poza tym, Ben nie udzielił reprymendy _projektowi_ KDE, tylko raczej nadmiernie podnieconym fanom KDE, którzy na różnych slashdotach zaczęli bluzgać na Apple, zaraz po tym, jak przestali bluzgać na KDE za nieimportowanie patchy.
Wybacz marcoos, ale Goodger odnosi się wprost do cytowanej wypowiedzi Rusina, który IMO kozgorączkowanym byle fanem KDE nie jest, choć możliwe, że zaczął na Apple bluzgać wink

Apple ma pełne prawo robić z KHTML/Webcore co im się żywnie podoba, dopóki to jest zgodne z licencją LGPL (tak samo jak AOL ma absolutne prawo przerobić Firefoksa na g*wno pt. "Netscape 8", dopóki trzyma się MPL).

W stuprocentach zgadzam się. Dlatego w swojej wypowiedzi nie demonizowałem Apple, bo nie mogę tego robić w obliczu faktów prawnych.

Jeśli współpraca między Apple a KDE się nie układała, tak, jak sobie to KDEowcy wymarzyli, to powinni wcześniej próbować coś w tej sprawie zrobić, a nie pozwolić jej się gotować pod przykryciem, by wykipiała.

O ile dobrze pamiętam to od początku ta współpraca nie była różana wink

Robert Błautquiris Friday, May 20, 2005 8:27:01 PM

Marcoos: IMHO KDEowcy nie maja zadnej mozliwosci "dyskusji o wspolpracy" poza tym co mozna nazwac "dobra wola Apple", czyli checia wspolpracy od Apple. Apple ma prawo i moze nie kontaktowac sie w ogole i nie dawac KDE nic. I nadal wszystko jest fair.

Zgadza się.
Natomiast to, ze Apple podsylalo od zawsze patche w formie po prostu bzdurnej, np. 2 mb patcha z ostatnich 2 miesiecy, albo podsylali patche z Obj C, ktore oczywiscie jest MacOSX, to juz zakrawalo na zlosliwosc. Teraz sie okazalo, ze nie bylo to zlosliwoscia, ale frustracja w ludziach z KDE rosla.

Dokładnie.

Marek Stępieńmarcoos Friday, May 20, 2005 8:27:01 PM

W takim razie KDEowcy powinni byli protestować przeciwko "codebombs" wcześniej, a nie po dwóch latach...

Zbigniew BranieckiGandalf1 Friday, May 20, 2005 8:27:01 PM

> Zauważ o czym jest mowa.
Tak. Akurat o tym pisali na blogach... Ja zas mowilem o czym innym. Nie wiem czemu skupiasz sie w odpowiedzi na udowadnianiu mi, ze byly rowniez inne powody i problemy na linii Apple - KDE.
Poza tym nie oskarzam nikogo o niski poziom kodowania. Hyatt jest swietnym profesjonalista, ktory przez wiele lat programowal dla Mozilli i jego kod jest swietny, ale w duzych projektach nie tylko umiejetnosci programisty wplywaja na jakosc patchy i wynik. Chocbys byl programistycznym Bogiem, kazdy wiekszy patch bedzie mial na poczatku liczne bledy i dlatego najlepiej, zeby patch byl dlugo testowany i sprawdzany przez wiele osob... A to wymaga czasu.

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.