Posts Tagged ‘rfc’

Co by było gdyby ? – pomysły na PHP

Posted in php, programowanie on October 16th, 2010 by Wojciech Soczyński – 41 Comments

Jeżeli śledzicie dzone.com. Pewnie zauważyliście, że od pewnego czasu na blogach osób związanych z Javą przetaczają się dwa związane ze sobą tematy. Pierwszym z nich jest kwestia uczynienia Javy wolną (udostępnienie jej na wolnej licencji, uniezależnienie od Oracle) a drugim z nich jest kwestia zmian w języku. Kilka osób poddało pomysł aby zrobić fork Javy wydany na jednej z licencji open-source’owych. Co do zmian w języku to część osób rozczarowana tym jaki kształt ma w tej chwili język oraz powolnym wprowadzaniem nowości do niego doszła również do wniosku, że najlepiej było by stworzyć nową wersję Javy niekompatybilną wstecznie – Backward Incompatibile Java. Znalazło się jak to zwykle bywa sporo osób, które stwierdziły ze oba pomysły jak najbardziej idą ze sobą w parze i proponują stworzenie “wolnego” forka Javy i rozwijanie go w sposób niekompatybilny wstecznie. Mnie nasuwa się jedynie pytanie, czy taki fork dalej będzie (i będzie można go nazywać) Javą ?

Postanowiłem odnieść tą sytuację do własnego podwórka i zastanowić się co by było gdyby stworzyć fork interpretera PHP. Jakie zmiany ja przeprowadziłbym w języku i dlaczego oraz czy po tych zmianach ten fork można by nazwać jeszcze PHP. Zachęcam też wszystkich do zabawy i wpisywania własnych propozycji.
read more »

Nowości z php.internals – rfc: comparable interface

Posted in php, programowanie on September 30th, 2010 by Wojciech Soczyński – 11 Comments

Z ostatniej chwili – Adam Harvey w swoim wpisie na grupie php.internals, zaproponował aby dodać do języka możliwość przeciążania operatorów porównania: >,<,== etc. Implementacja miałaby polegać na dodaniu interfejsu podobnego do countable nazywającego się “comparable”. Klasa, która implementowała by ten interfejs mogła by zaimplementować we własny sposób ten operator. Został utworzony odpowiedni dokument RFC wraz z patchem na najnowszą wersję w repozytorium. Funkcjonalność ta jest prawie dokładną kalką z Javy.

Moim zdaniem idea jest dość ciekawa, a Wy co myślicie ?

Nowości z php.internals – bitwa o adnotacje

Posted in php, programowanie on September 23rd, 2010 by Wojciech Soczyński – 15 Comments

Sprawa adnotacji wywołała dość duże poruszenie na liście php.internals. Uformowały się trzy grupy dyskutantów – jedna popierająca adnotacje, druga uważająca, że jest to zupełnie nie potrzebne i komplikuje język i trzecia która stara się znaleźć kompromis.
read more »

Nowości z php.internals – return type hint

Posted in php, programowanie on July 30th, 2010 by Wojciech Soczyński – 28 Comments

W jednym z niedawnych wpisów na internalsach, Felipe Pena przedstawił propozycję wprowadzenia typowania zwracanych zmiennych przez funkcje. Jest to funkcjonalność którą znamy z języków statycznie typowanych, gdzie każda funkcja musi mieć zdefiniowany typ zwracanej zmiennej. Propozycja opublikowana jako RFC zawiera patch, który każdy może przetestować u siebie, jeżeli wie jak kompilować php ze źródeł. Patch jest kompatybilny ze znajdującym się w trunku patchem dotyczącym typowania argumentów funkcji (dostępne są pseudotypy scalar i self bodajże).

Przykład (skopiowany z RFC):

function scalar abc($x = NULL) {
	return $x;
}
 
var_dump(abc(1));  // int(1)
var_dump(abc(1.)); // float(1)
var_dump(abc());
/*
PHP Catchable fatal error:  The returned value must be of the type scalar,
called in ... on line 9 and returning in ... on line 4
*/

Jak dla mnie sam feature może być, natomiast składnia nie do końca mi się podoba, wg mnie jest mało czytelna, wolałbym coś a’la ActionScript3:

function foo($arg):bar {
    return $arg+1;
}

A Wy co sądzicie o tym ficzerze ?

Nowości z php.internals – domknięcia i $this

Posted in php, programowanie on July 23rd, 2010 by Wojciech Soczyński – Be the first to comment

Na jednym z ostatnich wpisów na internalsach wyszło na jaw, że w najbliższej większej wersji php (5.x lub 6), do obecnej funkcjonalności domknięć (closures) dodana zostanie obsługa $this. Obsługa ta będzie zaimplementowana tak jak opisano w podpunkcie A) odpowiedniego RFC. Oznacza to, że zmienna $this będzie mogła być wykorzystywana tylko w domknięciu stworzonym wewnątrz jakiegoś obiektu i będzie zawsze wskazywała na obiekt w którego kontekście została utworzona. Otwiera to trochę nowych możliwości związanych np z delgacjami – tworzeniem event handlerów itp.

Dla mnie pozostaje jednak pewien niedosyt związany z tym rozwiązaniem. Szkoda, że nie wprowadzono możliwości bindowania zmiennej $this (i innych zmiennych) do aktualnego kontekstu tak jak opisano w zmodyfikowanej propozycji A)

Przy okazji chciałem poinformować, że pokazała się wersja php 5.3.3. Oprócz poprawek błędów została zmieniona jedna ważna rzecz – metody o nazwie takiej samej jak klasa nie są już traktowane jak konstruktory – w przypadku kodu który jest napisany z użyciem namespace’ów – jest to moim zdaniem dobry krok w kierunku usuwania historycznych zaszłości w języku. Mam nadzieje, że w przyszłych wersjach całkowicie usunięte zostaną konstruktory w starym stylu.

Jakie jest Wasze zdanie o wprowadzonych zmianach ?