Snow Leopard, il nuovo sistema operativo per Mac - nome ufficiale OS X 10.6 - è uscito da circa una settimana, ma a me è arrivato solo ieri: l’ho ordinato cinque minuti dopo che è stato reso disponibile su Apple Store, ma sono stato taccagno e ho chiesto la spedizione per posta invece di quella per corriere.

La novità di questa versione del sistema è che… non ha novità. Non di facciata, almeno. La vera novità è che è stato ottimizzato, corretto, sistemato, perfezionato, e che quindi una volta installato anziché trovarsi con un computer più lento e meno spazio sul disco, come da mondo è mondo accade quando si installava una nuova versione di un sistema operativo, ci si ritrova invece con un sistema più snello e più veloce. E più stabile.

Ogni tanto giusto per il piacere di farlo “quitto” Mail. Prima ci metteva due o tre minuti buoni a uscire, tanto che spesso “annullava” lo spegnimento del computer a causa del time out. Ora quitta così velocemente che non riesco a togliere il dito dalla “Q” che la lucetta sotto l’icona è già spenta. Che godimento. E riparte quasi altrettanto rapidamente. Wow.

Però, qualche problemino l’ho incontrato comunque. Non tanto problemi del sistema quanto di applicazioni non compatibili (di Little Snitcher ho dovuto installare una beta; Sapiens non funziona più bene; Linotype Explorer mi aveva incasinato le font e ho dovuto toglierlo).

Nel mio caso in particolare l’impatto più grave è stato con il php. Snow Leopard installa la versione 5.3 di php, contro la 5.1 (o giù di lì) che installava Leopard. Già con Leopard era stato un mezzo trauma, perché mi aveva costretto a rendere tutto il mio software php compatibile con php 5.0, mentre fino al giorno prima lavoravo tranquillamente col 4.

Con il 5.3 i signori della Zend hanno deciso di rompere le balle in modo pesante. Hanno deciso per esempio che nel php.ini va inserita una riga che dica date.timezone=”Europe/Rome”, altrimenti ogni volta che viene usata un’istruzione che abbia a che fare con tempo e date ti spara a video un warning, anche coi warning disabilitati.

Ancora meglio, hanno deciso che “split” adesso è deprecata. E perciò ogni volta che c’è split ti viene fuori il messaggio sulla pagina che l’istruzione è deprecata. Puoi usare preg_split se vuoi usare un’espressione regolare, o explode se lo splittaggio è semplice. Split veniva usata in entrambi i casi, quindi non te la cavi con un “cerca e cambia”; devi guardare ogni singola occorrenza e decidere. Ho provato a fare una ricerca con BBEdit nella mia directory dei lavori php e le occorrenze erano più di 2500; tra l’altro anche in software non miei, tipo PhpBB.

Poi hanno deciso che non puoi usare parole chiave come nomi dei metodi. Io in una mia classe fondamentale avevo usato goto, e ora non lo posso più fare. Devo cambiare la classe e andarmi a cercare tutti i posti in cui veniva chiamato quel metodo.

E poi ho trovato anche un buggettino: mysql_num_fields mi ritorna “5000″ invece del corretto numero di campi di una tabella. E il php letteralmente crasha quando il ciclo cerca di accedere al campo successivo all’ultimo. Ci ho messo un po’ a beccare questo problema, perché non dava nessun messaggio d’errore: pura e semplice pagina bianca.

Insomma, grazie, diciamo che ho trovato lo stimolo giusto a patchare il mio software in modo da farlo girare su php 5.3.