Dupkowatość

Oryginalny post: Douchebaggery

Autor: Jeff Atwood

David Heinemeier Hansson ma problem z systemem Windows jako platformą do programowania.

O ile naturalnie potrafię zrozumieć powody, dla których niektórzy wybierają Linuxa, to w ogóle nie potrafię zrozumieć programistów, którzy świadomie wybierają Windowsa jako swoją platformę. Znam kilku, którzy ciągle tkwią w rutynie z różnych powodów — żaden z nich tego nie pragnie.

Miałbym trudność w wyobrażeniu sobie, iż zatrudniam do 37signals kogoś, kto tkwi na platformie Windows. Jeśli wystarczająco nie dbasz o to, aby wykorzystywać najlepsze narzędzia, udowodnienie postawionej przez Ciebie tezy staje się o wiele trudniejsze.

Tak więc jeśli jeszcze się nie przekonwertowałeś, przestań prokrastynować. Przebolej to. Jeśli pragniesz pracować dla coraz bardziej znaczących firm, które budują swój biznes w oparciu o technologie open source'owe, to nie chcesz ciągnąć za sobą takiego piętna w życiorysie. Bycie tym, który przekonwertował się w 2005 roku jest wystarczająco złe.

Mocna inwektywa, ale taki jest styla David'a. Aby być uczciwym, jego najważniejszy argument — że jeśli cenisz sobie programowanie aplikacji open source'owych, to będziesz używał platformy przyjaznej oprogramowaniu open source'owemu — jest dość przekonujący, choć oczekiwałbym, iż zatwardziali kolesie od OSS będą chcieli Wolności 0 zarówno w swoich systemach operacyjnych jak i w oprogramowaniu, które tworzą. Jeśli miałbym aż tak silne przekonania co do OSS, to szczerze powiedziawszy postrzegałbym ludzi tkwiących na platformie OS X z lekkim podejrzeniem.

Ale czy konieczne jest takie uogólnianie? Sugerować, że programiści używający Windows'a "nie dbają dostatecznie o to, aby używać najlepszych narzędzi"? Po tysiącach religinych wojen, w których uczestniczyłem, uodporniłem się na krytykę, więc ta nie porusza mnie za bardzo. Nie zgodzę się z problemem David'a, ponieważ jeśli chodzi o komputery i systemy operacyjne, to nie ma czegoś takiego jak "najlepszy". Moja opinia jest taka, że wszystkie są beznadziejne. Oczywiście, są pewne kompromisy, zalety i wady, mocne i słabe punkty. Ale obiektywnie najlepszy? Wszystko jest względne.

Zanim wszyscy naskoczycie na David'a, przeczytajcie jego wpisy kontynuujące myśl (pierwszy, drugi) na grupach dyskusyjnych Ruby, które tłumaczą jego stanowisko w bardziej spójny i mniej burzący sposób. Argument za tym, że 37signals nie zatrudniłoby programisty operującego na systemie Windows ma tyle wspólnego z kulturą, co nic innego. To tak, jakby pokazać się na przesłuchaniu w sprawie pracy w firmie Coca-Cola siorbiąc sobie Pepsi. Na nieszczęście, David poczuł potrzebę przeobrażenia tego wymagania w kwestię gustu. Ogłosił, iż Coca-Cola jest moralnie i estetycznie lepszym wyborem, aniżeli zwykłą preferencją na konkretny rodzaj słodzonego napoju, którym tak naprawdę jest.

Ten wpis został napisany w marcu 2005 roku, ale David wyraził te same uczucia we fragmencie z i-Technology Predictions for 2007.

Apple będzie beształo każdego za jego preferowaną platformę. Piętno bycia programistą webowym używającym platformy Windows będzie narastać.

To jest to, czego nie rozumiem w tego typu stwierdzeniach. Mają zupełnie odwrotny skutek, niż ten zakładany przez mówcę. Są dwie możliwe reakcje:

  1. Wow, David ma rację. Dokonałem złego wyboru w mojej karierze. Najwyższy czas, aby przyjrzeć się platformie OS X oraz programowaniu w Rails. To brzmi świetnie!
  2. P****************ol się.

Zgadnij, która reakcja jest bardziej powszechna? W zasadzie, to nie trzeba zgadywać jako, iż zapewniam Cię, że każdy programista platformy Windows, który to czyta, myśli teraz o punkcie #2. Jako ewangelista chcący zwiększyć popularność swojej platformy, używa wybitnie kiepskiej strategii. Czy przymuszanie ludzi do tego, aby się z Tobą zgodzili kiedykolwiek skutkowało?

Oczywiście, tak jak David mówił wiele, wiele razy, nie obchodzi go, czy się z nim zgadzamy czy nie. Cóż, może nie w tylu słowach, ale rozumiesz przesłankę:

David Hainemeier Hansson: Fuck You

Prawdę mówiąc doceniam to uczucie, ponieważ widziałem zbyt wielu ludzi, którzy dali się pochłonąć przez to, że inni ludzie myśleli o nich, że nie potrafią potwierdzić swojej początkowej opinii na temat czegokolwiek. Ale jeśli zaakceptujesz przesłankę, że takie stwierdzenie nie jest w stanie zmienić niczyjego zdania i ostatecznie jest nieefektywne — a nawet przynoszące efekt odwrotny do zamierzonego — z czym pozostajemy? Jaką intencję niesie za sobą wyrażenie "piętno bycia programistą na platformę Windows"? Mnie przychodzi do głowy tylko jedna: mówienie o innych źle sprawia Davidowi przyjemność.

A to, czyni z niego pewnego rodzaju dupka.

Co również oznacza, że jeśli używasz Rails'ów oraz OS X, to używasz platformy z wyboru dla dupków.

Samurai Shodown 2 character select screen

Byłem kiedyś zapalonym graczem Samurai Shodown II. Grałem jako Earthquake, niesamowicie gruby, niesamowicie teksański ninja. Stałem się tak dobry w graniu postacią Earthquake, że byłem w stanie pokonać każdego, kto przybył na Colorado arcade do Boulder, gdzie często bywałem. Przyczyniło się to do komentarza jednego sfrustrowanego gracza:

Jesteś do kitu! Dokopujesz nam za pomocą najgorszej postaci w grze!

W rzeczy samej. Nie ma nic bardziej satysfakcjonującego, niż skopanie komuś tyłka za pomocą najgorszej postaci w grze. Po jakimś czasie grania w tę nadzwyczaj zbalansowaną bijatykę, uzmysłowiłem sobie, iż każda możliwa postać ma swoje wady i zalety. Opanowanie gry oznacza zrozumienie postaci oraz maksymalizowanie działania swoich mocy przy jednoczesnym wykorzystywaniu słabości przeciwnika. Jeśli byłeś wystarczająco mądry i cierpliwy, mógłbyś pokonać dowolną postać za pomocą każdej innej. To była umiejętność.

Nie trać czasu na kłótnię o ekranie wyboru postaci. Wyniki mówią wyraźnie. Pokaż światu, co potrafisz w wybranym przez siebie środowisku programistycznym.

Data publikacji oryginału: 26 lutego, 2008

11 komentarze:

dpc.ucore.info pisze...

Jeżeli ktoś używa Windowsa jako ,,platformy z wyboru'' to spoko, ale w praktyce wygląda to tak, że jak ktoś jest developerem ze świata Windows to jest z nim z defaultu, bo mu się nie chciało przesiadać albo nawet sprawdzić inne możliwości (i lubi pograć). Dopóki życie (praca zawodowa) nie zmusi go do tego, to często nie potrafi skompilować programu bez pomocy IDE, nie rozumie pojęcia przenośności na inne architektury i OSy, a często nawet nie rozumie czymś się różni stdout od stderr.

Gdybym miał zatrudnić programistę to fakt używania Windowsa uznałbym za podejrzany i dodatkowo prześwietliłbym wiedzę i doświadczenie kandydata. Dyskryminacja? Może.

bb.bartosz pisze...

czy developerzy symbiana tez mają uzywac linuxa?
I developerzy aplikacji desktopowych w .NET?
Developerzy Microsoft SQL servera?

Ktoś powie mi jaką rożnicę zrobi wybór Windows/Linux developerom Javy (piszącym w Eclipse albo Netbeans)?

Ktoś tu chyba zapomniał, że świat nie kończy się na C/C++.

Anonimowy pisze...

Ja pisałem kod i pod linuxem i pod windowsem - w zależności od tego gdzie było szybciej go uruchomić i sprawdzić. Teraz firma wymaga używania kilku narzędzi które są tylko pod windows więc piszę w windows. Niektórzy nadal piszą pod linuxem i stawiają viruala z windowsem żeby im te narzędzia działały choć często mają z nimi problemy przez to że są na virtualce. Dla mnie to bez znaczenia - po prostu dla wygody wolę mieć jeden system. I tak używam Eclipse, jbossa i javy - system nie ma większego znaczenia.

eRIZ pisze...

Ja nie rozumiem jednego - dlaczego koder korzystający z Windows jest od razu mieszany z błotem.

To, że ktoś wybiera okienka, to nie znaczy, że nie potrafi się poruszać w środowisku uniksowym; ba - jest zmuszony do nauczenia się wykorzystywania obu platform do pracy, ale o tym się nie mówi, bo M$ jest "zue", be i w ogóle, najczęściej nie podpierając się argumentami.

Ja do pracy używam Windows z WYBORU - jest po prostu dla mnie wygodniejszy.

"Nie trać czasu na kłótnię o ekranie wyboru postaci. Wyniki mówią wyraźnie. Pokaż światu, co potrafisz w wybranym przez siebie środowisku programistycznym."

Otóż to... Dla mnie śmieszne byłoby wybranie na rekrutacji kogoś z podstawową znakomością wymaganego języka, ale pracującego pod Uniksem zamiast wymiatacza wolącego Windows.

Mamy przecież wolność wyboru. ;) Dlaczego - więc - narzucać komuś coś, co - de facto - nie wpływa na wytwarzane dzieła?

Chciałbym, aby inni, którzy nadal twierdzą, że koder-szklarz, to koder drugiej kategorii zmienili postawę na tolerancyjną, jak autor tego wpisu. Dzięki :)

Tomasz Kowalczyk pisze...

Ech, więcej takich ewangelistów jak Atwood, a świat będzie lepszy. Nie zmienia to jednak faktu, że kiedyś trzeba tą Windozę rzucić i przesiąść się na coś lepszego. ;]

10000mirrors pisze...

Gdyby odwrócić sytuację, gdzie 98% rynku ma jakaś dystrybucja Linuksa, ludzie psioczyli by na tą grupę użytkowników. Osobiście uważam takie spory za kompletną bzdurę i zgadzam się z eRIZ. Jakieś 4 lata temu postanowiłem, że nauczę się .NETa, obecnie pracuję jako programista w tej technologii i nie żałuję dokonanego wyboru. W tak zwanym między czasie miałem styczność z Rubym i Perlem pod Linuksem i z całą stanowczością muszę stwierdzić, że nie dorastają one do pięt językom zarządzanym takim jak JAVA czy C#.

Od razu zaznaczam, że nie twierdzę, że Windows jest naj i nic poza nim nie istnieje, ale za to czytanie wywodów takich frustratów jak wspomniany David daje niezłą frajdę.

khalas pisze...

Nie mam nic do koderów pracujących pod Windowsem. Co więcej - denerwuje mnie tematyka taka jak porównywania OS'ow, ich użytkowników, ewangelizacja OS'owa etc. Wkurzają mnie ludzie krzyczący, ten OS jest lepszy od tego drugiego, bo bla bla bla... Przecież sprawa jest czysto techniczna i trzeba porozmawiać o niej w profesjonalny sposób.

Nie kryje się z tym, że jestem użytkownikiem Linuxa. Mam proste pytanie do użytkowników Windowsa - czy nie sądzicie, że informatyka używającego Windowsa można porównać do mechanika samochodowego, który nie może zajrzeć pod maskę swojego samochodu? Czy w charakter każdego informatyka nie jest wpisana chęć dogłębnego poznania mechanizmów działających w jego otoczeniu? Pytam z czystej ciekawości - nie chce wszczynać jakiegoś flame war. Bardziej zależy mi na odpowiedziach "Nie masz racji, bo ...", niż "Tak, zgadzam się z tobą".

Na zakończenie - zgadzam się w pełni z stwierdzeniem które padło w poście. Wszystkie systemy są beznadziejne - albo trochę lżej - wszystkie system mają wady.

Anonimowy pisze...

khalas=> Jako student informatyki, a nie programista, mogę Ci odpowiedzieć w prosty sposób-nie masz racji, bo nie każdy jest zainteresowany tym, co siedzi pod maską. Są kierowcy wyścigowi jak Kubica, którzy świetnie orientują się w mechanice samochodowej i w tym, jak to wszystko działa. I są inni, którzy po prostu bardzo szybko jeżdżą. Jeśli chcę coś zaprogramować, to pasjonuje mnie jak zrobić to najprościej, jakie algorytmy zastosować, jakich narzędzi użyć, a nie jak skonfigurować system. I szczerze mówiąc, z tego co widzę wokół siebie, większość studentów nie lubi Linuxa. Bo wymaga. Bo trzeba się uczyć rzeczy, które pod Windowsem są oczywiste i robią się same. A po co mają to robić, skoro nie czują takiej potrzeby? Jeśli życie będzie ode mnie wymagać pracy pod Linuxem, nauczę się go. Póki co z przyjemnością używam Visual Studio z jego świetnym helpem i nie czuję takiej potrzeby.

Andrew pisze...

Ja będąc studentem informatyki poznałem wiele języków ale wybór padł na C#. Moim zdaniem nie ma lepszego IDE od Visual Studio. We własnym zakresie działam tylko na VS. Na zajęciach ostatnio klepiemy kod w Javie pod Debianem w Eclipse. I co z tego? Też to ogarniam. W życiu trzeba się dopasować do zaistniałej sytuacji. To czy będę musiał pisać w C++/C#/Javie/php/etc nie robi mi różnicy bo programowanie to programowanie. Liczą się tylko warunki w których się pracuje. Darmowe narzędzia nie stwarzają mi odpowiednich warunków, żebym chętnie w nich pracował.

Krystian pisze...

Sugestia dla tłumacza: "na przesłuchaniu w sprawie pracy" zamieniłbym na "na rozmowie kwalifikacyjnej". Podejrzewam, że to wynika z przetłumaczenia job interview.

Anonimowy pisze...

@khalas

Uśmiałem się z Twojego pytania.

Odpowiem w ten sposób: 99,99% mechaników na rynku nie tworzy części samochodowych, tylko kupuje je od innych firm i montuje w samochodzie. Tak samo rynek IT nie potrzebuje "informatyków", którzy co noc rekompilują w swoje jądro ;).

Mówienie o Windowsie jako jakieś upośledzonej platformie jest po prostu zabawne dla kogoś kto tę platformę zna trochę lepiej.

Stosowanie kryterium wyboru narzędzi pracy typu: Windows = obciach, Linux = super jest zwyczajnie infantylne. W życiu wybiera się te narzędzia, których wymaga biznes, czyli te bardziej opłacalne w praktyce. A z wieloletniego doświadczenia w branży IT mogę powiedzieć, że często wybór Windowsa jest często (chodź nie zawsze) bardziej opłacalny.

Prześlij komentarz

Related Posts with Thumbnails