Blog.hr

Dobri i loši alati, a o programerima da i ne govorimo


Svako malo po forumima, newsima i komentarima blogova možemo sresti vatrene pobornike nekog operativnog sustava, programa ili programskog jezika ili alata. Interesantno je da to u pravilu nisu ljudi s iskustvom, već se uglavnom radi o početnicima ili naprednim početnicima koji nikada nisu radili na nekom većem projektu ili nisu održavali veći broj računala. Ja kolegama običavam reći da nema loših i dobrih alata već ima samo loših i dobrih programera. Pri tome nisam u potpunosti iskren, razlike među alatima itekako postoje, ali programeri su oni koji će ih iskoristiti na pravi način ili će 'silovanjem' dobrog alata, u svrhu za koju on nije predviđen, proizvesti smeće od programa.

Ne postoji univerzalni i najbolji programski jezik kojeg možete koristiti za sve namjene. Pusto teoretiziranje i dokazivanje superiornosti nečega na temelju specifikacija je jalov posao. Postoji barem nekoliko jezika koji su, po tom kriteriju, bolji od 'mainstream' jezika. Samo što imaju daleko manji broj korisnika, dostupnih biblioteka, a rezultirajući kod nije ni brz onako kako bi superiorna tehnologija trebala biti. U čemu je onda problem?

Većina 'vatreno svetih ratnika' precjenjuje važnost programskih jezika ili neke tehnologije, a zanemaruje cijeli proces projektiranja i pripreme projekta. Dobar projekt će i u 'lošijem' alatu u konačnici dati bolji proizvod od lošeg projekta izvedenog u 'najboljem od svih alata'. Ali to je teško objasniti onima koji misle da proces izrade nekog programa počinje onoga trenutka kad se pokrene razvojno okruženje i počne s unošenjem prvih redaka koda. Poneki bolji programer će izvući čak i lošije konstriran projekt na način da u hodu mijenja njegovu konstrukciju, ali pri tome je važno da on ima uvid u situaciju i da zna čemu bi program trebao služiti. Ali takvi su rijekti.

U velikom broju slučajeva 'sveti ratnici' dobro poznaju samo svoj alat, a netrpeljivost prema drugim alatima obično razvijaju zato jer ih ne poznaju dovoljno. Ili osjećaju, na bilo kojoj razini svijesti koja može utjecati na njihovo ponašanje, da ih konkurentski alat ugrožava. Neki žele dokazati i potencirati vlastitu vrijednost pa misle da će to učiniti tako da uzvise svoj alat, a ponize onaj drugi. Najviše sažaljevam one koji pate od sindroma 'Crvene zvezde'. Taj nogometni klub iz Beograda osvojio je najviše trofeja u bivšoj državi. Ziheraši, koji nisu mogli čekati četvrt stoljeća da njihov klub osvoji prvenstvo, počeli su navijati za Zvezdu jer je ona bila najuspješnija i svako malo prva. Takvi ziheraši odabiru one alate koji zauzimaju vodeće mjesto u svojem području jer navijanjem za njih liječe svoje frustracije.

Sveti ratovi obično nikamo ne vode. I Steve McConnell u svojoj knjizi 'Kod iznutra' u jednom trenutku kaže: Jedanaesta zapovijed: razdvoji softver i religiju..