Vegyes érzésekkel várom PHP 6-ot. Egy részről dicséretes, hogy a Unicode support végre prioritást kapott, de sajnos akkor, amikor már elég sok mindenki fölkészítette a programját Unicode kezelésre. Szerintem, inkább konvertáló és adatfeldolgozó függvényekkel kellett volna bővíteni a palettát az egyetemes ki-be kapcsolgatás helyett. Ugyanúgy fogunk járni, mint a magic quotes-szal, hogy a programnak kell tudnia kezelni a Unicode dolgokat, nem a nyelvnek kell erre lehetőséget biztosítani. Főleg nem egy olyan HTTP-közeli nyelvnél, mint a PHP.
Amiket kiszednek (register_globals, magic_quotes, stb) az nagyon helyes, megfelelően idegesítő volt már így is.
64 bites integerekkel nem tudom, mit lehet kezdeni, hiszen aki ilyen méretű számokkal akar foglalkozni, az valószínűleg nem PHP-t fog használni. De azért legyen. Egy típussal több, amire föl kell készíteni a mindenféle függvényeket.
A goto ízlések és pofonok kérdése, én nem fogom használni annak ellenére sem, hogy nem lehet bárhova ugrani a kódban mégpedig azért, mert így könnyen kimaradhatnak egy-egy ciklus végéről a fontos lezáró részek. Kicsi hack-szagú.
A static binding szerintem, nagyon hasznos, lett volna már rá szükségem.
A hardened PHP patchet ugyan még nem próbáltam de hasznosnak hangzik.
A többi meg... megint csak ízlések és pofonok.
Összegezve, szerintem többségében jó lesz, úgyhogy alig várom.
Egy részről dicséretes, hogy a Unicode support végre prioritást kapott, de sajnos akkor, amikor már elég sok mindenki fölkészítette a programját Unicode kezelésre. Szerintem, inkább konvertáló és adatfeldolgozó függvényekkel kellett volna bővíteni a palettát az egyetemes ki-be kapcsolgatás helyett. Ugyanúgy fogunk járni, mint a magic quotes-szal, hogy a programnak kell tudnia kezelni a Unicode dolgokat, nem a nyelvnek kell erre lehetőséget biztosítani.
Kérdés, hogy sokan mennyire jól csinálták meg az Unicode szövegek kezelését, ebből a szempontból nem rossz, hogy maga nyelv fogja automatikusan jól kezelni. Szerintem a többség egy csomó problémás aprósággal nincs tisztában. Plusz valószínűleg az ICU által nyújtott lehetőségek túlmutatnak a különböző extensionök funkcióin. Az viszont szerintem is érdekes lehet, hogy ha valaki általános keretrendszert szeretne mondjuk írni, vagy valami hasonlót, akkor kb. ifezgetnie kell, vagy elfedni ezt valamiylen osztállyal. Majd kiderül, hogy ezzel kapcsolatban merre fejlődnek a dolgok.
64 bites integerekkel nem tudom, mit lehet kezdeni, hiszen aki ilyen méretű számokkal akar foglalkozni, az valószínűleg nem PHP-t fog használni.
Hát elég sok mindent lehet kezdeni. ;) Pl.: http://www.mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability, itt a kommenteknél olvashatsz pár cifraságot. De pl. mi használunk egy lekérdezés optimalizálására egyfajta bit maszkot, ott is gond volt abból, hogy nem tudsz 2 31. hatványa fölé menni egy integer esetén, és csak trükkös módon tudsz nagyobb számot előállítani, amire meg szükséged lehet, mert simán lehet biginted az adatbázisban.
A goto ízlések és pofonok kérdése, én nem fogom használni annak ellenére sem, hogy nem lehet bárhova ugrani a kódban mégpedig azért, mert így könnyen kimaradhatnak egy-egy ciklus végéről a fontos lezáró részek. Kicsi hack-szagú.
Ezt igazából pont ilyen célra is szánják, parserek esetén lehet hasznos, teljesítmény növelő eszköz.
A static binding szerintem, nagyon hasznos, lett volna már rá szükségem.
Ez tényleg jó, hogy végre rendbetették. Hol volt rá szükséged?
Szerintem is előremutatóak a változtatások, csak jó lenne, ha kicsit jobban tesztelnék az új funkciókat, ne legyen az, hogy a bevezetés után visszajelzések alapján még kicsit játszadoznk, azzal, hogy mi hogy működjön.
Nem tudom, tartok tőle, hogy a Unicode support kicsit olyan lesz, mint a magic quotes... majd meglátjuk. :)
A 64 bites intek... nem tudom, ha ilyen dolgokat csinálnék, akkor valszeg extension írnék hozzá, de végülis jó hogy beletették.
.. static binding: azt hiszem, statikus metódusok kellettek. Nem kartam mindenhol példányosítani az osztály, mert gyakorlatilag egy toolkit osztály volt. :)
A 64 bites intek... nem tudom, ha ilyen dolgokat csinálnék, akkor valszeg extension írnék hozzá, de végülis jó hogy beletették.
Írnál egy extensiont kettő hatványainak össze éseléséhez? ;)
Nem kartam mindenhol példányosítani az osztály, mert gyakorlatilag egy toolkit osztály volt. :)
Ezt eddig is bármikor megtehetted még PHP4-ben is. Ez a módosítás másról szól: próbáld ki az alábbi példát:
<?php
class A
{
static function foo()
{
self::bar();
}
static function bar()
{
echo "A::bar";
}
}
class B extends A
{
static function bar()
{
echo "B::bar";
}
}
B::foo();
?>
Intuitív módon az ember azt várná, hogy ez "B::bar" szöveget jeleníti meg, de nem. Na most PHP6-ban a static::bar() hívás hatására már ez a szöveg fog megjelenni.
hát nem tudom... ez a bitmaskos kérdés azért zavar engem. én ma már felnőttebb megoldásnak gondolnám egy osztályban jelölgetni a biteket, ami log(n)/32 darab intben tárolja, vagy ahogy épp hatékony. vagy ennyire hatékonyságra kihegyezett kód kellett, hogy ez az osztály sem fért bele? vagy nem értem(?).
Miért lenne gyorsabb számok összeéselése egy extensiönben? Ez kb. a nyelv esetén is C kód végzi, egy extensiön esetén meg még ott vannak járulékos tenni valók.
Valakinek volt problémája a változók elérésével, úgyhogy inkább nem is kisérleteztem vele, nem volt rá fölösleges energiám. ;) De köszi a felvillanyosítást.
Igen, a named variables elég érdekes játék. De szvsz nem ér meg annyit, hogy ne lehessen eval()-lal helyettesíteni.
A dollárral -- amellett, hogy teljesen feleslegesen kell begépelni, és nehézkes is -- még más baj is van: különválasztja a függvény-, osztály- és mezőneveket a többi változótípustól (már a tokenek szintjén). Pedig hát minden nyelvben (magában a php-ban is) ezek közt eléggé elmosódik a határ.
Ezek egy dologban mind közösek: azonosítók (tokenizációs értelemben beszélek). És a tokenizáció szintjén nem kéne az azonosítókat két csoportra bontani. Mi a különbség egy objektum mezője és egy "sima" változó között? Semmi, mégis fölöslegesen beléjük kavar a szintaxis.
Elég következetlenül néz ki például egy osztálydeklarációban ez:
class Pager {
public $count;
public function __construct($x) {
$this->count = $x * 2;
}
Az is enyhén gáz, hogy nem lehet függvényeket újradeklarálni, persze csak ha dolláros változóba rakjuk őket.
És mind-mind a dollár miatt... fölösleges őskori kavarás ez...
De szvsz nem ér meg annyit, hogy ne lehessen eval()-lal helyettesíteni.
Az egyik legjobb dolog a PHP-ban. Rengeteg dolgot lényegesen könnyebb így leprogramozni, mint más nyelvekben. Az eval-t meg erre használni elég rossz megoldás lenne, nem egy teljesítmény bajnok.
$this->count
Én pl. speciel szeretem ezt a formát, mert jól olvasható a kódban, hogy mi lokális változó, mi osztály változó.
Az is enyhén gáz, hogy nem lehet függvényeket újradeklarálni, persze csak ha dolláros változóba rakjuk őket.
Én pl. speciel szeretem ezt a formát, mert jól olvasható a kódban, hogy mi lokális változó, mi osztály változó.
Úgy is elég jól látható, hogy this.count, nem?
Megpróbáltam utánanézni, állítólag a perlből van átvéve a dollározás; meg ha általában szintaxisról van szó, akkor azzal szokták védeni a php-t, hogy nem metaprogramozásra lett kitalálva. És mondjuk template-elés szempontjából tényleg előnyös, az idézőjeles stringben való behelyettesítést nagyon megkönnyíti. Ez valóban jó, nem kell megszakítani a stringet. Kíváncsi vagyok, a python és a ruby erre milyen lehetőségeket nyújt...
Ezt hogy érted (és miért a dollár miatt)?
A fv.-újradeklaráció php-ban tilos. Pedig ez hasznos dolog tudna lenni, például CMS-ek esetében, ahol felül lehetne írni default template-fv.-eket. Persze lehet változóba is függvényt tenni, de akkor megint keveredik a dolláros a nem dollárossal, egy számomra érdektelen különbséget mutatva, hogy az illető fv. újradeklarált vagy sem.
Is-is
Amiket kiszednek (register_globals, magic_quotes, stb) az nagyon helyes, megfelelően idegesítő volt már így is.
64 bites integerekkel nem tudom, mit lehet kezdeni, hiszen aki ilyen méretű számokkal akar foglalkozni, az valószínűleg nem PHP-t fog használni. De azért legyen. Egy típussal több, amire föl kell készíteni a mindenféle függvényeket.
A goto ízlések és pofonok kérdése, én nem fogom használni annak ellenére sem, hogy nem lehet bárhova ugrani a kódban mégpedig azért, mert így könnyen kimaradhatnak egy-egy ciklus végéről a fontos lezáró részek. Kicsi hack-szagú.
A static binding szerintem, nagyon hasznos, lett volna már rá szükségem.
A hardened PHP patchet ugyan még nem próbáltam de hasznosnak hangzik.
A többi meg... megint csak ízlések és pofonok.
Összegezve, szerintem többségében jó lesz, úgyhogy alig várom.
re: Is-is
Szerintem is előremutatóak a változtatások, csak jó lenne, ha kicsit jobban tesztelnék az új funkciókat, ne legyen az, hogy a bevezetés után visszajelzések alapján még kicsit játszadoznk, azzal, hogy mi hogy működjön.
Üdv,
Felhő
Válasz. :)
A 64 bites intek... nem tudom, ha ilyen dolgokat csinálnék, akkor valszeg extension írnék hozzá, de végülis jó hogy beletették.
.. static binding: azt hiszem, statikus metódusok kellettek. Nem kartam mindenhol példányosítani az osztály, mert gyakorlatilag egy toolkit osztály volt. :)
néha azért macerás ezt kitölteni
Üdv,
Felhő
bitmask
lekérdezés!
Itt adszerverekről volt szó, ahol olyan 100 milliós nagyságrendű hit van.
Üdv,
Felhő
extension
az éselés? :/
Üdv,
Felhő
Nem az éselést
ez az egész feladat
Üdv,
Felhő
ilyesmitől tartottam:)
Változó
Nagyon jó!
Sztem nem
Dollár
máshol is
Nekem tetszik
Például mostanában használtam ilyesmit:
nem ér meg annyit
A dollárral -- amellett, hogy teljesen feleslegesen kell begépelni, és nehézkes is -- még más baj is van: különválasztja a függvény-, osztály- és mezőneveket a többi változótípustól (már a tokenek szintjén). Pedig hát minden nyelvben (magában a php-ban is) ezek közt eléggé elmosódik a határ.
Ezek egy dologban mind közösek: azonosítók (tokenizációs értelemben beszélek). És a tokenizáció szintjén nem kéne az azonosítókat két csoportra bontani. Mi a különbség egy objektum mezője és egy "sima" változó között? Semmi, mégis fölöslegesen beléjük kavar a szintaxis.
Elég következetlenül néz ki például egy osztálydeklarációban ez:
És mind-mind a dollár miatt... fölösleges őskori kavarás ez...
már hogyne érne meg
Üdv,
Felhő
re: megéri
Úgy is elég jól látható, hogy this.count, nem?
Megpróbáltam utánanézni, állítólag a perlből van átvéve a dollározás; meg ha általában szintaxisról van szó, akkor azzal szokták védeni a php-t, hogy nem metaprogramozásra lett kitalálva. És mondjuk template-elés szempontjából tényleg előnyös, az idézőjeles stringben való behelyettesítést nagyon megkönnyíti. Ez valóban jó, nem kell megszakítani a stringet. Kíváncsi vagyok, a python és a ruby erre milyen lehetőségeket nyújt...
A fv.-újradeklaráció php-ban tilos. Pedig ez hasznos dolog tudna lenni, például CMS-ek esetében, ahol felül lehetne írni default template-fv.-eket. Persze lehet változóba is függvényt tenni, de akkor megint keveredik a dolláros a nem dollárossal, egy számomra érdektelen különbséget mutatva, hogy az illető fv. újradeklarált vagy sem.