Como já vi que não te deste ao trabalho de ler o artigo ou sequer de te informar sobre o que falas, eu faço um pequeno apanhado da situação:
A Microsoft, para ostentar a bandeira de que afinal até cumprem os standards e são amigos da interoperabilidade de sistemas, anunciou o suporte nativo a ODF no SP2 do Office 2007. Para referência futura, vai dar uma espreitadela
à press release em que o fizeram e conta o número de vezes que aparece a palavra "interoperability" ou variações da mesma (13, eu contei).
Ignorando o facto de já haver um
projecto patrocinado pela Microsoft para conversão ODF-OOXML (e que até funciona razoavelmente), a MS começou do zero ou lá perto a implementar a especificação ODF 1.1, que não define formatos para
spreadsheet formulas (serão apresentados na 1.2). Antes que comeces a refilar que o formato é incompleto e o OOXML afinal é que é bom, é preciso referir que esta tarefa é incrivelmente difícil. E lembro-te que o próprio formato da MS tem sido criticado por ter dezenas de inconsistências e falhas (não descreve unidades, não tem em atenção diferenças de localização, erros tipográficos, etc).
Continuando. Quem está a programar uma implementação de uma especificação e tem como principal objectivo a interoperabilidade, o que faz quando encontra algo que não está fully documented? Encontra-se com os representantes das outras implementações existentes e tenta chegar a uma solução conjunta, certo?
Errado. A Microsoft decidiu descartar tudo o que já existia e adoptar a seguinte estratégia:
- ao ler ODF, ignorar todas as fórmulas presentes que não reconhece e gravar ao invés o último valor que continham. Células que utilizam fórmulas auto actualizáveis como TODAY(), etc, ficam inutilizadas.
- ao escrever ODF, utilizar um novo formato para as
spreadsheet formulas. Este formato não é o utilizado pelo OpenOffice ou pelas outras aplicações que lêem ODF, não é o do ODF 1.2, nem sequer é o do OOXML. Só mesmo em Redmond sabem o que aquilo é. Resultado? A partir de agora, quem quiser ler um documento ODF produzido pelo Office 2007, ou compra o Office 2007, ou é obrigado a fazer reverse engineering.
O que é verdadeiramente irónico em toda esta situação é que a
formula language utilizada pelo OpenOffice (que a Microsoft rejeitou por não estar suficientemente documentada) é baseada na do próprio Excel. Além disso, volto a lembrar que já existia um plugin patrocinado pela MS para o Office 2007 que funcionava correctamente. A Microsoft tinha à escolha duas maneiras de produzir uma solução que fosse compatível com as outras soluções já existentes, mas deu-se ao trabalho de intencionalmente dar cabo da interoperabilidade.
Porquê, perguntas tu? A Microsoft passa assim a ser, por ter a suite de Office mais vendida no mundo, a principal empresa a produzir documentos no formato ODF. As empresas mais pequenas vão-se ver obrigadas a fazer reverse engineering do produto se quiserem ter soluções que funcionem com as da grande empresa. Até haver soluções que funcionem correctamente (ou até a MS se lembrar de alterar mais alguma coisa), as pessoas são obrigadas a usar a suite da Microsoft.
Embrace, extend, extinguish.