=&, sequel

27 Aug 2004

Uff. Wakacje w express-mode za plecami. Pora wrócić do reality (planuj se planuj, a realita je ina). Tydzień na powrót to i tak za dużo.

W sieci gwar: 13 lat Linuksa, zamieszanie w kernelu związane z brakiem stabilnego ABI i GNU/puryzmem linuxkerneldeveli, ReiserFS v4 włączony do 2.6, zamieć wokół WinXP SP2. Aż pozwolę sobie to wszystko olać i jeszcze powrócić do nie-tak-wcale-dawnej zmiany semantyki operatora przypisania w PHP 5.

Właśnie rozważałem sobie jak by tu zrobić coś na kształt include() czy require() w stosunku do drzewa wygenerowanego poprzez sparsowany XML. I tak doszedłem do niezbyt błyskotliwego wniosku, że można to zrobić przez $xml1['gałąź']=&$xml2;. No właśnie - &. Dlaczegożby tablic jako typów !prostych nie traktować jak obiektów? Przecież częściej referuje się do tablic niż je kopiuje! Częstokroć programiści (nawet w komentach do tutoriala na php.net) nadużywają kopiowania tablic, choć zwykle wystarczyłaby referencja do nich. A takie kopiowanie potrafi kosztować. Czas i pamięć. A nie wiadomo co siedzi w php.ini. A nuż max_execution_time=5, alibo memory_limit=1M? Kopiowanie tablic przez =clone w moim odczuciu byłoby dużo lepsze (jeśli już trzymamy się tego głupawego rozróżnienia semantyki = dla obiektów i prymitywów). Zmuszałoby to koderów do częstszego zastanawiania się nad na prawdę ważnymi sprawami. Zgadzam się, że nie ma co zawracać sobie różnych części ciała, czym kto pracuje, referencjami do głupich intów, ale tablica haszująca na 5MB to już nie przelewki.

To mój postulat na dobrą część tego dnia: gimme "=" == "=&" for []s or phuckoff.
Co? Nieee, spokojnie. Nie obraziłem się jeszcze na świat ;-)

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

permalink | trackback | rss

 
 
zdzichuBG

Z tym reiserem to bullshit, wcale nie został włączony do 2.6 i przez długi czas jeszcze nie będzie. Na razie jest w drzewie -mm i zbiera cięgi, do -linux mu jeszcze daleeeeeeeeko.

str()

Czytujesz czasem lkml czy tylko digesty z trzeciej ręki?

Your turn:

nick:
and?:
www (if any):
Wpisz kod:code