Diskuze: Jak se v PHP obejdete bez statického typování?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Také jsem uchvácen C# a když jsem přišel na nutnost používat PHP a
začal jsem se ho učit, zděsil jsem se. Ačkoliv mám PhpStorm, což se
odvážím tvrdit, že je snad nejlepší PHP IDE a skutečně toho dělá dost,
stále mi připadá PHP jako neuvěřitelná mazanina a nechápu, jak v něm
může někdo udržovat větší projekt za rozumné námahy.
Na část tvého dotazu odpovídá PHP 7, kde jakási typová kontrola funguje,
ale stále to není vůbec dokonalé.
Nicméně se zděšením jsem zjistil, že někomu dynamické typování
vyhovuje a považuje ho za svobodu. To znamená, že existují lidé, kteří
rádi používají PHP v jeho originální formě.
Další věc je, že PHP prostě takové je a pokud se ti to nelíbí, měl bys
přejít na něco jiného. To samozřejmě v praxi nefunguje, velké množství
malých a středně velkých projektů je v PHP a tudíž se mu úplně vyhnout
nedá.
Změny, co navrhuješ jsou tak radikální, že by se jednalo o jiný jazyk.
Také je to dáno "historicky", PHP je původně primárně skriptovací jazyk,
až v poslední (trochu delší ) době se začal používat jako třeba právě C#, ale na to
původně nebyl dělaný.
Asi by sis měl zjistit co to znamená kompilovaný jazyk a co to znamená interpretovaný jazyk. To odpoví hodně na tvé otázky. Obě skupiny mají své výhody i nevýhody a samozřejmě existují i různé hybridní jazyky.
Jak již bylo řečeno, nová verze PHP 7 má možnost nastavit režim statických proměnných.
Každopádně nikdo tě v PHP určitě nenutí psát. Můžeš přejít na téměř libovolný jazyk, např. Javu, .NET jazyky, Python, nebo třeba Dart.
Nikdo kromě trhu . Z velké části tedy, šlo by to i bez PHP, kdyby se chtělo
Podľa mňa statické typovanie môže znamenať aj výhody, aj nevýhody.
Záleží to od toho ako jazyk používaš alebo na čo ho používaš.
Statické typovanie sa podľa mňa hodí na väčšinu vecí. Máš prehľad o
tom, ako ktorá štruktúra vyzerá a podobne. Nidky sa ti nestane, aby si
nevedel, ako bude výsledná premenná vyzerať po obsahovej stránke. Na druhú
stranu, pokiaľ nevieš, s akými presne dátami ideš pracovať, to môže byť
nevýhoda.
Dynamické typovanie je práve pre také situácie, kde si nie si istý, s
akými dátovými typmi pracuješ (veľké pole a pod.). Ďalšou výhodou
môže byť o trochu rýchlejší vývoj.
Ja som zástanca toho názoru, že statické typovanie je ďaleko lepšie ako
dynamické vo väčšine prípadov. Vieš, čo kde je uložené, máš o tom
prehľad. Proste dynamické typovanie je pre noobov
Sám v PHP 7 používam dátové typy a naozaj je to lepšie ako
predchádzajúce verzie.
Je to moc dlouhé a tak jsem to moc nečetl,.. ale abych byl upřímný.. kdybych to četl, tak stejně tady jen chytnu záchvat smutku a rozbrečím se tady jako malej kluk,... uroním slzičku, že další uživatel PHP si uvědomil, že s tím asi není něco v pořádku..
K věci.. znám 2 druhy PHP vývojářů Špatné PHP vývojáře a výborné ex-PHP vývojáře. Věřím, že jsem se vyjádřil jasně..
Co se týče dynamického vs. statického typování.. Dynamické typování má opravsu šíleně moc nevýhod a ta největší je ohromný dopad na výkon, který tím dostane totálně na prdku a je to jeden z hlavních důvodů, proč žádný dynamicky typovaný jazyk NEMŮŽE nikdy být ani z dálky stejně výkonný, jako typovaný - proto jsou např., v javascriptu typed array, aby se to výkonově alespoň přiblížilo. V PHP šli opačnou cestou.. a i to nejprimitivnější pole dělají pomocí hashtably..
Statické typování má ale také svoje občasné nevýhody, které ale z pěkné části řeší například anonymní typy a tupple v C#. Osobně ale za tu nejhezčí kombinaci pro programátora považuji třeba Typescript.
Chápu ale, že vnitřně nelze zachovat obojí - tedy výkon a plnou použitelnost pro programátora, prtoo osobně považuji ideální kombinaci staticky typovaného jazyka s anonymními typy.
přináší to s sebou určitou režii navíc pro programátora, ale vrátí se mu to Milionkrát při debugu.
Rozšíření syntaxe PHP - děkuju všem za reakce.
Samueli, ano: Má své výhody a nevýhody - a proto by toto nové "PHP#" povolovalo obojí: dosavadní i staticky kontrolovanou syntaxi. Ať si každý vybere.
Tím "režimem statických proměnných" zřejmě myslíte declare(strict_types=1); ... Vyzkoušel jsem to a zhrozil jsem se. Ono to staticky nekontroluje nic, ani ň. Jenom to hodí runtime (nikoli compile) error, když funkci, která očekává třeba int, předám '3'.
Takže to ani trošku neřeší problém, který jsem nadhodil v úvodu
úvodního příspěvku tohoto vlákna.
Pavel
Ano, Honzo, většina skriptovacích jazyků nenabízí komfort statického typování - ale je to opravdu tím, že výhody dynamického v dané situaci převažují? Není to způsobeno spíše historicky - tím, že skriptovací jazyky vznikly jako "lehká váha", kde lze jednoduchou věc docílit pár řádkami kódu?
A pak se ty úspěšnější skriptovací jazyky (jako PHP) velmi rozšířily, načež v nich lidé začali psát čím dál rozsáhlejší aplikace, takže by jim (nejen PHP, ale možná i dalším) mnou navržené rozšíření prospělo, ale nikdo se k tak radikální změně neodhodlal? Pletu se?
Petře, máš pravdu, že by to byl (skoro) nový jazyk - ale mně připadá, že by vývojáři dostali do ruky mocný prostředek, který jim zefektivní práci. (Ano, já se nemusím hlásit na místo PHP programátora - ale můj nápad usnadní život těm, které ta firma nakonec najme.)
PHP je velmi rozšířené, je mj. na významné části webových freehostingů - takže kdyby to tvůrci OOP implementovali, bezpočet lidí získá to bezpečí kompilačních kontrol. Zatímco kdyby to někdo vydal jako nový jazyk (navrhuji název PHP# ), pak jej bude mít k dispozici řádově méně lidí.
Myslíte tedy, že tvůrcům OOP mám o tomhle nápadu nějak říci? Ale jakým kanálem? Mám si vygooglit nějaká světové PHP fóra a zmínit to tam?
Co myslíte - mám tvůrcům PHP navrhnout toto vylepšení syntaxe? A jakým kanálem?
Pozri sa napr. sem: http://php.net/…involved.php
Zobrazeno 11 zpráv z 11.