W ostatnim tygodniu świat newsów IT mocno zwolnił ze względu na święto dziękczynienia. Internet nie cierpi jenak pustki i dyskusje w naszej frontendowej społeczności zdominowała decyzja o przepisaniu ESLint od zera bez wykorzystania TypeScript.
1. ESLint zostanie przepisany od zera
Kilka tygodni temu informowaliśmy Was o wydaniu pierwszej stabilnej wersji Rome. Docelowo ma to być alternatywa dla Babela, Prettier, Webpacka i kilku innych narzędzi deweloperskich. W dniu debiutu jest to jednak szybsza alternatywa dla ESLint. Ten poczuł chyba oddech konkurencji na swoich plecach, bo w tym tygodniu ogłoszono, że zostanie on przepisany od zera.
![](https://vived.io/wp-content/uploads/2022/12/72w3a7.jpeg)
Najwięcej kontrowersji w całej inicjatywie wzbudził wybór języka programowania. ESLint nie będzie podążał trendem większości nowych narzędzi deweloperskich (takich jak Rome czy Turbopack) i nie zostanie przepisany do Rusta. Autorzy biblioteki zakładają jednak jego wykorzystanie w miejscach kluczowych dla wydajności.
Jeśli nie Rust, to pewnie TypeScript? Otóż nie. Zespół zdecydował się rozwijać narzędzie przy użyciu JavaScriptu wzbogaconego o JSDoc. Taka architektura pozwala automatycznie generować typy dla twórców pluginów piszących w TypeScript i zapewnia podstawowe sprawdzanie poprawności kodu.
![](https://vived.io/wp-content/uploads/2022/12/download-58.jpeg)
Czytając dyskusję na temat podjętych decyzji architektonicznych czułem się, jakbym cofnął się w czasie o 4-5 lat. Dyskusja na temat wyższości (bądź niższości) TypeScript nad JavaScript ponownie rozgorzała. W całej tej debacie warto pamiętać, że decyzja ta jest przezroczysta z perspektywy klienta ESLint. Jakkolwiek ja nigdy nie zdecydowałbym się tworzyć teraz biblioteki w JavaScript, tak nie zamierzam narzucać innym jak mają wykonywać swoją pracę.
![](https://vived.io/wp-content/uploads/2022/12/72vxjd.jpeg)
Przepisanie ESLint od zera to też szansa na wprowadzenie nowych funkcjonalności. Najciekawiej z mojej perspektywy wygląda możliwość modyfikacji struktury drzewa AST w celu naprawy niektórych błędów formatowania. Z funkcjonalnością tą wiąże się oczywiście spora doza ryzyka, bo ESLint będzie mógł teraz modyfikować zachowanie naszego programu. Z drugiej strony, przy odpowiedniej konfiguracji, modyfikacja drzewa AST może zaoszczędzić nam sporo czasu, który poświęcamy na naprawianie prostych błędów.
![](https://vived.io/wp-content/uploads/2022/12/download-55.jpeg)
Drugą funkcjonalnością, która przykuła moją uwagę jest uczynienie ESLint narzędziem niezależnym od języka programowania. Oznacza to, że jeśli wszystko pójdzie z planem, to ESLint będziemy mogli używać również z innymi językami programowania jak Java czy C#.
![](https://vived.io/wp-content/uploads/2022/12/72w2tv.jpeg)
Na ten moment nie wiadomo kiedy rozpocznie się inicjatywa przepisania ESLint. Jak możemy dowiedzieć się z dyskusji na GitHubie przed zespołem rozwijającym bibliotekę jest jeszcze sporo planowania. Zanim do repozytorium trafi pierwszy commit czeka nas jeszcze seria RFC precyzujących poszczególne decyzje architektoniczne.
Źródła
https://github.com/eslint/eslint/discussions/16557
Zainstaluj teraz i czytaj tylko dobre teksty!
![phone newsletter image](https://vived.io/wp-content/uploads/2021/12/ad2-min-1.png)
2. React Native Core Contributor Summit 2022
React Native Core Contributor Summit, to spotkanie, które gromadzi wszystkie strony zaangażowane w rozwój React Natvie. Ze względu na pandemię przez kilka ostatnich lat spotkanie nie mogło się odbyć. W tym roku wróciło jednak ze zdwojoną siłą. Przy okazji konferencji React Native EU główni kontrybutorzy React Native (i jego najpopularniejszych bibliotek ościennych) oraz ludzie z Mety odpowiedzialni za rozwój projektu wzięli udział w serii warsztatów podczas których starali się zaadresować największe bolączki projektu. Poruszane tematy dotyczyły głównie nowej architektury React Native, a ich listę znaleźć możecie poniżej:
- React Native Codegen & TypeScript Support
- React Native New Architecture Library Migration
- React Native Monorepo
- Metro Web and Ecosystem Alignment
- Metro Simplified Release Workflow
![](https://vived.io/wp-content/uploads/2022/12/download-56.jpeg)
Jeśli interesują Was szczegóły inicjatyw podjętych w konkretnych tematach, to odsyłam Was do linku, który znajdziecie w źródłach. Pierwszymi efektami Core Contributor Summit 2022 są liczne RFC. Pierwsze efekty na których realnie skorzystają programiści trafią już React Native 0.71
Źródła
https://reactnative.dev/blog/2022/11/22/react-native-core-contributor-summit-2022
Zainstaluj teraz i czytaj tylko dobre teksty!
![phone newsletter image](https://vived.io/wp-content/uploads/2021/12/ad2-min-1.png)
3. Electron 22 i Electron Forge 6
W minionym tygodniu opublikowany został Electron 22. Oprócz standardowego podbicia zależności (Chromium 108, V8 10.8, i Node.js 16.17.1) jest to ostatnia wersja, która będzie wspierać Windows 8. Wśród zmian znalazło się też kilka breaking changes, ale najciekawiej wygląda premiera towarzysząca Electron 22, czyli Electron Forge 6.
![](https://vived.io/wp-content/uploads/2022/12/download-57.jpeg)
Electron Forge to narzędzie, które pozwala budować aplikacje oraz generować i podpisywać pliki instalacyjne. Oczywiście podobne narzędzia były dostępne już od dawna, ale Electron Forge 6 jest wyjątkowy, bo projekt pod swoje skrzydła wziął go główny zespół rozwijający samego Electrona. Co za tym idzie, narzędzie to otrzyma sporo czasu deweloperskiego, a jego dokumentacja zostanie zintegrowana z dokumentacją Electrona.
Źródła:
https://www.electronjs.org/blog/electron-22-0
https://www.electronjs.org/blog/forge-v6-release
https://www.electronforge.io/core-concepts/why-electron-forge