Neuroróżnorodność w miejscu pracy
12.09.20233 min
Bulldogjob

Bulldogjob

Afera po wyrzuceniu TypeScriptu z projektu open-source

David Heinemeier Hansson, twórca Ruby on Rails, podjął decyzję o usunięciu TypeScript z kolejnej wersji Turbo. Nie spodobało się to społeczności, która stanęła w obronie TS oraz zaczęła podważać sposób podjęcia ważnej decyzji.

Afera po wyrzuceniu TypeScriptu z projektu open-source

Decyzja Davida Heinemeiera Hanssona, twórcy Ruby on Rails, o usunięciu TypeScript z nadchodzącej wersji 8 frameworka Turbo, nieźle wstrząsnęła społecznością programerską. W swoim oświadczeniu Hansson stwierdził, że nigdy nie był zwolennikiem TypeScript, co wywołało oburzenie wśród użytkowników Turbo.

Framework Turbo, który jest de facto sponsorowany przez firmę 37signals Hanssona, ma za zadanie dostarczanie stron HTML z minimalnym wykorzystaniem niestandardowego JavaScriptu. Jest silnikiem stojącym za Hotwire, który skupia się na dostarczaniu samego HTML zamiast danych w JSON-ie i kodu JavaScript.

Co do Ruby on Rails, choć nie jest jakoś szeroko używany, to jednak wykorzystywany jest komercyjnie  przez znaczące platformy, takie jak GitHub i Shopify.

Jednym z głównych zarzutów, które stawia społeczność, jest pochopność i brak konsultacji w tej sprawie. Jeden z użytkowników Turbo skomentował:

"Powrót do czystego JavaScriptu oznacza, że wiele pakietów z ekosystemu Hotwire się zepsuje. Wszystkie obecne otwarte pull requesty stają automatycznie przestarzałe. A niektóre z nich były naprawdę dobre. IDE przestaną podpowiadać kod."

Inny programista zwrócił uwagę na sposób wprowadzenia zmiany, mówiąc, że:

"Podjęcie tak istotnej decyzji w pośpiechu, pomijając wszystkie komentarze społeczności, budzi obawy. Czy taka praktyka będzie mieć zastosowanie w rozwoju Ruby on Rails? Czy decyzje będą podejmowane według kaprysu jednej osoby?"

Hansson, odpowiadając na krytykę, podkreślił, że decyzja była wynikiem jego osobistego podejścia do rozwoju oprogramowania. Dodał, że firma 37signals zdecydowała się na pisanie kodu klienta po stronie przeglądarki wyłącznie w czystym JavaScript i ta zmiana jest spójna z tą strategią.

We wpisie na swoim blogu DHH tłumaczył, że nie lubi TypeScriptu, bo szczególnie w przypadku rozwijania bibliotek, sporo kodu tworzy się, żeby zaspokoić kompilator TypeScriptu. Natomiast ten kod nie jest zupełnie potrzebny do prawidłowego jego działania w przeglądarce. Poza tym tworzenie dodatkowego kroku budowania, kiedy można go wyeliminować używając zwykłego JavaScriptu, jest zbędne.

TypeScript w innych repozytoriach

Są też inne projekty w świecie frontendu, które nie używają TypeScriptu.

Pierwszy z nich to htmx. Autor biblioteki tłumaczy swoją decyzję tym, że na tym etapie przy 3500 liniach kodu zysk z tego, że można uruchomić go bezpośrednio w przeglądarce jest większy niż, z tego, że ma typy.

Drugi, to Svelte, który stosunkowo niedawno pozbył się TypeScriptu na rzecz JS + JSDoc. Rich Harris, twórca Svelte, podobnie jak DHH, zauważył, że korzystanie z TS przy tworzeniu biblioteki tworzy spory narzut pracy. Natomiast jest zwolennikiem zachowania typów w kodzie, stąd wybrał JSDoc, który to umożliwia. Co ciekawe Rich bardzo mocno zareagował na ogłoszenie Davida na Twitterze (czy tam X):

usuwanie typów z własnego kodu jest praktyką godną klauna, to zachowanie epicko błędne, ale wszystko jedno - każdemu według własnego uznania. usuwanie typów z biblioteki KTÓREJ INNI LUDZIE MUSZĄ UŻYWAĆ, to po prostu wroga użytkownikowi gałganeria

To zdecydowanie kontrowersyjna decyzja, która podkreśla różnice w podejściach do tworzenia oprogramowania w społeczności programistycznej. TypeScript dorobił się wielu zwolenników, ale też przeciwników. Zobaczymy czy inne repozytoria pójdą za tym przykładem i usuną TypeScript ze swoich źródeł.

<p>Loading...</p>