W minionym tygodniu ostatecznie pożegnaliśmy angular.js. Oprócz tego wiele się działo w świecie plotek i ploteczek, bo ciągu dalszego doczekała się historia tajemniczego zniknięcia biblioteki faker.js. Przygotujcie sobie ciepłą herbatę, rozsiądźcie się wygodnie w fotelu i zapraszamy na kolejną edycję naszego frontendowego przeglądu prasy!
1. Czas pożegnać angular.js 🪦
Wsparcie dla angular.js miało zostać wycofane już w lipcu tego, ale niedługo po wybuchu pandemii ze względu na perturbacje przez nią wywołane Google zdecydował się dać firmom dodatkowe pół roku wsparcia. Dodatkowy czas właśnie dobiegł końca i 31 grudnia 2021 roku oficjalnie pożegnaliśmy angular.js, (znany też jako Angular 1.x). Oczywiście framework dalej dostępny jest w npm, ale Google nie planuje dalszych łatek. Nie myślcie również, że jest to koniec samego Angulara – Angular 13 ma się świetnie i już za 2-3 miesiące możemy oczekiwać pojawienia się Angulara 14.
Z okazji pogrzebu angular.js powspominajmy trochę stare dobre czasy. Angular powstał w 2010 roku jako projekt rozwijany po godzinach przez Misko Heveryego oraz Adama Abronsa. Misko Hevery pracował wtedy od kilku tygodni nad projektem Google Feedback. Zasugerował on swojemu managerowi, że jest w stanie przypisać go w przeciągu dwóch tygodni do rozwijanej przez siebie biblioteki. Manager dał się przekonać. Misko przekroczył deadline o tydzień, ale udało mu się zredukować kod z 17k do 1.5k linii kodu. Od tego czasu Google zaczął inwestować w Angulara. Rzecz jasna równolegle rozwijane były alternatywne narzędzia wspierające web development, ale z biegiem czasu to właśnie Angular stał się najczęściej używanym frameworkiem w Google. Obecnie wykorzystuje go ponad 1500 aplikacji utrzymywanych przez firmę.
Wracając do głównego wątku historii. Angular.js w wersji 1.0 został opublikowany w 2012 roku i wraz z upływem lat zyskiwał na popularności. Konkurencja w postaci backbone.js i ember.js została w tyle. Pod względem gwiazdek na Githubie, w szczytowym momencie udało się wyprzedzić nawet jquery!
Przed zespołem rozwijającym Angulara rosła jednak coraz większa ściana nie do przeskoczenia. Było nią osiągnięcie lepszego bezpieczeństwo typów i obejście ograniczeń przyjętego u podstaw modelu. Podjęta została decyzja o całkowitym przepisaniu frameworku do postaci w jakiej znamy go dzisiaj. Zbieg okoliczności sprawił, że niedługo przed ogłoszeniem prac nad Angularem 2 na rynku pojawiła się mało znana biblioteka od Facebooka. Deweloperzy posiadający nieuchronną wizję przepisanie swoich aplikacji zaczęli rozglądać się za rozwiązaniami alternatywnymi tak trafiali właśnie na Reacta.
Być może w historii tej jest więcej mitu niż prawdy, a do sukcesu Reacta z pewnością przyczyniło się więcej czynników niż tylko porażka angular.js. Patrząc na gwiazdki na GitHubie w momencie premiery Angular 1.x był czterokrotnie popularniejszym rozwiązaniem niż React, a Angular 2.0 nigdy nie zbliżył się nawet do wyników frameworka od Google.
angular.js w momencie premiery był rozwiązaniem innowacyjnym, ale z czasem rosło grono jego przeciwników. Angular 2 pomimo całkowicie innego API odziedziczył złą prasę. Sytuację tylko pogorszyła decyzja o nazwaniu Angulara 2 po prostu Angularem i przemianowaniu Angulara 1.x na angular.js. Do dzisiaj w sieci z łatwością znaleźć można raporty, które przedstawiają satysfakcję deweloperów z korzystania z Angulara jako jedną kategorię. Niestety nigdy nie dowiemy się jak wyglądałby rozkład sił wśród frontendowych frameworków gdyby Google spróbował bardziej iteracyjnego podejścia lub gdyby zdecydował się na rebranding swojego frameworku.
My tymczasem oddajmy angular.js należne mu honory – niezależnie od tego co sądzicie na jego temat jest to spory kawałek historii web developmentu.
Źródła:
https://blog.angular.io/discontinued-long-term-support-for-angularjs-cc066b82e65a
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Ciąg dalszy historii faker.js 🙈
Zwykle nie wracamy do tego samego tematu dwa tygodnie z rzędu, jednak wokół Maraka Squires narosło w ostatnim czasie tyle dyskusji i kontrowersji, że nie mogłem sobie odmówić wyjątku od reguły. Przedstawiając sytuację sprzed tygodnia w telegraficznym skrócie: biblioteka faker.js została całkowicie skasowana przez swojego twórcę w ramach manifestu zwracającego uwagę na tajemniczą śmierć aktywisty Aarona Shwartz. Jeśli interesują Was szczegóły to zapraszam do poprzedniej edycji naszego przeglądu.
Co wydarzyło się odkąd ostatni raz opisywaliśmy całą sytuację? Zacznijmy od npm wycofującego wadliwą paczkę ze swojego repozytorium, oraz Githuba zawieszającego konto Maraka. Akcje podjęte przez serwisy były zgodne z ich regulaminem, ale mimo tego wzbudziły spore kontrowersje. Część deweloperów przyklaskuje podjętym akcjom i zwraca uwagę na potrzebę przeciwdziałania toksycznym akcjom. Pozostała część zapowiada porzucenie GitHuba i mówi o potrzebie przygotowania rozproszonej nie nadzorowanej alternatywy do kontroli wersji. Pikanterii całemu zajściu nadaje fakt, że Marak utrzymywał dziesiątki, jeśli nie setki małych bibliotek do których z dnia na dzień stracił dostęp.
Wszystko wskazuje na to, że Marak finalnie odzyskał dostęp do swojego konta na GitHubie, bo już 10 styczna kolejna biblioteka stała się częścią jego manifestu. Tym razem na tapet wzięty został color.js, który używany jest w node do kolorowania tekstu w konsoli. W commicie o niepozornej nazwie `American flag` dodana została funkcjonalność, która po zainicjalizowaniu biblioteki kilkukrotnie wpisuje w konsoli LIBERTY, a następnie wpadała w nieskończoną pętlę wyświetlającą losowe niestandardowe znaki ASCII.
Sam Marak odniósł się do całego zajścia otwierająca Issue na Guthubie, w którym ironicznie deklaruje, że ciężko pracuje nad naprawą buga. Część osób w zaistniałej sytuacji doszukuje się odniesień do innego manifestu Maraka, który miał miejsce w 2020 roku. Wtedy to na GitHubie opublikował on wpis mówiący o porzuceniu wszystkich utrzymywanych przez niego bibliotek jeśli ogromne korporacje nie zaczną w końcu płacić twórcom Open Source. Trzeba przyznać, że Marak zwraca uwagę na ważne i interesujące tematy, ale robi to w bardzo drastyczny sposób.
Open Source nie cierpi pustki, dlatego jeśli szukacie alternatywy dla faker.js, to Netanel Basal (twórca biblioteki do zarządzania stanem aplikacji Akita oraz rozpoznawalna osobistość w świecie Angulara) zaimplementował swoją alternatywę o nazwie falso. Pozostaje tylko czekać, aż ktoś pokusi się również o przepisanie color.js 😉
import { cityName, streetAddress, dog, bear, databaseEngine } from '@ngneat/falso';
cityName(); // Lake Charles
streetAddress(); // 58739 Bridie Mission
dog(); // Newfoundland
bear(); // Sloth bear
databaseEngine(); // CSV
Źródła:
https://www.theverge.com/2022/1/9/22874949/developer-corrupts-open-source-libraries-projects-affected
https://github.com/ngneat/falso
https://github.com/Marak/colors.js/issues/285