Zgłoś błąd
X
Zanim wyślesz zgłoszenie, upewnij się że przyczyną problemów nie jest dodatek blokujący reklamy.
Błędy w spisie treści artykułu zgłaszaj jako "błąd w TREŚCI".
Typ zgłoszenia
Treść zgłoszenia
Twój email (opcjonalnie)
Nie wypełniaj tego pola
.
Załóż konto
EnglishDeutschукраїнськийFrançaisEspañol中国

Jak zepsuć tysiące aplikacji? Wystarczyło usunąć 17 linii kodu

LukasAMD | 25-03-2016 11:41 |

java scriptŚwiat oprogramowania i deweloperów zajmujących się jego tworzeniem widział już najróżniejsze i zabawne historie. To, co wydarzyło się w ostatnich godzinach, dla wielu programistów nie było jednak niczym śmiesznym. Można powiedzieć, że za sprawą działania jednej rozzłoszczonej osoby „padł” JavaScript wykorzystywany w wielu komercyjnych projektach i korzystanie z gotowych modułów okazywało się niemożliwe. Otwarte oprogramowanie żyje własnym trybem, czasami wpędza się jednak w prawdziwy koszmar zależności. Tak też stało się i tym razem - po raz kolejny uświadomiło to wielu programistom, że co prawda korzystanie z cudzego, nawet otwartego i wolnego kodu jest działaniem nie do końca bezpiecznym. Teraz nie milkną głosy oburzenia, zarówno na "sprawcę" całego zamieszania, jak i opiekunów projektu, w którym znajdował się jego kod.

Usunięcie niewielkiego modułu spowodowało, że tysiące aplikacji na całym świecie nagle odmówiło współpracy.

Do katastrofy doszło wczorajszego popołudnia. Deweloperzy tworzący kod JavaScript z całego świata stwierdzili nagle, że wiele z narzędzi po prostu nie działa: dotyczyło to gotowych bibliotek, oprogramowania do testowania, a także samego wydawania aplikacji. Wspólnym elementem tego koszmaru był menadżer pakietów npm dla node.js wykorzystywany przez wielu programistów w celu automatycznego wykorzystywania efektów pracy innych osób i rozwiązywania zależności. Jedną z osób publikujących tam swój kod jest (poprawka: był) Azer Koçulu. Odpowiada on za stworzenie wielu gotowych modułów, z których korzysta społeczność zajmujących się JavaScriptem. W ostatnim czasie jedna z firm poprosiła go o zmianę nazwy biblioteki, chodziło bowiem o wydanie innego modułu o nazwie nawiązującej do nazwy firmy.

JavaScript #1

Azer na działanie takie się nie zgodził, został więc nieco postraszony prawnikami i ochroną zarejestrowanego znaku towarowego. Nie zrobiło to na nim wrażenia, firma zwróciła się więc do wsparcia npm w celu zainterweniowania. Opiekunowie menażera zdecydowali się samodzielnie zmienić nazwy pakietów, co Koçulu odebrał bardzo negatywnie – zażądał bowiem usunięcia jego projektów (273 zarejestrowanych modułów) z npm, nie chciał działać w takim wymiarze „open source”. To doprowadziło do masakry: Azer jest bowiem autorem pakietu left-pad – zawiera on tylko 17 linijek kodu JavaScript i do podanego ciągu znaków dodaje podany przez programistę przedrostek (np. spację, dowolną liczbę, znak). Prosty kod, prawda? Tak się jednak składa, że był on wykorzystywany przez tysiące aplikacji.

Korzystanie z czyjegoś otwartego i wolnego kodu nie jest złe, nie mamy jednak gwarancji, że zawsze będzie dostępny.

Usunięcie tego modułu z npm spowodowało, że nagle cały ogrom aplikacji z całego świata przestał działać: zależności nie mogły bowiem zostać spełnione, pakiet left-pad nie był znajdowany. Działać przestał m.in. Babel stanowiący swoisty „kompilator” oczyszczający kod JavaScript. Niektórzy programiści nawet nie wiedzieli, że używają feralnego fragmentu, bo korzystali z innych bibliotek, które się do niego odwoływały. Wszystko rozsypało się niczym domek z kart, pokazując prawdziwe piekło zależności. Ekspresowo postarano się o umieszczenie zamiennika, ale to co się stało i tak zachwiało zaufaniem, jakim deweloperzy darzyli do tej pory cały manager pakietów. Sytuacja wyraźnie podzieliła społeczność, nie każdemu bowiem spodobały się ani działania autora, ani samych opiekunów npm.

JavaScript #2

Tego typu sytuacje się zdarzają – choć teraz doszło do tego na tak wielką skalę i przy użyciu tak niewielkiego kodu. Piekło zależności i poleganie na kodzie kogoś innego to oszczędność czasu, ale i wielkie ryzyko: tutaj natomiast rzadko kiedy pamięta się słowa o tym, że jeszcze nigdy tak wielu nie zawdzięczało tak wiele tak nielicznym. Programiści korzystają z kodu kogoś innego i nie przyjmują do wiadomości, że jego autorzy mogą w dowolnym momencie po prostu go wycofać. Mają do tego pełne prawo.

Źródło: Ars Technica / Venturebeat
Bądź na bieżąco - obserwuj PurePC.pl na Google News
Zgłoś błąd
Łukasz Tkacz
Liczba komentarzy: 15

Komentarze:

x Wydawca serwisu PurePC.pl informuje, że na swoich stronach www stosuje pliki cookies (tzw. ciasteczka). Kliknij zgadzam się, aby ta informacja nie pojawiała się więcej. Kliknij polityka cookies, aby dowiedzieć się więcej, w tym jak zarządzać plikami cookies za pośrednictwem swojej przeglądarki.