Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Přehled a vývoj PHP frameworků

Mirek Soukup
Mirek Soukup (neregistrovaný)
28. 3. 2008 9:21

čekání na Nettota

Příliš nechápu to stálé vzývání Nette. Přitom z toho "frameworku" zatím vypadlo jen pár drobečků, ale přesto všichni Češi už vědí, že to je světový produkt bez konkurence. A čekají.

Doporučuji přestat čekat a opustit potápějící se loď PHP. Už je nejvyšší čas. Z PHP se stal jazyk který nesměřuje nikam a má základní koncepční nedostatky. Příval lam do vysokých pater vývoje to jen zhoršuje. Jakmile člověk začne trochu víc drtit OOP, naráží na jeden bug za druhým. Zdálo se, že se to zlepší s příchodem Zend frameworku, ale oba vývojové týmy spolu nekomunikují a musí vznikat obezličky, které v dalších verzích přestávají fungovat, anebo mění své chování. PHP 6 je jen dovršení katastrofy!

Uvědomte si, že zatímco vy čekáte na Nette, tisíce akčních programátorů spouštějí své první projekty v RoR nebo Djangu! Až se začnete učit Nette, oni budou produktivně chrlit pokročilé projekty. Až si s příchodem PHP 6 uvědomíte svou chybu, bude pozdě na nějaké dohánění.
Zdenek
Zdenek (neregistrovaný)
28. 3. 2008 9:58

Re: čekání na Nettota

Tisice programatoru s RoR asi taky brzy narazi ;-)

http://latrine.dgx.cz/ruby-on-rails-dekuji-nechci
Mirek Soukup
Mirek Soukup (neregistrovaný)
28. 3. 2008 10:32

Re: čekání na Nettota

Ó, pan Blahoslavený Guru Grudl nedoporučuje RoR. Ó já malověrný! Radši si počkám na Nette, až se pan Velkomožný uráčí ho hodit mezi prostý lid.

Díky, otevřel jsi mi oči!
Daniel Kvasnička ml. aura:36
28. 3. 2008 12:36

Re: čekání na Nettota

Co takhle si namitky pana Grudla precist? :-) Nejsem odbornik na Ruby a nepropaguju navrat k PHP, ale to, co je v tom clanku napsao, mi staci k tomu, abych se Ruby opravdu velkym obloukem vyhnul.
mm
mm (neregistrovaný)
28. 3. 2008 13:21

Re: čekání na Nettota

Vlastnost kterou dgx Ruby vyčítá je naopak klad, ukazuje na "vyšší objektovost" (či jak to lépe nazvat) jazyka. Viz třeba Smalltalk.
Daniel Kvasnička ml. aura:36
28. 3. 2008 16:10

Re: čekání na Nettota

Klad? Jako ze muzete prerazit metodu existujici tridy misto abyste musel tu tridu rozsirit? Pokud naprosto evidentni poruseni zasady zapouzdreni povazujete za vyssi objektovost, tak prosim... Udrzet pri neohlidanich takovych veci nejaky velky projekt po kupe musi byt opravdu zabava.
Rejpal
Rejpal (neregistrovaný)
28. 3. 2008 16:52

Re: čekání na Nettota

"Klad? Jako ze muzete prerazit metodu existujici tridy misto abyste musel tu tridu rozsirit? Pokud naprosto evidentni poruseni zasady zapouzdreni povazujete za vyssi objektovost, tak prosim"

Možná není "vyšší", ale spíš "širší", totiž úplnější. Každý seriózně použitelný reflexivní systém nějak "zapouzdření" porušuje, a plně objektový programovací systém tedy již z definice nemůže nikdy poskytnout úplné "zapouzdření" všeho, protože jinak by nemohl měnit sám sebe (přidat metodu do systému by musela nějaká "vyšší moc", ale to popírá požadavek, že systém tvoří pouze objekty, co si navzájem předávají zprávy).

K našemu velkému štěstí "zapouzdření" není (na rozdíl od skrývání informace, extrémně pozdní vazby a předávání zpráv) podmínkou pro objektové programování. Máte mozek vymytý příliš velkým množstvím Kávy a Cé plusrovnáse jedna, které ve světě programovacích paradigmat mají vlastní píseček, jenž bych označil výrazem "jazyky s omezenou podporou objektového návrhu", určitě ne výrazem "objektové jazyky". Doporučuji terapii studiem díla Alana Kaye na Večerní škole Smalltalku.

Daniel Kvasnička ml. aura:36
28. 3. 2008 20:36

Re: čekání na Nettota

Jazyky, ktere vy nazyvate "jazyky s omezenou podporou objektového návrhu" jsou jazyky, jejichz tvurci si dali vedle sebe na vahy pozitiva a negativa, ktere prinasi monkeypatching (mimochodem, nedokazu si predstavit vystiznejsi termin) a rozhodli se ho nepovolit. A to proto, ze problemu, ktere bez toho nelze vyresit (jsou-li nejake) je minimum a jejich reseni bez monkeypatchingu neni nijak drasticke. A naopak problemy, ktere tim lze privodit, muzou byt dost bolestive.
Rejpal
Rejpal (neregistrovaný)
28. 3. 2008 16:39

Re: čekání na Nettota

Já jsem si je přečetl. A můj závěr je, že kdyby se tenhle vpravdě směšný argument vzal opravdu vážně, znamenalo by to, že Lisp a Smalltalk jsou k čemukoliv složitějšímu naprosto nepoužitelné jazyky, protože dovolují přesně totéž (pokud jste takováhle třasořitka, určitě nechcete vidět kanonický přenositelný commonlispový tracer, který atomicky nahradí funkci za její trasující wrapper a pak po skončení trasování zase zpátky přiřadí původní funkci). Jenže v nich jsou psané i průmyslové systémy se statisíci řádek. To znamená, že pan Grudl má někde díru v logice.

Osobně bych Smalltalk, Lisp a Ruby přirovnal ke svobodné společnosti. Jistě, můžete kdykoli vzít sekeru a jít sousedovi useknout hlavu, a nikdo Vám v tom nezabrání. Proč tedy nejsou sekery zakázané a mezi lidmi nejsou mříže, aby si neublížili? Vždyť žít v tak nebezpečné společnosti musí být strašlivé riziko! Radši se Ruby vyhněte ještě větším obloukem...
Daniel Kvasnička ml. aura:36
28. 3. 2008 20:40

Re: čekání na Nettota

Jistě, můžete kdykoli vzít sekeru a jít sousedovi useknout hlavu, a nikdo Vám v tom nezabrání. Proč tedy nejsou sekery zakázané a mezi lidmi nejsou mříže, aby si neublížili?
Protoze sekyra je veskrze prakticky nastroj potrebny a pouzivany k mnoha ruznym cinnostem. Monkeypatching, na druhe strane, je princip, bez ktereho se lze bez problemu obejit.
mm
mm (neregistrovaný)
28. 3. 2008 12:50

Re: čekání na Nettota

Hahaha, dgx zjevně nemá o objektovém programování moc velké vzdělání :-) To co on vyčítá jako zápor Ruby je ve skutečnosti klad a ukazuje na to, že Ruby je skutečně objektový jazyk (narozdíl od rádoby-objektového PHP). Také je Ruby inspirováno Smalltalkem, který má nejdokonalejší implementaci objektového programování vůbec (no možná Self je na tom lépe, ale ten se nerozšířil). Btw. tohle říkám jako člověk, který Ruby moc nemusí, já radši Python :-)
Jakub Kulhan
Jakub Kulhan (neregistrovaný)
28. 3. 2008 17:25

Aneb Můj jazyk je objektovější než tvůj

Tomu říkám hádka:

"Můj jazyk je objektovější než tvůj."

"Ne, můj je více objektový. Můj totiž umí tohle, tohle, tohle a tohle. A ten tvůj neumím tamto a tohleto."

"Ale to takhle vůbec nemůžeš říkat. Na tom tvém je zase špatné, že tohle, tohle a tohle. A to ten můj to dělá mnohem líp."

...

Nezdá se vám to trochu střelené? :)

Nezlobte se na mě, ale tohleto hledání "svatého grálu" jazyků s podporou OOP je úplně stejné jako hledání toho nejlepšího jazyka vůbec. Nikdo není a nikdo nemůže být vítězem. Každý jazyk má svá pro a proti, každý byl vyvinut za jiným účelem, každý si prošel jiným vývojem.

Je dobré upozornit na chyby. Říct, že tohle se mi na tom nelíbí. Každý má svou hlavu, a tudíž co člověk to názor. A tudíž každý může s názorem jiného souhlasit, či nesouhlasit, může jiný názor podpořit, nebo zavrhnout. A jelikož jsme každý jiný, tak si každý jazyk (názor, cokoli...) najde své zastánce i odpůrce. Ale proto je tu těch jazyků (názorů, čehokoli...) tolik, ne? Pokud nejde o exaktní obor, kdo může rozhodnout, co je správné a co špatné? Kdo?

Tyto žabo-myší války o hledání té jedině správné "pravdy", mě vždy pobaví. Jen tak dál hoši :)

P.S. Reagoval jsem na tebe, ale platí to všeobecně pro všechny diskutující.

P.P.S. Tak do mě a nešetřte mě! Já si to zasloužím! :)

mm
mm (neregistrovaný)
28. 3. 2008 18:05

Re: Aneb Můj jazyk je objektovější než tvůj

Tady nejde o žádnou hádku ve stylu "můj jazyk je objektovější než tvůj", tady jde o to, že pan David Grudl (dgx) tvrdí naprostý nesmysl (a sice že to co je možné v Ruby jde proti zásadám OOP - to v žádném případě není pravda, ba právě naopak, pan Grudl tedy lže). Všechny jazyky s kompletním objektovým modelem (Smalltalk, Lisp, ...) to umožňují, protože je to k plně objektovému modelu zkrátka a jednoduše potřeba, je to bráno jako kladná vlastnost, nikoliv zápor.

Zkrátka pan Grudl má silně omezený a zkreslený pohled získaný z jazyků, které mají jen omezený objektově orientovaný model (Java, C++, PHP, ...). Prostě kecá o něčem, čemu nerozumí a plácá díky tomu nesmysly. Nejdřív by si měl něco přečíst třeba právě o Smalltalku, než takovou blbost napíše.
Jakub Kulhan
Jakub Kulhan (neregistrovaný)
28. 3. 2008 18:56

Re: Aneb Můj jazyk je objektovější než tvůj

Taky jsem nepsal nic o tom, je-li dgxův názor správný či špatný. Podle mě se tady spíše opravdu jedná o válku, který že ten jazyk je opravdu nejobjektovější na světě. Což dokazuješ i ty.

"Všechny jazyky s kompletním objektovým modelem (Smalltalk, Lisp, ...) to umožňují, protože je to k plně objektovému modelu zkrátka a jednoduše potřeba, je to bráno jako kladná vlastnost, nikoliv zápor."

"..., které mají jen omezený objektově orientovaný model (Java, C++, PHP, ...)."

Mimochodem, co že je to ten kompletní (plný) a omezený objektový model? Opravdu by mě zajímalo, jak jsou tyto pojmy podle vás definovány.

A ještě něco, když se tu všichni baví o té zapouzdřenosti. To jsem opravdu žil v blahé nevědomosti, oč vlastně jde? To je opravdu zapouzdřeností míněno, že, jak metodu definuji, již ji nemohu změnit? To opravdu neznamená to, že každý objekt odkrývá jen svůj interface (tím nemyslím to javovské klíčové slovo, ale veřejné metody (funkce, zprávy, čudlíky na černé krabičce, říkejte si tomu, jak chcete) sloužící ke komunikaci s objektem) a nic víc?

Václav Stoupa
Václav Stoupa (neregistrovaný)
28. 3. 2008 19:54

Re: Aneb Můj jazyk je objektovější než tvůj

Myslím že dgx není jediný, kdo si to myslí. Viz třeba článek a diskuze http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/

Myslím ale, že tenhle článek není o tom, abychom se tu hádali o Ruby on Rails.
Daniel Kvasnička ml. aura:36
28. 3. 2008 20:45

Re: Aneb Můj jazyk je objektovější než tvůj

protože je to k plně objektovému modelu zkrátka a jednoduše potřeba
Problem je vase definice slova "potreba". V praxi to neni potreba vubec, resp. neprinasi to vice pozitiv nez potencialnich negativ. Potreba je to jen proto, aby mysl objektovych ultra-puristu zajasala. A to je pro me trochu malo.
Michaelson
Michaelson (neregistrovaný)
29. 3. 2008 13:16

Re: Aneb Můj jazyk je objektovější než tvůj

A Vy mate skusenosti z projektov pisanych v Smalltalku alebo Lispe (CLOS heavy), ze si dovolite toto tvrdit? Ak ano, tak mi povedzte na ake konkretne (nie potencionalne) negativa ste narazili. Ak nie, tak sa nad sebou poriadne zamyslite, pretoze kecate o niecom o com nic neviete... akonahle si aspon zbezne nastudujete napr. MOP, tak sa mozeme dalej bavit...
petr
petr (neregistrovaný)
30. 3. 2008 13:40

Re: Aneb Můj jazyk je objektovější než tvůj

Mě se nejvíc líbí, že tyhle tahanice o objektový jazyk vedou lidé, kteří nedokáží na poprvé bezchybně nakreslit základní schéma deset let starého modelu MVC.
Daniel Kvasnička ml. aura:36
30. 3. 2008 16:13

Re: Aneb Můj jazyk je objektovější než tvůj

MVC neni stary 10, ale 30 let :-) ...kdyz uz jsme u toho kritizovani znalosti o MVC :-)

Navic "schema MVC" je dost relativni pojem. Jsou samozrejme pojeti, ktera jsou uplne mimo, ale variant rozkresleni vztahu MVC je urcite vice. (mimochodem, ktere schema mate konkretne na mysli?)
~
~ (neregistrovaný)
28. 3. 2008 15:52

Re: čekání na Nettota

Naprosto souhlasim s panem Soukup.
Kingsize Dick
Kingsize Dick (neregistrovaný)
28. 3. 2008 16:17

Re: čekání na Nettota

To je jenom aurou dgxe. Ne ze bych ho chtel nejak podcenovat, ale aby jedinec napsal framework alespon castecne pouzitelny a primerene bugovy jako je symfony, cakephp, zend za kterymi stoji desitky lidi (a velke spolecnosti) mi prijde dost jako utopie. Ale chapu, je to cech a na prednaskach je spise pro zabavu.
Daniel Kvasnička ml. aura:36
28. 3. 2008 16:20

Re: čekání na Nettota

Ja jsem myslel, ze o tohle se dgx ani nesnazi. Mel jsem pocit, ze Nette ma byt jen jakasi mezivrstva, ktera, z PHP udela trosku rozumny jazyk.
Zasílat nově přidané příspěvky e-mailem