Moderní trendy v PHP programování – úvaha

Dá se v PHP programovat a má ještě v době různých frameworků tvorba v PHP něco společného s programováním? K napsání této úvahy mě přivedla aktuální situace na poli programování PHP ( a tvorby webových stránek obecně) a nových trendů v této oblasti. Programování se věnuji několik let, s většími nebo menšími přestávkami asi tak 25, což mi snad, jak doufám, opravňuje k vyjádření svého názoru. Za tu dobu jsem používal několik programovacích jazyků od assembleru přes Basic, Pascal, VB, C++, C# a skriptovacích jazyků VBS, JS a PHP a další. A právě u posledně jmenovaného bych se rád zastavil, protože v posledních několika letech se intenzivněji věnuji programování právě v jazyce PHP.

Asi nikdo by se neodvážil tvrdit, že PHP je nějak přehledný programovací (tedy spíše skriptovací) jazyk. Definice typu proměnných a další nezbytné drobnosti vyžadované klasickými programovacími jazyky, které mi kdysi připadaly jako otravné a zbytečné, mi pomalu začínají chybět. Ne proto, že bych je v PHP potřeboval, ale spíše proto že mám pocit, že mnoho programátorů zkrátka bez takových pravidel nemůže žít. Jak si jinak vysvětlit, že se v posledních letech objevilo tolik guruů kolem PHP (a že jich je požehnaně), kteří se snaží vymyslet nějaká vlastní pravidla a samozřejmě, každý svá vlastní (upozorňuji, že tohle rozhodně není narážka na Jakuba Vránu a jeho stránka PHPguru, kterého považuji za skvělého programátora, jakkoli se i v tomhle mohu mýlit J). Také se čím dál častěji setkávám s různými návody, doporučeními, články a v neposlední řadě i nabídkami různých školení (a ne zrovna nejlevnějších) kde se mne někdo snaží naučit „správně programovat“. Maně si vzpomínám, že v dobách kdy začínalo objektové programování, které mimochodem dnes již považuji za geniální koncept, k němu celá řada programátorů přistupovala se skepsí a dokonce i s posměchem. Ale prosadilo se a dnes už si bez něj asi nikdo nedokáže představit naprogramovat větší projekt.

Objektové programování s jeho zapouzdřením tříd a dědičností se stalo velmi silným nástrojem a vedlo k mnohem vyšší efektivitě a produktivitě práce programátorů. V neposlední řadě lze díky němu velmi efektivně sdílet a využívat kód vytvořený jiným programátorem. Kdo by se chtěl taky psát s mnoha stovkami, nebo tisíci řádků vlastního kódu, když může jednoduše podědit již hotovou a odladěnou třídu, přepsat pár metod a, voilà, za zlomek času máme skvěle fungující program.

Bohužel však každá mince má dvě strany a nebyl by to člověk, který by z přednosti neudělal nějaký nedostatek. Díky svobodě internetu, open source licencím a dalším veskrze vynikajícím a užitečným věcem se postupně k programátorům dostaly miliardy volně šířeného kódu, který neslibuje nic méně, než ušetření spousty práce zvýšení efektivity a osvobození od úmorné práce s psaním vlastního kódu.

No, možná pro někoho je psaní vlastního kódu úmorná práce, pro mě osobně bylo ještě donedávna programování spíše zábavou. Já naopak za úmorné považuji spíše pročítání horších či lepších manuálů, návodů, pokynů, changelogů a diskuzí na fórech za účelem vyhledání odpovědi na zcela zásadní otázku „Proč metoda xy() ve třídě Qx ve verzi 1.2.5 (na kterou jsem přešel z důvodu opravené chyby metody qrs() verze 1.2.4) se chová jinak než ve verzi 1.2.4.“. Většinou se mi dostane od kolegů zkušených programátorů odpovědi typu že jsem lama, protože verze 1.2.4 byla jen přechodná a vývojová neměla by se vůbec používat, zatímco verze 1.2.5 je mnohem lepší a super stabilní … .

Osobně nemám nic proti sdílení nebo používání dobrého cizího kódu, mám spíše problém jak oddělit dobrý kód od špatného. Veškeré informace o jeho funkčnosti totiž pochází pouze od jeho autora, nebo autorů (i třeba velké loajální skupiny při komunitním vývoji) kteří , v dnešní velké konkurenci pochopitelně prosazují vlastní kód a tak případně chyby, pokud o nich vědí, v lepším případě bagatelizují ale většinou nezmiňují. Navíc vzhledem k velkému množství nástrojů s podobnou funkcí se k nim na internetu zřídka vyjadřují programátoři mimo tyto komunity. Pokud bych si měl být jistý, musel bych kód projít řádek po řádku a navíc doufat, že mi nic neunikne a to má podle mne k efektivitě dost daleko.

Smutnou pravdou je, že program jako celek bude vždy jen tak dobrý, jak dobrá je jeho nejslabší část a pokud se můj program spoléhá z větší části na kód nad kterým nemám kontrolu a který se může měnit při každém updatu, tak z toho mám lehké mrazení v zádech. I když rozumím tomu, že spoustu programátorů to naopak nechává ledově chladnými. Ale co s tím mám dělat já, asi si vzít prášek na uklidnění a spolehnout se na to že komunita lidí které neznám dohlédne na to, že to bude fungovat?

Heuréka, konečně řešení (takhle to bývá v reklamách). Vždyť já se vlastně můžu přidat k vývojářské komunitě, mám přece přístup ke zdrojovému kódu který je v repozitáři na internetu. Takže se můžu zapojit a přispět (svými hotfixy) k dalšímu zlepšení už tak skvělých open source (společné) projektů a podílet se tak na společné práci pro ještě lepší budoucnost (projektů). No už jsem přeci jen starší a chodil jsem do pionýra tak mi to něco připomíná J. Když pominu problém podílet se na vývoji několika rozsáhlých projektů současně a ještě se nějak uživit, tak co si počnu, když časem zjistím nějaké zásadní neřešitelné nedostatky? Mám po roce nebo i více letech, kdy se do detailu seznámím s projektem hledat nějaký nový a doufat, že bude lepší ? Mám všechny dosud vytvořené projekty jehož součástí je uvedený kód přepsat pro jiný s dost možná stejným výsledkem? Někdo to možná jednou udělá, ale podruhé nebo potřetí? Asi ne, pravděpodobně udělám to co všichni ostatní v komunitě, přesvědčím se, že vlastně tak jak to je, je to správně, nebudu remcat, zařadím se. Přesvědčím se také proto, že bych si připadal jako hlupák, že jsem na to nepřišel včas, navíc přeci neopustím něco, čemu jsem už věnoval tolik času a úsilí a navíc, ono se to určitě časem zlepší, když budeme všichni táhnout za jeden provaz, držet krok a mít před sebou cíl (ach zase ta nostalgie J).

S psaním programu je to jako s vínem. Dobré víno chutná a nebolí z něj hlava. Dobrý program funguje a … no, taky z něj nebolí hlava. U vína mi záleží především na chuti a nezáleží mi příliš na tom jaká je to odrůda, ročník, vinice, svah. Někomu ano, myslím, že je to pozér, který dává přednost formě před obsahem. U programu mi záleží na tom, jak funguje, ne jaké prostředky jsou použity k jeho vytvoření a jak zvučné jméno přidám za poznámku created by. Někomu ano, cop si o tom myslím viz. výše. Mnozí jistě namítnou, že se alespoň něco naučím (například „psát program správně“). Když pominu, že já správnost měřím funkčností, rád bych věděl, kdo určuje co je „správně napsané“. Aha, jsem to ale hlupák, přeci ten kdo navrhl koncepci toho kterého nástroje, protože jinak by můj program nebyl kompatibilní. No uvážení nechám na vás. Mě jen občas zamrzí, když vidím nadějné programátory jak nekriticky přebírají myšlenky takových „vizionářů“ a místo aby se učili z jejich chyb, učí se jejich chyby opakovat.

Žijeme v rychlé době a všechno chceme mít rychle … i programy. Tím se měří efektivita a podle toho taky vyděláváme a o to přeci jde až v první řadě. Co by tedy mohlo být úžasnějšího, než když nám někdo nabídne, že s pomocí jeho balíčku nástrojů budeme vytvářet projekty rychleji efektivněji a spolehlivěji. Zabírá to u zubní pasty, pracího prášku i intimních potřeb pro ženy, tak proč ne u nástrojů pro programátory. Mám-li dostatečně velkou klaku (rozuměj skupinu podporovatelů, vývojovou komunitu, uživatelů apod.), pak se o jeho „kvalitách“ dozví spousta programátorů, manažerů, ředitelů, kodérů a uklízeček a protože člověk je tvor stádní a rád sdílí různé hodnoty, budeme všichni jedna velká rodina používající třídu Qx (snad jste na ni nezapomněli, je to skrytá reklama). Takže vlastně ani nezáleží na tom, jak moc je nebo není dobrá, nám stačí, my všichni kdo ji používáme, jsme spokojení. Budeme společně chodit do hospody, grilovat a utrácet za školení jak používat třídu Qx, která je, jak skvělé, úplně zadarmo. Proto jí také leccos odpustíme, budeme se navzájem přesvědčovat, jak skvěle se nám s ní pracuje a budeme šťastní, spokojení a … tlustí?

Přeji hezký den J

Reklamy

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

Logo WordPress.com

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Google photo

Komentujete pomocí vašeho Google účtu. Odhlásit /  Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s