sobota, sierpnia 14, 2010

Choroba technologiczna

Spring, Tapestry, EJB, jQuery, JavaServer Faces, Java FX, Hibernate.......

Niektórzy słysząc te i podobne nazwy wchodzą w stany podejrzanej ekscytacji ;-)
Co drugie ogłoszenie o pracy zawiera co najmniej 2-3 takie hasła. Najlepsze, że zawiera je prawie zawsze całkowicie niepotrzebnie :-)
Głośne używanie Hibernate polega zwykle na tym, że ktoś tam coś napisał, ale i tak większość kodu używa zwykłego SQLa.
A i tak Hibernate jest chyba jedną z niewielu z tych "technologii", które są używane.

Problem tylko z tym, że większość "ekspertów" "znających" te technologie nie rozumie jak działają wątki, albo ma poważne problemy ze zrozumieniem która część kodu wykonuje się na serwerze, a która u klienta, albo tego jak w ogóle ten HTTP działa.

Stąd kochają "biblioteki" i uzasadniają to tym, że "nie będziemy wymyślać ponownie koła" ;-)

Kiedyś na GoldenLine była dyskusja o okienkach modalnych w JavaScript. Z kontekstu wynikało, że chodzi o 1 może 2 takie okienka w całej aplikacji webowej.
Zaproponowałem by po prostu napisać to samemu, bo sprawa do trudnych nie należy, a daje dodatkowo kontrolę nad całym rozwiązaniem.
I od razu oberwało mi się od masy "ekspertów", że ktoś na pewno lepiej ten kod napisał niż ja, że po co znów wymyślać koło i podobnych........
Trochę im zmiękła rura jak zapytałem ile zajmie nauczenie się biblioteki tak by mieć nad nią taką kontrolę jak w przypadku gdy zrobi się to samemu i część przyznała, że rzeczywiście w sytuacji gdy zrobienie czegoś samemu zajmie 2 godziny, a nauka nowej biblioteki zabierze 2 dni to sprawa użycia biblioteki nie jest warta wysiłku.

Większość bibliotek i technologii ułatwia rzeczy proste, a skomplikowane czyni jeszcze bardziej skomplikowanymi. Tylko niewielka z nich część osiąga poziom na którym pomaga zawsze.
Akurat z tych, które wymieniłem na początku większość osiągnęła ten poziom, z tym zastrzeżeniem, że większość ich użytkowników nie osiągnęła tego poziomu :-)

Programista webowy, który boi się używać sniffera/proxy jest po prostu złym programistą. Tak samo taki, który gubi się w debugerze.

Trzeba rozumieć problem i narzędzia, bo bez tego nic dobrego nie powstanie.
Bez talentu i ciężkiej pracy związanej z malowaniem mając nawet najlepsze narzędzia graficzne nie zbliżę się nawet o milimetr do Picassa ;-)

Dlatego Google, które pyta o to jaka jest złożoność obliczeniowa operacji put w HashMap'ie w Java'ie nie pyta o głupie rzeczy, a właśnie o takie, które powinien znać człowiek twierdzący, że zna Java'ę (pesymistycznie jest to O(n), optymistycznie O(1)).

I to by było na tyle ;-)


Podobne postybeta
User Interface... jak ja tego nie lubię...
Code review - najfajniejszy kawałek procesu ;-)
Nazwy
Czemu od 30 godzin nie piję Coli - Eksperyment ;-)
Disconnect, Facebook, PayPal i wykop, czyli 1 plus i 3 minusy ;-)