Wpis z mikrobloga

Wydaje mi się, że #nodejs ma dwie głowne zalety:
- ten sam język ( #javascript ) na "froncie" i "backendzie"
- asynchroniczność, a co za tym idzie wydajność
Zastanawiam się nad przyszłością #nodejs. Owszem zyskuje on na popularności, ale nie wiem właściwie dlaczego. Przecież np. takie Pythonowe Tornado też całkiem nieźle sobie radzi z asynchronicznością, tak jak i Javowe Netty. Czy zaleta posiadania "full stack developers" i jednego "webowego" języka ogrywa aż tak wielką rolę?

Liczę na ciekawą dyskusje.
#programowanie
  • 59
  • Odpowiedz
@lukasz1985m: Zarzucasz niewiedzę, a czy Ty wiesz jak działa event loop? Twierdzisz, że wątki są lepsze podczas gdy oba rozwiązania stosuje się do innych rzeczy. Przy wielu operacjach IO czy przez sieć stosowanie wątków zamiast EL jest błędęm i marnowaniem zasobów komputera. Wbrew temu co uważasz wątki też "ważą".
  • Odpowiedz
Nie. JS nasuwa chore wzorce pisania kodu, co powoduje to, że kod wygląda jak kupa gówna z milionami zagnieżdżeń. Sama prototypowa implementacja programowania obiektowego w tym języku jest pokaleczona.


@lukasz1985m: po pierwsze to nie JS narzuca jakiekolwiek wzorce pisania kodu ale jakies frameworki ktore w JS sa kompletnie niepotrzebne. Po drugie to z prototypowej funkcjonalnosci mozesz ale nie musisz korzystac.

JS jest przed innymi jezykami wlasnie dlatego, ze nie narzuca
  • Odpowiedz
Natomiast w meritum: wystarczy troche wyobraźni i doświadczenia w innych językach, żeby zrozumieć, że cały eventloop w JS zastępuje wątki. W zasadzie cały eventloop to koncepcja zaczerpnięta bezpośrednio z systemów operacyjnych, gdzie jądro działa w pętli i rozdziela czas procesora pomiędzy procesy, różnica jest jedynie taka, że eventloop w rzeczywistości jest całkowicie synchroniczny, natomiast procesy i wątki wymagają ręcznej synchronizacji. Stąd prosty wniosek, że eventloop to właściwie powtórne wynalezienie koła - wątków. Koniec dyskusji.


@lukasz1985m: Pierwszy twoj tekst ktory tlumaczy twoj sposob patrzenia na JS. Sam pisalem w assemblerze i wlasciwie od tego zaczynalem i od pisania crackow w win95. Tez wiem jak dzialaja systemy operacyjne i ich "event loopy" i wiesz co ci powiem? W JS jest to super wlasnie z tego wzgledu ze to programista ma mozliwosc zarzadzania tym. To programista jest panem i wladca swojego srodowiska dostarczonego przez przykladowo V8 ktore zostalo uruchomione przez jego plik. Nie widze tez tutaj nawet powiazania miedzy watkami a event loopem. Osoby ktore mowia ze EL jest namiastka wielowatkowosci albo ze nalezy traktowac go jako wlasnie odpowiednik threadingu sa w wielkim bledzie. Wyjasnie ci dlaczego:

EL powstal dlatego, poniewaz ludzie uzywali watkow do tak prozaicznych rzeczy jak obsluga zdarzen w swoich aplikacjach. Zamiast watkow duzo lepiej jest stosowac SYNCHRONICZNOSC o ktora tak macno walczysz. Synchronicznosc jest szybsza od wielowatkowosci ale jej problemem jest wykonywanie akcji po kolei. EL daje ci synchronicznosc + mozliwosc korzystania z eventow. Nie bez powodu systemy operacyjne sa wlasnie w taki sposob
  • Odpowiedz
Za przeproszeniem - co Ty #!$%@??.. Jako, że stwierdziłeś, że programowałeś w ASM, uznam, że po prostu się nie wyspałeś i bredzisz.


@lukasz1985m: moze zle sie wyrazilem. Dla mnie synchronicznosc jest rownowazna z proceduralnoscia. Asynchronicznosc jednak moze byc wielo jak i jednowatkowa.

Zgadza się ale to nie powinno nigdy być wbudowaną funkcją jakiegokolwiek
  • Odpowiedz