Node.js to jednak religia? Czyli coś o tym, jak można się zaplątać w pętle zdarzeń
Kilka dni temu mieliśmy okazję donosić Wam o poczynaniach znanego webdewelopera Teda Dziuby, który dobrał się do skóry miłośnikom jednej z najmodniejszych ostatnio technologii internetowych – frameworka Node.js, a szczególnie jednemu z nich – Ryanowi Dahlowi, narzekającemu na skomplikowanie współczesnego oprogramowania. Stwierdzenie Dziuby, że Node.js jest „rakiem niszczącym mózgi programistów” wywołało zamierzony efekt (successful troll is successful) – na łamach forów dyskusyjnych, serwisów social newsowych i mikroblogów przerzucano się komentarzami, często odsądzającymi Dziubę od czci, wiary i umiejętności programistycznych. To ostatnie dlatego, że programista pokusił się w swoim benchmarku o wykorzystanie najgorszego chyba sposobu na generowanie ciągu Fibonacciego, jaki w życiu widzieliśmy. Czy naprawdę powinniście więc trzymać się z dala od Node.js?
Dziuba jest znany ze skutecznego trollowania (jak np. gdy sponiewierał fanów rozwiązań NoSQL), ale czy tym razem, ze swoim przykładem z Fibonaccim, nie okazał się ignorantem, jak twierdzą jego oponenci? Najwyraźniej nie. Na łamach swojego bloga pisze wyraźnie, że wybór tak nieefektywnego algorytmu do testów był celowy. „Potrzebowałem funkcji, która zużyje moc procesora, wybrałem tę, ponieważ jest mi znana i łatwa do zaimplementowania” – sensownie wyjaśnia programista eBaya.
Reakcje na upośledzony algorytm wyliczania ciągu Fibonacciego były bowiem przezabawne. Niektórzy wzięli się za implementowanie go w innych językach i mierzenie, jak szybko maszyny wirtualne zoptymalizują kiepski kod. Faktycznie, V8, na którym bazuje Node.js, nieźle sobie z tym radzi, w porównaniu np. do interpreterów Pythona czy Rubiego. Super! Inni na reddicie zachwycali się możliwością zaimplementowania rozwiązania na wyliczanie tych liczb w sposób nie blokujący serwera, „przez funkcję nextTick, pozwalającą na zaplanowanie uruchomienia nowej funkcji w kolejnej iteracji pętli zdarzeń”, a nawet „wyliczanie każdej iteracji dla każdego wywołania I/O czynionego przez node.js”. Dziuba pytał w swoim pierwszym tekście „czy przyjąłeś już epoll do swojego serca?” – i faktycznie, pomysły, jakimi fani Node.js się przerzucali, przypominają mocno reakcje amerykańskich protestantów odrzucających teorię ewolucji, a próbujących ateistom-scientystom wyjaśnić złożoność świata przyrody za pomocą „Inteligentnego Projektu”.
Inny fan node.js stworzył stronę na GitHubie dla tej techniki, dodając dodatkową optymalizację dla pamięci. Teraz rozwijając każdą iterację funkcji Fibonacciego do działania w pętli zdarzeń, do bufora wprowadzany jest n-ty wynik. Brakuje tylko jeszcze Cassandy lub MongoDB, by to wszystko zapisać.
Więcej zabawnych reakcji podaje Tony Arcieri w swoim blogu, pokazując, że Dziuba strollował całą społeczność Node.js wręcz celująco. Pisze, że teraz fanom tej technologii pozostaje zbudować system, któr będzie wykorzystywał Socket.IO, który buforować będzie poprzednio obliczone liczby Fibonacciego po stronie klienta za pomocą rozproszonej tablicy mieszającej, a potem na tej podstawie uruchomi się wartą miliony usługę w chmurze do wyliczania ciągu Fibonacciego. Czy nie za dużo złośliwości?
«poprzednia 1 2 następna »
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
19
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Z okazji wypuszczenia akcji Facebooka przypomnijmy sobie, kim jest Zuckerberg
10
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Co czeka programistów po czterdziestce?
27
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Społeczność
m_gol @_Igancio:
Chyba pomyliłeś gazetę z natemat.pl...
m_gol Niestety na razie nie wszędzie Flasha da się zastąpić, nawet w takich...
stop_gupota "Fanatyczny" Diablo 3 jest dopiero od 10 dni.
Mas Ciekawa informacja, ale akurat projekt wytopu stali przez chłopów to był...
_Igancio Poziom artykułu jest bardzo niski ! Niczego się nie dowiedziałem , wygląda...
voluu A ja mam problem. MIanowicie, po dodaniu kodu z tego poradnika miniaturki...
Sebek Pozycjonowanie stron za pośrednictwem firm oferujących
swoje usługi nie...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 wujek 2011-10-05 12:55:15 0
IP: 83.8.6.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.187 Safari/535.1
#2 Wszerad 2011-10-05 13:05:51 0
IP: 213.17.128.[...] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0a1) Gecko/20111002 Firefox/10.0a1
#3 none.je 2011-10-05 13:08:15 0
IP: 95.143.242.[...] Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.15 Safari/535.2
#4 ArturL 2011-10-05 13:49:40 0
IP: 95.40.58.[...] Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
#5 slepiec 2011-10-05 18:25:00 0
IP: 82.146.243.[...] Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.15 Safari/535.2
#6 wujekbogdan 2011-10-05 19:52:49 0
IP: 89.68.6.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.187 Safari/535.1
#7 wujekbogdan 2011-10-05 21:31:02 0
IP: 194.42.110.[...] Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
#8 slawek22 2011-10-05 22:35:34 0
IP: 83.27.73.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1
#9 slawek22 2011-10-05 22:41:13 0
IP: 83.27.73.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1
#10 rzs 2011-10-07 00:53:07 0
IP: 87.206.35.[...] Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.899.0 Safari/535.6
#11 walec51 2011-10-10 02:49:31 0
IP: 83.23.252.[...] Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1