kam speje PHP?… skutecne do p*?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wdolek
Člen | 331
+
0
-

prominte mi, ale :D tohle snad uz posledni misto, kde se muzu vybrecet (posledni misto, kde lide pracujici v PHP uvazuji racionalne). dnes se ke me dostala zprava o nahrazeni symbolu pro jmene prostory – misto

::

se bude dale pouzivat

\

… takze jsem patricne zhnusen a kladu si otazku „ma to PHPcko jeste nejaky smysl?“… po veskere netypovosti, magii s promenymi a nekonsistentnim chovanim nekterych funkci mi tohle pride jako posledni hrebicek do rakvicky. uz jen navrh jmenych prostoru – definovane pro cely jeden soubor! proc to nevyresili jako v C#, kdy jmeny prostor obklopuje tridu? no dobra, to bych jeste prezil… ale jak bude citelny kod

Nette\Whatever::splodNeco( );

jen kvuli tomu, ze se musi vyhovet nejvetsim bfu se proste nepouzije ::… ze by si pletli A::B::foo( ) co je namespace a co trida… ach muj boze!

jinak zde je link k dane informaci: http://developers.slashdot.org/article.pl?… … diskusi vyvojaru opravdu nechapu – meli tam opravdu rozumne argumenty proc nepouzivat \, ale nejak to neproslo :(

Jod
Člen | 701
+
0
-

To lomítko je riadne hnusné. Ja tam nevidím problém rozlíšiť ktoré je trieda a ktoré namespace, šaq sa to dá čítať odzadu.

Asi chcú aby šetky lamy ďalej používali php =D .

Čak v C# keď sa sleepne aplikácia,
<%
System.Threading.Thread.Sleep(100);
%>

nikto nemá problém rozlíšiť, čo je statická metóda, trieda a namespace.

Keď už šetko menia, mohli by zmeniť aj → na bodku, unavuje ma to písať v kuse xD

wdolek
Člen | 331
+
0
-

Jod: jo jenze to by se museli pustit „zpetne kompatibility“ … tecka jako spojovac retezce – to take vymyslela nejaka hlavicka. ja proste nechapu, proc proste neudelaji brand new PHP release, z ktereho vyhazi vsecky ty blbosti a neuelaji to nejak lidsky.
nekde sem cetl, co vse zustane :P a chtelo se mi plakat. jestli se ale nepletu, PHP4 bylo podporovano jeste nekolik let nez to prestali dal podporovat. a porad se tam neco releasuje. proste clovek ma dost casu prepsat aplikaci do uplne noveho PHPcka… popripade jet na starem serveru – takze zachovavat ty prisernosti z dob minulych mi prijde naprosto nepochopitelne. jako by na oktavkach skodovka pouzivala dily ze 105ky!
… nebo se snad boji, ze jakmile by clovek musel prepsat radikalne aplikaci, ze by radeji migroval do nejakeho pouzitelnejsiho jazyka? :D me uz se to PHPcko fakt hnusi, uz se s kamaradem poohlizim po smalltalk web frameworku!

mimochodem, take sem z te jejich diskuse nepochopil, v cem je problem – prijde mi, ze to proste blbe implementovali, a proto to ted zmeni na lomitko, nez aby to nejak dodelali tu implementaci (?)… cele sem to necetl – nemel sem na to nervy.

LM
Člen | 206
+
0
-

Problém jsou konflikty:

namespace Space::Foo;
function bar() {}

// vs

namespace Space;
class Foo {
	static function bar() {}
}

Space::Foo::bar() volý se funkce nebo statická metoda? kdyby radši funkce a konstanty z namespaces vyházeli…

David Grudl
Nette Core | 8218
+
0
-

Space::Foo::bar() volý se funkce nebo statická metoda? kdyby radši funkce a konstanty z namespaces vyházeli…

Pokud existuje funkce Space::Foo::bar, nechť se zavolá, jinak ať se volá statická metoda (včetně autoloadingu apod). A problém je vyřešen. Protože každá aplikace operuje ve vlastním jmenném prostoru, tak si sama pohlídá, aby nepoužívala kolidující názvy. Nehledě na to, že drtivá většina uživatelů namespaces ani funkce používat nebude.

Jod
Člen | 701
+
0
-

To je dosť blbosť pchať funkcie do namespace :D

wdolek: no ja som kódil v ruby a rails frm, ľúbilo sa mi to, len tá dostupnosť hostingov. A smalltalk hosting som nevidel duplom nikdeeee :D . Mal som dosť problém nájsť dokonca aj python hosting a keď som našiel tak mi nešel, ale apache vypisoval, že mod_python tam je (aj cez cgi) a pritom som všetko robil podla tutoriálu na fóre :D . ASP.NET je hostingu dosť, sú trochu drahšje, ale ten frm sa mi dosť sprasnil :D ..tak čo nám zostáva, než naše zlaté najrožírenejšie PHP.

Ale ten smalltalk ma tjež zaujal, ešte aj taká lua stojí za mrk (sa mi zdá že blizzard ho používa ako scriptovací jazyk vo wow)

Najlepším východiskom sa zdá byť vlastný server, ešte, že pred pár dňami sme si jeden zriadili =)

wdolek
Člen | 331
+
0
-

hmm :P no dobra, ale jak zaznelo – vyhazet funkce z namespace. kdyz uz si PHP chce hrat na objekty, tak at nemicha dva pristupy. bud pouziju namespace, v kterem smi byt jen tridy… a nebo volam primo funkci. teda sice sem v tolika jazycich neprogramoval, ale neco podobneho sem skutecne jeste nevidel (C# ma zapouzdrene tridy v { }, u Javy plati co soubor, to public trida – a tedy pakcage se vztahuje na tridu, … a hlavne nikde nejde definovat funkce jen tak uplne mimo tridu).

wdolek
Člen | 331
+
0
-

Jod: na WebExpu sem sel na prednasku RoR – nikdy sem v tom nedelal, tak sem se chtel seznamit s necim novym. moc se mi nelibila ta magie kolem, deployment a tak. to uz je jednodussi deploynout servlet v jave :D !!! a pythoni prednaska – to sem prestal vnimat po 30ti minutach, co se deje. nerikam, ze by ruby nebo python byly spatne jazyky – jsou promyslene od zacatku, narozdil od PHPcka, ale ty frameworky me fakt moc nenadchli. asi nejlepe se mi zatim delalo v C#.NET :) takova skladacka.
ad hosting: s tim si nedelam iluze, vetsina hostingu ma sice killer-kapacity, ale podporu mrzkou.. zazil sem hosting, ktery nabizel 4GiB prostoru, trosku ocesane PHP5, MySQL 5 s povypinanymi funkcemi jako jsou view, stored procedures nebo transakce. a jako bonus to melo limit na pocet souboru :D (takze takovy ZF nasadit na takovy hosting byl ciry nesmysl).. je to bida.

LM
Člen | 206
+
0
-

David Grudl napsal(a):

Pokud existuje funkce Space::Foo::bar, nechť se zavolá, jinak ať se volá statická metoda (včetně autoloadingu apod). A problém je vyřešen. Protože každá aplikace operuje ve vlastním jmenném prostoru, tak si sama pohlídá, aby nepoužívala kolidující názvy. Nehledě na to, že drtivá většina uživatelů namespaces ani funkce používat nebude.

Souhlas, bohužel oni to takhle nevidí… proto jsem se zeptal na tohle řešení rfc akorát to prohodit, Space::Foo->bar() vždy volá funkci, ale to je prej nepochopitelný (hlavně pro začátečníky)…

Jod
Člen | 701
+
0
-

A keby dali miesto tých dvoch ::, dvojbodku len jednu? =)

wdolek: csharpík mám rád aj ja, len mrkvosoft ee, ani ten framework. Ale to bude asi tým, že som sa s ním pár rokov natrápil v praći ..teraz enem win, enem drôtNET, enem taq boleť hlava xD .S tou hlavou to bude asi zásluha nette a dibi <3

Editoval Jod (26. 10. 2008 21:37)

LM
Člen | 206
+
0
-

Dvojbodka nejde protože: $a ? SPACE : FOO

wdolek
Člen | 331
+
0
-

LM: a proto by bylo vhodne v nove verzi PHPcka zrusit spojovani stringu teckou :) a pouzit tecku. a zaroven znemoznit vytvareni funkci pro jmenny prostor… … a vubec nejlepsi bude, jak to tak pozoruju, prejit na neco uplne jineho :P cekal sem, ze PHP7 (co vim o PHP6 tak to stale nebude idealni) bude pouzitelne… a koukam, ze vyvojari zendu snad ani na pouzitelnosti nemaji zajem. jaka je cilova skupina „programatoru“ PHP?

romansklenar
Člen | 655
+
0
-

wdolek napsal(a):

jaka je cilova skupina „programatoru“ PHP?

Jelikož PHP vzniklo jako skriptovací programovací jazyk, tak asi bastliči / balastiči ;)

Objekty už jsou sice použitelné (ikdyž přetěžování konstruktorů a metod by nebylo na škodu?), ale přikláním se k názoru od LM: kdyby radši funkce a konstanty z namespaces vyházeli … když už to chcou pojat objektově, toto tam nemá co dělat a patří to do <PHP4 a budoucí verze PHP by neměly míchat hezký OOP kód s balastem ala PHP4 a níž. Takhle se to nikam nehne…

Editoval romansklenar (1. 11. 2008 20:28)

A.
Člen | 87
+
0
-

Bohuzel jsem stale ocekaval, ze jim dojde, jak je tato zmena dementni, ale zda se ze nikoliv :-(. Asi to bude chtit udelat reverzni patch na tu jeho zmenu a zachovat starou dobrou paamayim nekudotayim. Kdo se s tim ma ted prepisovat :-/?

romansklenar
Člen | 655
+
0
-

Nejvíce mě pobavilo, že vůbec uvažovali použít smajlíka jako oddělovač :) …

A.
Člen | 87
+
0
-

Ta tabulka je priserna, nic nevypovidajici. I ty dve hvezdicky by byly lepsi a criterium, ze to ma o znak vic a je to vic nachylny na typo … imho lol :-). By me zajimalo, jak merili, ze je pravdepodobnejsi, ze udelas chybu ve dvou hvezdickach nez v lomitku (naopak tam nekdo muze napsat opacny lomitko, zatimco dve hvezdicky napise i male dite, takze si myslim pravy opak).

To, ze je lomitko moc vysoke a splyne jako jeden znak s ostatnimi, to tam nemaj. To, ze si tam ten jeden autor prosadi sve a nasledne rekne neco ve stylu: „I still can't quite believe a decision was made,“ mluvi za vse.

TanisCZ
Člen | 80
+
0
-

A hlavně pro lidi co přecházeli a nebo programují v C++ jsou dve :: naprosto přirozeným jevem.
Zajímalo by mě, zda existuje nějaká náhrada za PHP :)

Jod
Člen | 701
+
0
-

Ako myslíš tú náhradu?

A.
Člen | 87
+
0
-

Python je fajn. Myslim, ze seznam se na nej snazi ve svejch „webovkach“ prejit. Sveho casu ho pry pouzival i google. Mas na vyber nespocet fremeworku a pokud nelpis na apache, nekde ti dokonce nabidnou perzistentni objektovy model v ramci celeho sezeni, takze se muzes chovat fakt „objektove“ a ne to jen simulovat ala php.

TanisCZ
Člen | 80
+
0
-

Tu náhradu jsem myslel tak, že bych se časem rád odpoutal od PHP co se týče vytváření webových aplikací…

No a na Python už mám taky zálusk, že testnu :)

veena
Člen | 98
+
0
-

Neuvažovali o pomlčce? –

David to implementoval v configu.

Vypadá to docela dobře. Nebo to s něčim koliduje?

romansklenar
Člen | 655
+
0
-

Pomlčku podle mě neuvažovali (stejne jako tečku) protože by to kolidovalo s mínuskem stejne jako ta tečka se spojováním řetězců.