Preskočiť na hlavný obsah

Frontendové zvesti #5

· Čítanie na 5 min

Časť Angular kompilátoru sa prepisuje z TS do Rust-u. Jednoduchý editor pre terminál od Microsoft-u. Natívne Node.js API vie nahradiť mnohé známe balíčky. História čísiel portov. Programovanie hudby v JavaScript-e.

Angular compiler a nový TypeScript​

Tento rok vyšiel nový TypeScript 7, ktorý je už napísaný v jazyku Go. Pokiaľ TypeScript používate rovnakým štýlom ako väčšina vývojárov, tak vám stačí zdvihnúť číslo verzie a nič extra neriešiť. Pokiaľ však robíte pokročilejšie veci a potrebujete pristupovať k jeho programátorskému compiler API, tak nateraz máte smolu. Až do vyjdenia verzie 7.1 žiadne takéto API nie je dostupné.

Nové API navyše bude takmer určite iné a pre niektoré predchádzajúce situácie nepoužiteľné. Je to logické, keďže sa zmenil samotný jazyk a časť API proste nebude medzi-jazykovo kompatibilná a/alebo dostupná (napr. ts.Transform API).

Toto celkom narobilo vrásky ľuďom vyvíjajúcim Angular framework, pretože ich kompilátor je asi najkomplikovanejšou integráciou s TypeScriptom v celom webovom ekosystéme.

Rozhodli sa preto, že prepíšu niektoré časti Angular kompilátoru. Kým doterajšia verzia bola napísaná v TypeScript-e, časti novej verzie budú naprogramované v Rust-e.

Novoprepísaná časť oddelila kompiláciu Angularu od závislosti na TypeScript compiler API. V podstate tak vytvorili vlastný kompilátor, ktorý im spracúva komponenty, direktívy atď. a na výstupe je TypeScript-ový kód, ktorý sa môže rovno poslať do ďalšieho nástroja.

Prečo si vybrali práve Rust a nie napríklad Go, do ktorého bol prepísaný TypeScript? Mali väčšiu voľnosť, pretože nemali veľa zväzujúcich požiadaviek (ako napríklad špecifický druh garbage collector-a), ktoré by im nejaký jazyk predurčili. Takže si vybrali taký jazyk, kde už existuje veľmi dobrá podpora pre JavaScript-ový tooling.

Jeden z nástrojov, na ktorom nový prekladač stavajú je Oxc (Oxidation Compiler), vyvíjaný ľudmi z firmy Void Zero. To sú tí istí, ktorí majú na svedomí Vite a celý ekosystém okolo neho.

Mimochodom, veľmi podobnú vec urobili teraz aj ľudia okolo projektu Panda CSS. Nová verzia 2.0 má kompilátor prepísaný do Rustu a používa Oxc.

Náhrady za NPM balíky priamo v Node.js​

Flavio Copes napísal nedávno článok, v ktorom popísal dvanásť funkcionalít zabudovaných priamo do Node.js, ktorými je možné nahradiť mnohé NPM balíky.

Poznámka na okraj

Nie som si úplne istý, nakoľko ten článok Flavio naozaj napísal. Pri tej frekvencii, koľko toho publikuje, by som sa nečudoval, keby bol vygenerovaný 🙃. V každom prípade bol text zverejnený na jeho blogu a pre mňa je užitočný.

V článku krátko rozoberá dvanásť zabudovaných funkcionalít a ku každej prikladá jednoduchú ukážku, zoznam balíkov, ktoré sa dajú nahrahdiť a navyše aj opisuje situácie, kedy je stále lepšie ostať pri používaní NPM balíka.

Mnohé z týchto vecí sú v Node.js už celé roky, ale zvyk je železná košeľa, a tak často inštalujeme balíky k nejakej funkctionlite len preto, lebo sme to tak vždy robili.

Ja v blízkej budúcnosti skúsim z daného zoznamu použiť util.styleText() ako náhradu za chalk a util.parseArgs() namiesto commander. Naopak, zatiaľ ma neláka použiť node:test a node:assert, pretože vitest pokrýva oveľa viac situácií, ktoré potrebujem testovať.

Je tam aj niekoľko vecí, ktoré už používam pomerne bežne: fetch(), crypto.randomUUID(), fs.mkdir() a fs.rm().

Pokiaľ používate Node.js, prečítajte si článok a možno tiež nájdete niečo, k čomu ste doteraz inštalovali knižnice a pritom už nemusíte.

História často používaných čísiel portov​

Zamýšľali ste sa niekedy nad tým, prečo Next.js webserver počúva na porte 3000? Prečo je predvolený port pre Vite aplikáciu 5173 alebo pre Redis 6379? Pokiaľ nie a radi by ste sa to dozvedeli, tak si prečítajte nasledovný článok a niektoré otázky vám budú zodpovedané.

Programovanie hudby v JavaScript-e​

Už som si ako-tak zvykol na to, že viem programovať obrázky (SVG), že existujú projekty, v ktorých viem s pomocou JavaScript-u a React-u programovať video (Remotion). Ale programovanie hudby v JavaScript-e je pre mňa nové 🤯.

Narazil som na projekt Dittytoy. Je to platforma, pomocou ktorej môžete vytvárať hudbu programovaním. Jednoducho napíšete kus kódu, ktorý vygeneruje zvuk a browser ho prehrá pomocou Web Audio API.

Keď sa po rozhliadnete po stránke projektu, tak zistíte, že ľudia takto naprogramovali aj viacero známych hitov ("Take On Me", "All I Want for Christmas", "Für Elise", "Intergalactic").

Mimo témy​

Editor do terminálu od Microsoft-u​

Ešte v apríli tohto roku vydal Microsoft verziu 2 svojho jednoduchého editora použiteľného aj v termináli. Editor sa volá Edit a je multiplatformový (Windows, Linux, MacOs). Je zameraný síce na základné funkcie, ale s podporou zvýrazňovania syntaxe (o tom bola verzia 2.0) pre najrozšírenejšie jazyky a s klávesovými skratkami podobnými ako má VS Code.

Aktuálna verzia je stále vhodná skôr na príležitostné editovanie súborov, pokiaľt o z nejakého dôvodu musíte urobiť v termináli, bojíte sa editorov typu Vim/Neovim/Emacs a iné menšie kalibre na vás pôsobia divne a cudzo (Nano).

Ak však na projekte budú pracovať ďalej, tak čoskoro to kľudne môže byť dobrá voľba pre niekoho, kto pracuje vo VS Code, ale lákajú ho možnosti práce v termináli (ako napríklad tmux) a vyššie spomínané alternatívy nie sú pre neho.

Mimochodom, Edit je napísaný v jazyku Rust, o ktorom dnes už bola reč.

Let tak pre zábavu​

Programátori a nový projekt​

Nová služba a výber stacku

Zdroj obrázku: https://www.reddit.com/r/ProgrammerHumor/comments/1wuj6u9/ilovechoosingthestack/