http://blog.vlad1.com/2008/02/28/finding-the-os-x-...
Ou seja, se não foi a Apple que fez o software não vai rodar tão bem assim no OS X
Leia a ressalva que o autor incluiu no texto:
Slashdot seems to have picked up on this, and in typical style, has completely misunderstood the post. To be clear, I do not think that Apple is in any way trying to purposely "cripple" non-Apple software. I also do not think that undocumented APIs give Safari any kind of "significant performance advantage" (as Firefox 3 should show!). However, as I said, the undocumented functionality could be useful for Firefox and other apps to implement things in an simpler (and potentially more efficient) manner. I don't think this is malicious, it's just an unfortunate cutting of corners that is way too easy for a company that's not fully open to do.
Por aí se vê que ele não acha que a Apple propositadamente está escondendo o jogo para ganhar uma vantagem desleal.
Outra coisa interessante, a tal chamada não documentada está documentada no próprio código fonte, leia:
Continuando, a "reclamação" seguinte leva a uma documentação de mudança do WebKit! Quer dizer, existe uma documentação da não documentação?
A última reclamação leva a um header que não tem o código documentado, realmente não estava, mas quando existia documentação no código ele reclamou. Além disso as mudanças do header estavam todas documentadas.
Finalmente, me parece que todas as chamadas que iniciam com WK são chamadas à API do WebKit, assim como NS quer dizer NextStep e QT QuickTime. Se não me falha a memória o Firefox não utiliza o WebKit, mas sim o Gecko. Então por que ele está se preocupando tanto com a documentação do WebKit? Quem deveria se preocupar com isso é o pessoal do KHTML/Konqueror.
Muito estranho isso tudo.
yawara.br além da tecnologia.
Não há nada de estranho. Sim, o Firefox usa Gecko, e a Apple o WebKit. O problema é que essas APIs que não são públicas, não são chamadas ao WebKit, mas chamadas PARA o WebKit. São feitas especificamente para resolver problemas do WebKit, que são comum ao pessoal da Mozilla.
A Apple sabia da existência desses problemas, e prontamente criou APIs específicas para o WebKit, não documentou e nem divulgou. Nos últimos meses a Mozilla gastou um bom tempo tentando descobrir alternativas para esses problemas do OSX, e a Apple já havia resolvido em modo privado, e a solução era somente conhecida pelo pessoal do WebKit.
O pior é que a biblioteca que faz uso dessas APIs, é proprietária, portanto nem estudar essas APIs, a equipe da Mozilla pôde. Por isso que muita gente chiou...
Na verdade o pessoal do Firefox resolveu o problema sem chamar nenhuma API, foi só acertar um parâmetro no arquivo plist do programa que tudo rodou como o WebKit rodava.
O próprio post dele disse que esse parâmetro do plist está muito bem documentado pela Apple.
Ele só descobriu essa API pois o arquivo plist do Safari não utilizava esse parâmetro e para isso ele foi fuçar no código do WebKit.
Quer dizer, a solução existia e estava documentada.
yawara.br além da tecnologia.
Claro que resolveu, a equipe do Firefox é foda...
Agora, eles usaram a solução mais complicada, e é bom ressaltar que é esse o motivo da reclamação.
Sem usar a API, todas as aplicações que quiserem fazer uso do Firefox, por exemplo, terão que alterar os parâmetros dentro do plist. Usando a API, todas as aplicações que chamam o Firefox, teriam o comportamento esperado, sem nem precisar saber o que é plist.
Não tem menos cara de gambiarra? Por ser mais simples, não poderia ser melhor documentado?
Desculpe-me, mas a modificação do plist é muito mais simples que chamar uma API, são necessárias somente duas linhas xml para fazer isso.
Se você ler a documentação da Apple vai entender por que isso foi feito, está tudo bem explicado lá, por sinal a modificação do plist é a última solução recomendada, o pessoal do Firefox podia ter utilizado outra solução, mas foi pela mais simples, a tal que gambiarra que você falou.
yawara.br além da tecnologia.
É mais simples pra quem e sob qual aspecto? Como eu disse, qualquer programa que fizer referência ao Firefox, vai ter que adicionar essas linhas no XML. Se o controle fosse feito via código, seria muito melhor...
Acredite, se chiaram não foi sem motivos, eles sabem muito bem do que estão falando. Tanto que a equipe do Safari acabou até concordando em fornecer informações a respeito dessas APIs.
Membro desde: 19-Jul-2007
66 tibs