Wpis z mikrobloga

Tak się zastanawiam po co zostało wprowadzone słowo kluczowe class w js. Ok, istnieje niewielki % przypadków kiedy możemy uznać tę konstrukcję za przydatną (głownie wewnętrzne procesy korzystają z nich). Dla większości jest całkowicie bez sensu. Szczególnie w tej formie która jest teraz czyli takie bieda klasy żeby wyglądało spoko, ot lukier składniowy.

W większości porządnych bibliotek które mamy dostępne w js nie powinniśmy się spotkać z potrzebą jawnego używania new (w tym domyślne moduły node.js, które to są dla mnie pewnym wyznacznikiem jakości). Tworzenie prototypów obiektów również powinno być sprawą wewnętrznej implementacji. Dla kogo więc są te klasy? Prawdę mówiąc nie wiem. Sam próbowałem upodabniać js do klasycznych, statycznie typowanych języków i prawdę mówiąc to niemal zawsze kończyło się przerostem formy i wrażeniem ciągłej walki z językiem (do tego prowadzi niestety dziedziczenie, javowcy coś o tym wiedzą ;)).

Trochę lektury na dziś:

https://medium.com/@dan_abramov/how-to-use-classes-and-sleep-at-night-9af8de78ccb4

#javascript
  • 4
@regis3: Wystarczy zmienić class na prototype i przestaje straszyć. Jest to zagranie pod wiecznie narzekających programistów c++, którzy próbują na siłę uzdrawiać JS wprowadzając różne formy klasycznego dziedziczenia bez zrozumienia jak działają prototypy. Moim zdaniem sprawi to tyle, że zamiast narzekać, że w JS nie ma klas - będzie narzekanie, że działanie klas JS nie jest kompatybilne z innymi językami.
Pobierz rezoner - @regis3: Wystarczy zmienić class na prototype i przestaje straszyć. Jest to...
źródło: comment_TRyGIO0EKemtz1mz2JXg5utT07LHUq3j.jpg
@rezoner: Właśnie o to mi chodzi. To tylko mała nakładka i jeden constraint (chyba tylko brak możliwości wywołania konstruktora bez new).

Jest to zagranie pod wiecznie narzekających programistów c++, którzy próbują na siłę uzdrawiać JS wprowadzając różne formy klasycznego dziedziczenia bez zrozumienia jak działają prototypy.


Nie wiedziałem, że mamy taką opinię :) W c++ coraz bardziej pisze się w sposób dynamiczny więc tym bardziej niezrozumiały jest dla mnie ten pociąg do
@rezoner:

Promises i generatory są super. Prowadzą do async await czyli asynchronicznego programowania w sposób synchroniczny. Używałem w c# i jest to trafiony pomysł.

Z modułami niby spoko ale nadal nie wiem czy już powinienem używać system.js (gołego albo razem z jspm) czy nadal browserify/webpack. Poza tym require jest synchroniczne więc teoretycznie to co robi babeljs dla node'a nie jest tym samym co require, które możemy wywołać z dowolnego miejsca w
Pobierz regis3 - @rezoner:

Promises i generatory są super. Prowadzą do async await czyli a...
źródło: comment_wpjH2rE4AF6xB4o7rhVSFtawXwiAjVvv.jpg