Preuzeto sa bloga Džordža Stokera. Članak je u značajnoj meri lični, pomalo ostrašćen stav, ali nam se učinilo da smisleno prenosi važnu poentu o kojoj smo pisali u više navrata.
Preko glave su mi sve gluposti oko elitizma kada se govori o programskim jezicima. Kada sam lično mislio da je važno koji jezik se koristi, bio sam jednako loš kao i ostali ljudi koje danas vidim na internetu, ali kada vidim elitizam 2021. godine od ljudi koji su davno morali da nauče bolje, to me samo čini besnijim.
Ovaj tvit se našao na mom Twitter feed-u i zato što je nedelja, odgovoriću na njega, jer trenutno nemam ništa bolje da radim. Najmlađe dete drema, starija dva se igraju na Nintendo Switch-u, a supruga i ja smo ušuškani na kauču. Obično bih samo uzdahnuo i sačuvao svoje reči, ali danas ne. Danas ne.
Već sam pisao o pošasti UBM-a u našoj industriji, ali nažalost ta pošast nikuda ne ide. Ima duboke korene koje zajedničkim snagama moramo iščupati, kako ne bi uništila dobre delove naše industrije.
Jedan od takvih primera je elitizam izražen u gorenavedenom tvitu i u neprekidnom nazivanju softverskog programiranja „zanatstvom” i poistovećivanje dobrih programera sa „zanatlijom”, kao da softver postoji sam za sebe, a cilj je da bude čist. To je performativno zanatstvo i veoma se razlikuje od onoga što vidite od stvarnih zanatlija u njihovom polju. Uzmite Đira iz Điro sanja o sušiju, primer majstora ‘zanata’ pravljenja sušija. Điro se ne hvali da je najbolji u tome; ali svi ostali ga hvale. To je glavna razlika od UBM-a (i drugih) koji se samoidentifikuju kao zanatlije, jer Điro to ne radi. Ponizno uči i pokušava da se poboljša, i što je još važnije, trudi se da služi drugima. Ne šepuri se okolo sa znakom „Najveći majstor”, iako to verovatno jeste. Ako ste dobri u onome što radite i donosite vrednost drugima, dobićete odgovarajući nadimak.
Ovo performativno zanatstvo je hrpa gluposti kojima smo dali previše kredibiliteta. Čujem to iz „agilnih” podkastova, UBM-a i njemu sličnih, pa čak i inače uzdržani programeri izražavaju neku vrstu privrženosti tome da se ponose kodom kao neophodnom stavkom da biste bili programer. Kad god čujete podkast kako govori o „kvalitetu koda” ili o tome da ste „profesionalac”, čujete istu vrstu elitističkog stava prema razvoju softvera. Jedini ljudi koji moraju da proglase da su profesionalci su oni koji zapravo to nisu. To je još jedan primer ideje da ne možete sebe da ocenite svojim rečima, drugi vas ocenjuju na osnovu vaših postupaka.
Evo još jednog primera ove performativne kulture izrade softvera, a iskoristiću stolarstvo, jer sam odrastao u toj kulturi, stolari se ponose gotovim proizvodom i time što vide da se koristi taj završni proizvod. Nisu svi zaluđeni alatima koje koriste, niti vrednuju umetnost planiranja zbog nje same. Ne, to je uvek u funkciji krajnjeg cilja: proizvesti nešto u čemu će drugi čovek uživati.
Ili, drugačije rečeno, nikoga nije briga koji programski jezik koristite. Nikoga nije briga kakav je vaš okvir (framework) ili tehnološki stek. Mogu da garantujem, a da ni ne proverim da svaka pojedinačna kompanija iz Fortune 500 koristi Excel na načine koji bi potencijalno značili stotine miliona dolara gubitka ako bi došlo do greške. Da li mislite da osobu koja plaća VBA programere briga da li koriste VBA? Ne. Mislite li da programer jedva čeka da VBA zameni clojure-om? Ne, ako razume šta je u njegovom interesu.
Nameravao sam da napravim glupu analogiju sa programskim jezikom koji je poput čekića, ali to je previše pojednostavljeno. Svrha softvera definiše stek koji na kraju koristite i mnogo je više razloga od „ovo je lep jezik za upotrebu”. U stvari, kladio bih se da je lepota jezika verovatno najmanje važan deo izbora jezika. Samo pitajte sve koji su se kladili na coffeescript.
Ali mantra „treba da koristite jezik X jer je sjajan“ tu se ne zaustavlja. To je simptom većeg problema: Razmišljanje o programiranju kao vrednom samostalnog bavljenja i fokusirajući se na sam čin programiranja, zanemarujući kako će se taj softver koristiti.
Sa katama i kvizovima kodova skloni smo zaboravljanju da je programiranje samo za sebe mentalna masturbacija, korisna samo u najneaktivnijim okolnostima. Alati i okviri za pisanje koda pomažu samo ako imaju svrhu izvan našeg zadovoljstva. Programski jezik postoji za stavljanje softvera u ruke ljudi i za poboljšanje njihovog života. Ne postoji bez cilja samo da bi neko bio dobar u njemu, a sigurno ne postoji kao neka prepreka, kao način razdvajanja programera u društvene klase.
Elitistički kreteni koji kreiraju ove društvene klase to čine jer se zbog toga osećaju važnima. Stvorili su lestvicu i postavili se iznad te lestvice, dok bi ostali programeri trebalo da slede njihov primer ako žele da budu „zanatlije softvera” ili „profesionalci softvera”. To je prosto glupost. Ako sebe brendirate kao „clojure programera”, postoje doslovno samo dve grupe ljudi kojima će ovo biti od nekog značaja: drugi programeri koje želite da impresionirate ili regruti koji traže „clojure programera”. Recite da ste „clojure programer” svom supružniku ili porodici i videćete koliko malo ljude izvan naše industrije interesuje segmentacija jezika.
Nekada sam bio užasan u programiranju. Mislim, i dalje jesam, ali i nekada sam bio. Tako da shvatam da je dobar osećaj „biti dobar” u programiranju. Ali biti dobar u programiranju nije važno ako sa tim veštinama ne proizvodite vredan softver koji će ljudi koristiti.
Ako najdarovitiji pevač na svetu ne peva publici, da li je važno koliko je nadaren?
Dakle, želite da odaberete framework ili jezik? Sjajno. Poslednja osoba koju bi trebalo da slušate je UBM, a ne treba ni mene da slušate. Izaberite jezik i stek na osnovu potreba vašeg tima, na osnovu potreba vašeg preduzeća i tolerancije na rizik, i na osnovu toga koliko će lako biti lako proizvesti softver za ciljne korisnike na tom jeziku ili u tom frameworku. To su vaši kriterijumi. Ne ono što ja mislim, ne ono što misli UBM, a sigurno ne ono što je na trenutnom meniju na Hacker News-u.
A ukoliko osetite potrebu da govorite svima da treba da koriste taj određeni jezik, sačuvajte to za sebe. Nije nas briga.