Apple, spuntano le API segrete di Mac OS X

Uno sviluppatore di Firefox cercando di risolvere un problema di compatibilità su Mac si è imbattuto nelle diverse soluzioni approntate da Safari scoprendo come si basino su metodi e funzioni non documentate nelle API pubbliche e quindi nascoste da Apple
Uno sviluppatore di Firefox cercando di risolvere un problema di compatibilità su Mac si è imbattuto nelle diverse soluzioni approntate da Safari scoprendo come si basino su metodi e funzioni non documentate nelle API pubbliche e quindi nascoste da Apple

Una recente scoperta di uno sviluppatore al lavoro su Firefox 3 potrebbe gettare una luce leggermente diversa sull’atteggiamento Apple nei confronti della competizione sui propri sistemi, atteggiamento che fino ad ora è sempre sembrato molto più libertario del rivale Microsoft.

Senza cercare sensazionalismi o estremizzazioni dei fatti la questione è stata sollevata da Vladimir Vukićević, che cercando di risolvere un problema che impediva alla terza release di Firefox di scorrere bene sui sistemi Apple si è imbattuto nelle soluzioni approntate per Safari scoprendo che sfruttano API non documentate, ovvero meccanismi del sistema operativo che la casa madre non divulga (a differenza degli altri).

Esisterebbero delle funzioni di Mac Os X a cui gli sviluppatori non possono accedere e che dunque sono riservate ai software della mela, cosa che di fatto crea una disparità di potenzialità tra programmatori interni ed esterni alla Apple. Per comportamenti similari la Microsoft è stata più volte giustamente messa in croce. Ma Vukićević non ha assolutamente voluto accusare Apple di comportamento scorretto, di svantaggiare gli sviluppatori indipendenti o di utilizzare porzioni migliori di codice: semplicemente ha fatto notare come sia difficile muoversi in un ambito non documentato. E nonostante in rete stiano fiorendo crociate complottistiche, da Cupertino arrivano parole che sembrano del tutto ragionevoli.

Uno sviluppatore di Safari infatti, David Hyatt, commentando il post di Vukićević ha fatto notare come possano esistere molte legittime ragioni per nascondere le API: «Molti dei metodi privati usati da WebKit [il software alla base di Safari] sono privati e con un motivo. O espongono il funzionamento di strutture interne che non possono essere divulgate, o fanno parte di qualcosa interno al sistema operativo che potrebbe non essere stato completato». In sostanza potrebbe anche trattarsi di funzioni che vengono sperimentate da Apple per testarne la resistenza e l’affidabilità prima di metterle a disposizione di tutti.

Alla fine Vukićević ha raggiunto il suo scopo e riparato il problema, ma ha dovuto aggirare il tutto in una maniera che sarebbe molto più semplice ed efficiente se potesse sfruttare gli stessi meccanismi sfruttati da Safari. A quanto pare di simili meccanismi “segreti” ne esisterebbero almeno un centinaio nelle librerie del sistema operativo.

Ti consigliamo anche

Link copiato negli appunti