Oryginalny post: Wikileaks To Leak 5000 Open Source Java Projects With All That Private/Final Bullshit Removed
Autor: Steve Yegge
EYJAFJÖLL, ISLANDIA – wśród programistów Javy na całym świecie szerzy się panika, w związku z wydanym dzisiaj o godzinie 8:15 GMT komunikatem prasowym Wikileaks. Organizacja zapowiedziała ponowne opublikowanie kodu źródłowego tysięcy opensource'owych projektów Javy. Wszystkie modyfikatory dostępu ustawione będą jako 'public', natomiast ze wszystkich klas i ich składowych usunięty zostanie modyfikator 'final'.
Johnnie Garza, zwinny programista Java z Irvine, CA potępia taki ruch. „Oni nie mają prawa tego zrobić. Open source nie oznacza, że kod jest w jakiś sposób 'otwarty'. To jest mój kod, nie ich. Jeśli określam coś jako 'private', to nie ma znaczenia jak bardzo potrzebujesz to wywołać, powinienem móc cię zatrzymać, nawet jeśli już dawno jestem w grobie”.
Według informacji prasowej Wikileaks, miliony plików z kodem źródłowym Javy zostało przepuszczonych przez skrypt Perla usuwający wszystkie słowa kluczowe 'final', z wyjątkiem tych, które są niezbędne, aby obejść „cholernie makabryczny brak domknięć”, w tym 15-letnim języku Java.
Dodatkowo, skrypt Perla zapewnia, że każda klasa ma przynajmniej jeden publiczny konstruktor, a wszystkie pola nie mające geterów i seterów przekształca w publiczne. „Skrypt eliminuje również wszystkie badziewne adnotacje @deprecated”, można przeczytać w komunikacie.
Długoletni programista Javy, Ronnie Lloyd z Austin, TX czuje się dotknięty myślą, że ludzie będą mogli tworzyć instancje jego prywatnych klas. ”To po prostu zdrowy rozsądek”, mówi Lloyd, 37 lat. „Jeśli kupuję dom i przekazuję go tobie, ale jednocześnie zawieszam na niektórych drzwiach tabliczki „Tylko dla pracowników”, wtedy nie jesteś upoważniony do otwierania tych drzwi, nawet jeśli to jest twój dom. Bo to jest tak naprawdę mój dom, nawet jeśli pozwoliłem ci w nim mieszkać.”
Marszcząc brwi w zamyśleniu, Lloyd kontynuuje: „Nawet jeśli odchodzę na zawsze, a ty mieszkasz tam przez 20 lat i dokładnie wiesz co jest za drzwiami – do licha, nawet jeśli to jest sprawa życia i śmierci – czysty zdrowy rozsądek podpowiada, że nigdy, przenigdy nie możesz otworzyć tych drzwi pod żadnym pozorem.
„To jest dla twojego bezpieczeństwa”, dodaje Lloyd.
Wesley Doyle, webowy programista Javy z Toronto, Kanada jest po prostu zaskoczony tą wiadomością. „Dlaczego oni myślą, że muszą to zrobić? Dlaczego użytkownicy mojej opensource'owej biblioteki w Javie nie mogą zwyczajnie zacisnąć pięści i później przekląć moje imię na łożu śmierci? To podejście działa dobrze dla reszty z nas. Kogo to obchodzi, czy mam prywatną, pomocniczą funkcję, której oni potrzebują? Czyżby popsuło im się kopiowanie i wklejanie?”
Założyciel Wikileaks, Julian Assange, który ukuł termin „Opened Source” dla określenia złamanego opensource'owego kodu Javy obawia się aresztowania przez służby ochronne na kampusach Oracle lub IBM. Założyciel Wikileaks powiedział: „W dniu dzisiejszym Eclipse Foundation zwołało prywatne spotkanie, na którym określono mnie jako 'non-thread-safe AbstractKeywordRemovalInitiatorFactory'. Co to do cholery znaczy? Obawiam się o swoje bezpieczeństwo w pobliżu tych osób”.
Usunięcie adnotacji '@deprecated' jest szczególnie dotkliwe dla wielu ciężko pracujących programistów Javy. „Ciężko pracowałem, żeby zdeprecjonować ten kod, nad którym ciężko pracowałem, kiedy go tworzyłem, żeby zdeprecjonować inny kod, nad którym również ciężko pracowałem”, mówi Kelly Bolton, rzecznik League Of Java Programmers For Deprecating The Living Shit Out Of Everything.
„Jeśli ludzie mogą używać starszego, bardziej wygodnego API, które dla nich stworzyłem, dlaczego cholera mieliby używać mojego nowego, bardziej skomplikowanego API? To się nie mieści w głowie”, dodaje Bolton.
Zespół Eclipse CDT został szczególnie dotknięty usunięciem tagu przestarzałości. Morris Baldwin, pracujący dorywczo jako programista CDT, zajmuje się biblioteką parsującą w C++ i mówi: „Obecnie prowadzimy politykę wydawania pakietów w Javie, w których każda klasa, interfejs i metoda są przestarzałe od samego początku, fabrycznie, zaczynając od wersji 1.0”.
„Powzięliśmy pewne kroki, aby zapewnić, iż nie będzie możliwym wykorzystanie naszego przed-przestarzałego kodu bez uruchomienia naszego rozbudowanego frameworka”, dodaje 22-letni Baldwin. „Dodanie publicznych konstruktorów i usunięcie atrybutów 'final' byłoby poważnym ciosem zarówno dla nie-użyteczności jak i nie-ponownego-wykorzystania”.
Zwinna społeczność Javy określiła działanie Wikileaks jako akt terroryzmu. „Prawdopodobnie stoi za tym ekstremistyczny ruch programowania aspektowego”, spekuluje zwinna projektantka Javy, Claudia Hewitt, 29 lat. „Zawsze wiedziałam, że oni chcą użyć mojego kodu w sposób, którego nigdy nie mogłam z góry przewidzieć”, dodaje.
Wielu programistów Javy zapowiedziało walkę przeciw niepożądanemu otwarciu ich otwartego kodu typu open source. Billy Blackburn, rzecznik League of Agile Methodology Experts (LAME) mówi, że rozpoczęto już prace nad nowym narzędziem do budowy projektów, które nie będzie linkowało kodu Javy typu Opened Source. Narzędzie zostanie wydane od razu po tym, jak niezależni dostawcy pewnych bibliotek Javy zrefaktoryzują kod, aby można go było ponownie wykorzystać. Blackburn odmówił opisania zmian, twierdząc, że „to nie je wasz biznes”.
Guy Faulkner, 51 letni programista Pythona z Seattle był rozbawiony komunikatem Wikileaks. „Kiedy programiści Pythona wypuszczają coś jako Open Source, to mówią: Słuchajcie, ciężko nad tym pracowałem. Mam nadzieję, że to polubicie. Używajcie tego jak chcecie. Niektóre rzeczy są udokumentowane, jako mogące podlegać zmianom w przyszłości, ale wszyscy jesteśmy tutaj dorośli, więc użyjcie swojego rozsądku”.
Faulkner wzruszył smutno głową. „Podczas gdy programiści Javy, którzy wypuszczają kod jako Open Source mówią: Słuchajcie, ciężko nad tym pracowałem. Mam nadzieję, że to polubicie. Ale używajcie tego dokładnie tak, jak wam powiedziałem, bo do jasnej cholery, to mój kod. Będę decydował, kto jest wystarczająco cholernie dorosły tutaj w okolicy”.
„Ale dlaczego ten skrypt Perla nie został napisany w Pythonie?”, pyta Faulkner.