Eдин мъж в Оукланд, Калифорния, разстрои уеб разработчиците в целия свят през миналата седмица, като изтри 11 реда код.
Историята за това как 28-годишният Азер Кочулу счупи Интернет показва, че писането на софтуер е станало функция на смесица от код, която до голяма степен зависи от благоволението на множество програмисти. Когато един от тях реши да изтрие нещо, както стана миналата седмица, последствията могат да бъдат сериозни и непредсказуеми.
„Мисля, че имам правото да изтрия всяко мое нещо“, пише Кочулу на 20 март в мейл, който беше публикуван по-късно.
Кочулу работи с NPM, популярна услуга, която е широко използвана, за инсталиране и допълване на софтуер с отворен код, написан на JavaScript.
Тя се е превърнала в основен инструмент за уеб програмиране. Всеки месец NPM се използва милиарди пъти заради огромната библиотека от пакети с отворен код, с която разполага.
Подобно на много хора в общността на програмистите Кочулу се придържа към „хакерската етика“, създадена в Масачузетския технологичен институт. Според нея основният акт на приятелство между програмисти е споделянето на програми. Общността, която работи с отворен код, се опитва да избегне комерсиализацията, въпреки че създадените от нея приложения се използват и в много комерсиални програми.
„Аз съм самоук, завършил съм гимназия и знам всичко, което съм научил, благодарение на отворения код“, споделя Кочулу, който е роден в Турция.
Един от пакетите, създадени от него, носи краткото име „kik“. Той се използва от програмистите, за да създават шаблони за своите приложения. По съвпадение това е и името на базирана в Онтарио, Канада, софтуерна компания. На 11 март Кочулу получава мейл от тях, че трябва да преименува пакета „kik”.
Той категорично отказва да се съобрази с корпоративното искане. От компанията предлагат да му платят, но исканата от него сума от 30 хил. долара е неприемлива. В крайна сметка те се свързват със собственика на платформата NPM, която е базирана в Оукланд.
От NPM пишат на програмиста, че трябва да отстъпи и че ще признаят собствеността върху името „kik” на едноименната компания.
Кочулу отвръща, че никога не си е представял, че собствениците на платформата толкова лесно ще отстъпят пред „шайка корпоративни адвокати“.
Много програмисти, особено в общността на работещите с отворен код, създават сериозни проблеми на корпорациите, които често решават, че „отворен код“ е едно и също с „безплатно“ или пък патентоват софтуерни приложения и след това заплашват създателите на части от тях със съд.
За Кочулу, решението на NPM да прехвърли собствеността на кода, създаден от него под името „kik”, на едноименната компания, е в разрез с ценностите на общността. Той пише: „Аз не искам да бъда част от NPM повече“ и изтрива от платформата пакетите с код, създадени от него.
Два дни по-късно хиляди програмисти в целия свят се сблъскват със странно съобщение за грешка. Проблемът засяга и редица вече работещи приложения. Самият текст на грешката е доста дълъг, но следните редове обясняват всичко:
Това означава, че когато кодът се опита да стартира необходимия за изпълнението му пакет „left-pad“, последният не може да бъде открит в регистъра на NPM.
Повечето програмисти въобще не са и чували за „left-pad“, но изненадващо се оказва, че създадените от тях уеб базирани приложения не могат да работят без него.
Един от най-големите сайтове засегнати от проблема е този на „Фейсбук“. Става въпрос за съвсем проста функция, стартирана от 11 реда код, който е част от пакет, който е част от друг пакет, който пък е част от софтуерни приложения. Само за последния месец въпросните 11 реда са включени в над 1 милион проекта на програмисти.
The willingness of @npmjs to delete and rename packages makes it unreliable. #nodejs #npm #reactjs #leftpad #kik https://t.co/wViFmBXnkb
— MattTannahill (@MattTannahill) March 31, 2016
Липсата им се усеща в целия свят, от Австралия през Германия и САЩ, до Чехия. В крайна сметка кризата продължава само 2 часа, след като от NPM успяват да пренапишат, създадения от Кочулу пакет „kik”, нарушавайки авторските му права в името на „мнозинството“.
Проблемът обаче показа сериозната уязвимост в начина, по който се пишат модерните софтуерни приложения. В същото време реакцията на NPM повдига въпроса за това, докъде може да се позволи да стигнат корпорациите, с оправданието, че мнозинството е по-важно от индивида.
* Моля, коментирайте конкретната статия и използвайте кирилица! Не се толерират мнения с обидно или нецензурно съдържание, на верска или етническа основа, както и написани само с главни букви!