Pokud jste IT profesionál, je Vaší prací provést zákazníka (nebo zaměstnavatele) tak, aby nepocítil změnu. Samozřejmě, pokud někdo začne řešit přechod na novou verzi až ve chvíli, kdy začne tikat poslední odpočítávání, bývá už dost pozdě. Pak je na zamyšlenou, jestli takový IT-profesionál je člověkem na svém místě, když věci nechá zajít tak daleko.
Kdežto když utečou data kvůli díře, kterou by update zalepil už před rokem a firma dostane hodně bolestivou pokutu, tak tě šéf povýší a koupí ti nový auto... A teď tu o Karkulce.
Rizika jsou když updatuješ i když neupdatuješ. Na tobě jako odborníkovi je, abys ty rizika minimalizoval.
Btw, v době virtualizace si můžeš klidně udělat kopii pracovního serveru, aktualizovat, otestovat a swapnout. Pokud se to rozbije, jede stará verze a pokud ji máš zálohovanou, dá se vrátit. A když to děláš průběžně, tak řešíš problém 10 minut (pokud nastane), když jenom update po pěti letech s koncem LTS, tak se pak dějou hodně divoký věci...
Jo teorii jsou ty updaty vždy pohádkové :) Samozřejmě lze vytvořit zálohu a update provést na testovacím serveru, ale co když nový wordpress totálně rozhází stránku a bylo by potřeba předělání šablony od nějaké firmy? Na to ti vedení peníze většinou nedá, když to funguje bez updatu. To mi připomnělo bývalého spolužáka, který se smál proč firmy používají centos či opensuse s jejich prastarými verzemi programů, když update debianu je hladký a bezproblémový :) A poté po updatu na 9 říkal jak mu kleklo to a to.
Samozřejmě lze vytvořit zálohu a update provést na testovacím serveru, ale co když nový wordpress totálně rozhází stránku a bylo by potřeba předělání šablony od nějaké firmy? Na to ti vedení peníze většinou nedá, když to funguje bez updatu.
Ale to je přesně o (ne)schopnosti IT managera. Jeho prací je umět vedení vysvětlit, že updaty jsou nezbytné. I za cenu toho, že se čas od času musí předělat šablony apod. Dokonce si myslím, že IT manager by měl vedení varovat, že tento problém konkrétně s Wordpressem nastane: je levné stránky pořídit a rozběhnout. Je drahé je udržovat (ze zmíněných důvodů). V tom všem je jedině selhání IT pracovníka, nic víc.
Předpokládám, že šéf také mění v autě olej a filtry a rozvody podle předpisu výrobce. A stojí to taky peníze i v době, kdy to auto ještě pořád jezdí! U softwaru i hardwaru máte od výrobců (vendorů) také jasně dané doby podpory a z nich vyplývá nutnost "servisu".
Kdyby auto fungovalo jako PHP, tak výměna oleje by byla možná jen tehdy, pokus se zároveň s olejem vymění i čelní sklo, všechna kola a palubníé počítač.
Závěr: Měl jste rovnou napsat, že programování v PHP vyžaduje velice drahou údržbu, která kromě upgradu bude také opravovat a přepisovat veškerý zdrojový kód.
1) Jinak řečeno, laici a neprofesionálové udělají lépe, pokud namísto PHP použijí jazyk, který drží zpětnou kompatibilitu. Mohou tak upgradovat bez přepisů zdrojových kódů.
2) Firmy udělají také lépe, když se PHP vyhnou. Náklady na upgrade jsou násobně nižší, není třeba přepisovat zdrojové kódy při každím major upgradu.
PHP je prostě drahá záležitost. PHP je luxusní na utrácení peněz do WC, kdy za cenu mercedesu dostanete otrhaný ujetý trabant, který se neustále sype a hrká v něm, a je potřeba utrácet na údržbu a servis neskutečné peníze.
Když lidé namísto PHP zvolí rozumnější jazyk, např. Python - náklady se drasticky sníží. Upgrade je možné provést bez toho, aby se to muselo celé předělávat.
1) Starý olej v autě = auto furt jezdí. Cálujou výměnu oleje a filtrů? Web (a obecně technologie) mají nějakou životnost a potřebují údržbu.
2) Co je děravý, to nefunguje. Pokud je zadáním, že k intranetu se dostanou jenom zaměstnanci a vinou zastaralýho modulu pouští data ven, je dokonce tvá povinnost ze zákona tomu úniku zabránit. A pokud hrozí škoda zaměstnavateli, škoda na zdraví a podobně a při tom nemůžeš zařízení fixnout sám, je tvá povinnost ze zákona takový zařízení odstavit, označit a informovat nadřízenýho. Co s tím udělá je jeho boj.
3) Když všechno funguje, mají nadřízení pocit, že nepotřebuj IT. A začnou redukovat náklady. Co hoří nejvíc (z pohledu bezpečnosti a podinvestování), to musí občas zlobit, aby to viděli i lidi mimo IT. Třeba občas neodejde mail, protože není šifrovaný odchozí mail a "protistrana odmítla"... Druhý de přiletí manager, co by to obnášelo a kolik by stálo, aby ten mail došel. A šikovný kluky z IT si nechají...
Hele, vy jste zase chytrej.
Nutí někdo autory PHP, aby výměna major verze byla bolavá kvůli zpětné nekompatibilitě?
Představte si, že v enteprise a business jsou věci, které fungují třeba několik desetiletí. Samozřejmě ne v PHP, ale v serióznějších technologiích. Udržují se často zdrojové kódy staré několik desetiletí.
Jen tady na rootu si řada lidí myslí, že je děsně fajn neustále přepisovat zdrojové kódy jen tak pro nic za nic. Každý zásah do zdrojových kódů - pokud jde o bezpečnost znamená, že kód musíte znovu odladit, otestovat pomocí unit i jiných testů, otestovat ve zkušebním provozu a dalším - a pak teprve nasadit. Pitomé móresy s neustálým rušením zpětné kompatibility, které si vymysleli autoři PHP je astronomicky drahé, a v seriózním prostředí to neprojde.
Vy zřejmě neumíte číst!
Tady se všichni tváří, jak je PHP děsně seriózní. Jak je třeba platit IT oddělení na PHP. Jak jsou všichni, co dělají v PHP profesionálové, co potřebují vyrazi z managementu děsné peníze, aby se mohlo udržovat a upgradovat PHP.
Jako kdyby PHP byl luxus, na který se musí vyhradit v každé firmě astrnomické prachy.
Všichni jsou tu děsní profíci, a všechny weby v PHP jsou jen firemní nebo placené.
Já jen píši, že údržba a upgrade PHP je mnohonásobně dražší, než údržba a upgrade seriózních jazyků a technologií. A to je naprostý fakt. Upgrade PHP prodražuje mnohonásobně nedržení zpětné kompatibility.
Jen PHP po 20 letech je schopno totálně rozdrbat i tak základní věci v jazyce jako je ošetřování chyb!
@Miloslav Ponkrác
"Tady se všichni tváří, jak je PHP děsně seriózní. Jak je třeba platit IT oddělení na PHP. Jak jsou všichni, co dělají v PHP profesionálové, co potřebují vyrazi z managementu děsné peníze, aby se mohlo udržovat a upgradovat PHP."
Kdo?
"Jako kdyby PHP byl luxus, na který se musí vyhradit v každé firmě astrnomické prachy."
"Všichni jsou tu děsní profíci, a všechny weby v PHP jsou jen firemní nebo placené."
Tvrdí kdo?
"Já jen píši, že údržba a upgrade PHP je mnohonásobně dražší, než údržba a upgrade seriózních jazyků a technologií. A to je naprostý fakt. Upgrade PHP prodražuje mnohonásobně nedržení zpětné kompatibility"
Na základě čeho tak píšeš?
"Jen PHP po 20 letech je schopno totálně rozdrbat i tak základní věci v jazyce jako je ošetřování chyb!"
Nezoušel ses zamyslet nad tím, že u jazyka který je tu 20 let se zákonitě spousta věcí jednou změnit musí? A kdyby i přestali jazyk vyvýjet a začali nový, nebyl bys první kdo by řval dejme tomu "o zahozené podpoře, opuštění ývojářů, zmařených investicích firem...apod" ?
Ve skutečnosti se nic zvláštního neděje. Z těch 62 % webů, co ještě používají verzi 5.x, jsou dvě třetiny, co používají již dávno nepodporované verze 5.3, 5.4, 5.5. A ti co používají 5.6 mají stejně často nasazeny různé dlouho neupdatované verze Wordpressu, Prestashopu, phpbb forum apod. - to jsou mnohem větší bezpečnostní díry než verze php...
@bez přezdívky
Wordpress PDO nepoužívá pokud vím. Je to AFAIK kvůli zpětné kompatibiltě jak se tu s tím kdosi ohání. Dotazy na databázi jsou tam ošetření postaru, což ale nutně neznamená špatně. Wordpress je na dnešní dobu tak trošku prasárna, ale ne přímo kvůli bezpečnosti. Přímo WP netrpí chubami o nic moc více. Ale uznávám, core je zastaralé, pavučinama zarostlé. Ošem jak víme, jenom obsah zdrojáku úspěch sám o sobě nedělá.
Problémy s bezpečností WP vznikají hlavně tím, že si každý jouda může splácnout plugin, nainstalovat si ho a co hůř, tak ještě sdílet .... Ale samozejmě buzzword Wordpress funguje skvěle .... Jinak v php samotné použití pdo není zárukou úspěchu, ve WP už vůbec ne, protože databázi i nastavení php má v rukou user .... Tím si ale ty hezké strašidelné historky nebudeme kazit.
Nektere appky proste zustavaji u starsich PHP protoze zpetna nekompatibilita. Coz je blbe. Treba mysql bylo vyhozeno a v php7 nahrazeno mysqli. Zakaznik prepis a otestovani nezaplati. Tudiz nemuzes zvednout PHP jinak se mu to rozsype a nebude to vedet ze ma volat jine rozhrani. U nekterych aplikaci je to casto dost komplikace. Obzvlast kdyz to psaly prasata. U svych projektu, a jelikoz mi puvodni rozhrani prijde proste blizsi, jsem to vyresil tak, ze jsem si udelal svou knihovnu (wrapper) a volani puvodnich funkci mysql_* prekladam do volani mysqli_*. Pokud tedy nejsou definovany puvodni mysql funkce, pouziva se "wrapper", pokud jsou nadefinovany, pouzivaji se puvodni php-mysql funkce. Appka tak o nicem nevi a jede si stale postaru bez nutnosti velkeho prepisu. Aspon tak me aplikace bezi i tam i tam, takze problem solved, ale vdecen tvurcum PHPka za to tedy nejsem. Byla to nikoliv kratka a neplacena doba na vyvoj a odladeni.
Tvůrci PHP nezvládli ani po 20 letech zapracovat do jazyka, který převážně pracuje s texty a textovými řetězci - datový typ "textový řetězec". To snad mluví za všechno.
Chtít od autorů PHP něco seriózního je utopie.
Schválně kolik jazyků nebude mít v základním balíku ani takové věci, jako je třeba debugger? Ani to se dodnes nepovedlo do záklandího balíku dodat.
Nejlepší je seriózní weby na PHP nestavět. Ten jazyk trpí neskutečným hochštaplerstvím těch, kdo PHP vedou a řídí.
Nic neí ideální. Ale mezi ideálním a neideálním je ještě hodně moc stupňů.
Tady spousta lidí vyřvává kdejaké nesmysly. Například jak přechod PHP 5 -> PHP 7 je bez problémů, žádné problémy s kompatibilitou nejsou. Možná by tu měli psát lidi, kteří napsali v PHP 5/7 alespoň o maličko víc než jen hello world aplikaci.
Pak se tu řve, proč lidi neupgradují. No prostě proto, že pro většinu lidí a firem upgrade na PHP 7 znamená, že jim to nepojede.
Pro bezpečnost je často větší problém to, že je třeba sáhnout do zdrojáků, než mít neupgradované PHP.
Já s tím problém nemám. Nicméně je třeb občas mluvit pravdivě. Upgrade na major verze byl a je v PHP vždycky obrovský problém. PHP je prostě špatně děláno, špatně vedeno, špatně řízeno.
Kdyby se jednalo jen o upgrade PHP 5 -> PHP 7, byla by to pohoda. Ale většinou je třeba sáhnout i do zdrojových kódů.
Myslím, že by to většina lidí měla využít na to, aby nové projekty psali v rozumnějším jazyce a tehcnologiích, které ctí zpětnou kompatibilitu.
S přechody PHP na major verze jsou neskutečné problémy, a vždy byly. To je také důvodem, proč se používají ještě řadu let starší major verze.
PHP je čím dál větší prasečina. Když přejdete na rozumnější programovací jazyk, získáte například datový typ string a konec vyfikundací, že neustále musíte sahat do zdrojáků na základě nekompatibilních změn ve verzích.
http://php.net/manual/en/function.eregi.php http://php.net/manual/en/intro.mcrypt.php
Třeba za tohle bych bych obnovil některé středověké kratochvíle.
Přidejme k tomu za posledních 10 let script na doházeni magic quotes, na přehození mysql->mysqli/PDO jak už tu někdo zmiňoval, přeházení mcryptu do openssl.
Myslím že imbecil desetiletí patří spíš za neznalost (resp. exemplární pochopení k čemu je to dobré) pojmu "zpětná kompatibilita".
@jouda
[vtip-parafráze]
Ty jsi takový imbecil že bys v soutěži imbecilů skončil druhý - takový imbecil že bys to ani nevyhrál.
1. Imbecil patří tobě. Php 5.3 je z prehistorických dob kdy se celé weby psaly do jednoho scriptu standardně, všude a bylo to normální, i quotování se používalo všude, byl to normální standard.
2) A speciální cenu imbecila desetiletí bys měl vyhrát za to, že máváš zpětnou kompatibilitou když je podřeba odstanit funkce které jsou tak staré až jsou nebezpečné - to je tam mají nechat aby byly nebezpečné dál - obzvláště když musí mít jiný výstup? Už se prober z té diskotéky ....
@jouda
Evidentně nevíš o čem mluvíš a vybíráš si nějaké obecné důvody, to jediné je tady toxické ...
Těch 62% jsou nejspíš instance nějakých blogísků které nikdo nepoužívá, nebo málo, na hostingu 30,- za měsíc, případně to mají lidi kteří ani neví co jsou to security updaty nebo ani neví že PHP má více verzí ... Přechod z php 5.6 na 7.1 je až na vyjímky bez problému, php 7.1 umí spustit drtivou většinu věcí php 5.6 úplně normálně ...
Kdybys o tom něco věděl, tak bys věděl, že na php5.6 nepustíš kód který je napsaný stylem php7+, ovšem obráceně spustíš 99,9% kódu.
Ono je toho mnohem vic, ted si nevzpomenu na konkretni funkci, ale mam tu v phpku takovy preklapedlo jednoho soapu do druhyho soapu ... a kdy se zmenila verze phpka (a ani ne major) tak to prestalo fungovat, protoze jedna z pouzitych funci najednou strasne nutne potrebovala dalsi parametr ...
A to v pripade ze neco proste prestane fungovat ses na tom jeste zatracene dobre, protoze toho si pomerne rychle vsimnes. Ono se to taky klidne muze chovat tak, ze ti prestane fungovat nejaka cast, ktera se vola jednou za mesic ... nebo muzes dopadnou jeste lip, ze to vlastne vsechno "funguje", jenom to nedela to co by melo (trebas ti to misto sifrovani proste posila data jako text ...).
Ano, presne takhle se to dela. I kdyby tech skriptu melo byt 10. Neni to nic extremne komplikovaneho. A navic techto skriptu se da na internetu najit hory a to slo i pred 10ti lety. Ted treba najdes skripty na doplneni typehintu podle phpdoc. Nebo scripty ktere automaticky doplni vsude strict_types(ale to neni BC break).
Existuji cele projekty jako je treba PHPStan(z ceske dilny, vyuzivany celosvetove jako PHPUnit), ktery je ti schopen otestovat aplikaci na spravne predavani typu parametru pokud nemas typehinty. Samozrejme ma mnohem vice funkci a celkem myslim 7 urovni kdy je kazda vyssi uroven mnohem prisnejsi. A jeho zprovozneni? asi tak 3 minuty a do 10ti minut max. mas vysledek.
Kdo chce hleda zpusoby, kdo nechce hleda duvody. Ty ses ocividne linej nebo se ti proste zacal nabalovat technicky dluh az ses na to vys*** uplne. A zrovna to co jsi uvedl jsou celkem jednoduche veci na opravu. Jsou zde i veci, ktere se skripty dost spatne resi, nebo by doba tvorby takoveho skriptu zabrala vice casu nez rucni oprava u vsech projektu. Nicmene tech je minimum a vetsinou jsou bud minimalne pouzivane nebo jsou v kazdem projektu jednou dvakrat, jako mcrypt, password_hash atd.
PHP nemá datový typ "textový řetězec". Což je skvělé u jazyka pro web, kde se s texty pracuje velice často. To, co PHP nazývá typem "string" je ve skutečnosti binární blok, jinak řečeno vektor bajtů. Takže PHP nemá ani po dlouhých letech ani datový typ "textový řetězec", což je to co se nazývá "string".
Zcela konkretne potrebuju 5 verzi javy proto abych moh adminovat 5 ruznych krabic s javovym frontendem ... protoze v ZADNY JINY verzi javy to ... NEFUNGUJE. A dokonce uz i k minecraftu je pribalovana java ... protoze v ty aktualni, to ... nefunguje. A trebas takovej JOSM se uz nekolikrat dost prekopaval ... prave a protoze vysla nova java.
https://www.jfrog.com/jira/browse/RTFACT-15061
(podobný problém byl i s přechodem z Javy 7 na 8)
Do puntíku se nezaručuje zpětná kompatibilita nikde. Většinou se odstraňuje to, co nikdo nikdy nepoužil (např. trigraphy v C/C++, nebo slovo export v C++).
Já mám dodnes 30 let staré zdrojové kódy v C a přes 15 let staré kódy v C++ - a nemám sebemenší problém je přeložit nejnovějším kompilátorem. Jedou zcela bez problémů. Nemusím přepsat ani čárku. Tomu se říká zpětná kompatibilita.
Python udělal jednu podstatnou změnu z Pythonu 2 -> 3. Došlo k vyčištění jazyka.
PHP dělá nekompatibilní změny neustále. Ne proto, že by to bylo potřeba, ale protože autoři PHP jsou chaotická prasata, která nikdy neměla dělat programovací jazyk. Při každé major verzi PHP jsem musel přepsat či upravit zdrojové kódy. I tak je PHP dodnes špatný jazyk. Nemá datový typ "textový řetězec". Objektové programování dynamického jazyka PHP okopíroval ze statického jazyka Javy, takže to u dynamického jazyka škrtí a omezuje, protože to nesedí. Neustále se něco mění, přepisuje. V PHP 7 např. se významně mění celé zpracování chyb - což vzhledem k tomu, že programátor obvykle zpracovává chyby je na popravčí četu pro autory. Je škoda, že se PHP jazyka, tak špatnému i ve verzi 7, dává vůbec taková příležitost. Málokterý jazyk je tak špatný, nedomyšlený, chaotický jako PHP.
V php jsem psal kdysi v pravěku studentské brigády. (Tehdy se ještě nepoužívaly ty hrozné frameworky, používalo se to jako takové céčko bez pointerů na zpracování dat z formuláře a databázi.) Vzpomínám, jak starší verze předávaly data z formulářů jako globální proměnné. (Kdo tohle vymyslel, je to fakt na nobelovku za blbost...) Hojně se to tehdy využívalo a další verze to v defaultu vypnula :-))) Vzpomínám si, jak se nám tehdy na civilce rozsypal web výzkumáku.