É interessante se fazer a pergunta: por que x é importante? Antes de iniciar o desenvolvimento do projeto ODFEasy, sabia que ODF seria algo “importante”, mas nunca havia sentido na pele a sua necessidade. Afinal de contas, se já temos o Microsoft Office, por que precisamos de outro formato? A pergunta se responde: exatamente porque temos o Microsoft Office e, basicamente, APENAS o Microsoft Office.
Como desenvolvedor, 95% das vezes, opto por trabalhar com ferramentas abertas, principalmente Java. E, neste processo, vez por outra faz-se necessária a geração de arquivos no formato do Office (no meu caso, 99,9% das vezes, planilhas). É aí sempre o mesmo problema retorna. Se você está desenvolvendo na plataforma .net, sempre há como integrar sua aplicação ao Office via automação e, a partir dai, gerar o que você sonhar. Se não quiser trabalhar com automação, há uma ou outra biblioteca que lhe auxilia na geração desta tarefa. Normalmente, estas bibliotecas não abrangem 100% do formato, mas acabam por quebrar o galho.
Já se você trabalha com alguma plataforma aberta, como Java, as coisas começam a ficar mais complicadas. Para começar, as bibliotecas que possuímos estão bem distantes de serem apropriadas. Podemos criar planilhas e arquivos do Word, mas não podemos nos aprofundar muito na geração destes documentos. Se você quiser, por exemplo, incluir um gráfico em uma planilha (foi o meu caso), terá de primeiro criar um documento de modelo, incluir no mesmo suas séries, o gráfico em questão, definir o número de ocorrências e, posteriormente, programaticamente, simplesmente substituir o valor destas células. Limitação total.
Há ainda problemas provenientes de optar-se pela automação: para começar, seu cliente terá de ter o Microsoft Office instalado (traduzindo: Linux está fora da jogada). Isto sem mencionar que a geração de documentos via automação é leeeenta.
E a razão pela qual as bibliotecas para geração deste tipo de documentos ser tão limitada é simples: quase tudo o que sabemos sobre o formato Microsoft Office até agora é a partir de engenharia reversa. Só neste ano a Microsoft liberou a especificação destes formatos, sendo assim, ainda não deu tempo para estas bibliotecas compreenderem de fato como são estruturados estes arquivos. Claro, há também o OOXML, mas caso optemos por este formato, novamente estaremos nos prendendo a um único fornecedor. A solução, portanto, consiste em buscar um formato alternativo para se gerar documentos. É quando o OpenDocument entra em cena.
OpenDocument consiste em um padrão independente de fornecedor e 100% aberto para representar arquivos de escritório. Se é 100% aberto, isto significa que qualquer um pode conhecer sua estrutura e, com base na mesma, criar documentos neste formato. E se é independente de fornecedor, não precisamos nos preocupar se amanhã existirá um OpenOffice ou não. Nossos documentos serão suportados por outro fornecedor sem problemas, com 100% (ao menos em teoria) de compatibilidade. O mesmo não pode ser dito dos seus arquivos do Office.
Do ponto de vista do desenvolvedor, isto equivale a liberdade total. Ao adotar-se o padrão ODF, o desenvolvedor não precisa se preocupar com o fato de seus clientes possuirem ou não o Microsoft Office. Não é necessário se preocupar com o fato de sua biblioteca suportar os recursos x,y ou z do formato, pois caso a mesma não possua este suporte, editar estes arquivos é extremamente simples. Afinal de contas, basicamente, consistem em arquivos XML! E o melhor: trata-se de uma tecnologia REALMENTE gratuita.
Antes da criação do formato OpenDocument, se alguém quisesse criar uma suite de produtividade, teria de gastar uma fortuna com o desenvolvimento de seu próprio formato, além de fornecer suporte aos demais formatos utilizados pelas demais suites. Hoje, este custo diminuiu absurdamente, uma vez que não é mais necessário investir no desenvolvimento de formatos proprietários. Basta seguir o padrão definido pelo comitê responsável pelo desenvolvimento do padrão. E se quiser incluir algo específico da sua aplicação? No problem! O padrão OpenDocument já prevê estas necessidades e propicia aos desenvolvedores lidar com estas peculiaridades sem denegrir o padrão. Sendo assim, é óbvio que o formato será o futuro, correto?
E aqui entra a minha preocupação. Mesmo com todas estas vantagens, não vejo muitos desenvolvedores (ao menos aqui no Brasil) se interessarem pelo formato. Ao buscar informações no GUJ (neste link há a busca pelo formato ODF), por exemplo, a respeito da geração de documentos no formato ODF, fiquei besta ao perceber quão poucas são as dúvidas. A maior parte dos posts diz respeito a notícias relacionadas, Ao postar no fórum sobre o projeto ODFEasy, fiquei chocado ao notar que só obtive UMA resposta! O que me fez parar para pensar sobre a real necessidade do projeto.
Ao que tudo indica, a comunidade de desenvolvedores não encontra-se atenta para este formato. Basta observar quão poucas são as bibliotecas existentes hoje para a geração de documentos. Ao navegar pela mail list do projeto ODF Toolkit (que visa a criação de ferramentas que possibilitem a geração de documentos ODF via código), percebe-se que não é uma lista tão ativa quanto deveria ser. Sinceramente, a impressão que tenho é a de que todos estão esperando que algo apareça para facilitar a tarefa, porém poucos de fato fazem alguma coisa a respeito. Claro: há também o fato de hoje o Microsoft Office ser dominante, e que nossos clientes de fato querem arquivos do Office, e não do OpenOffice, porém, convém mencionar que isto é o AGORA. Se nada for feito, iremos ter os problemas que citei acima indefinidamente.
Dado que estes problemas são percebidos mais claramente por desenvolvedores, e não por usuários finais, cabe a nós fazer algo a respeito, buscando conhecer melhor o formato, criando ferramentas que facilitem a criação de documentos e, principalmente, expondo aos nossos clientes os ganhos provenientes da adoção do formato.
No que diz respeito à computação pessoal/corporativa, existem os seguintes pilares:
- Sistemas operacionais: temos o Linux, Solaris, Mac OS e BSD brilhando aonde antes havia apenas Windows.
- Bancos de dados: temos MySQL, PostgreSQL, Firebird, HSQLDB e diversos outros SGBDs que tornaram a compra de SGBDs proprietários algo do passado.
- Ferramentas de desenvolvimento: Java, C/C++, Perl e todas as linguagens abertas que, uma vez aprendidas, se mostram infinitamente superiores às ferramentas proprietárias que dominavam até então, como o Visual Studio, Delphi, etc.
- Criação de documentos: temos o OpenOffice, e o Microsoft Office dominando TODO o mercado (causando os problemas que acima citei).
Como pode ser visto, três dos pilares já estão sólidos. Falta apenas um! Pessoas compram computadores hoje para dois propósitos: navegar na Internet (e esta sim é baseada em padrões abertos) e criar documentos. A partir do momento em que passarem a gerar documentos usando padrões abertos, não precisarão mais gastar 200,300,400,600 reais com Windows + 100 reais com anti-vírus. Poderão usar Linux, BSD, Solaris, Mac OS, o que quiserem.
E como consequência, nós, desenvolvedores, não ficaremos presos a uma única plataforma nem seremos limitados ao que o fornecedor da plataforma dominante QUER abrir ou não.
Boa noite,
Ótimo post. Valeu mesmo.
Estou atualmente trabalhando num projeto JavaEE, do qual os clientes a priori farão uso através de client Desktop (aplicação em Swing). Ainda estamos desenvolvendo o framework de base enquanto o pessoal da análise gera o que utilizaremos para desenvolver o sistema em si. Uma das coisas cogitadas para o sistema foi a “exportação” de dados para (ai) Excel, mas como nós (pelo menos a equipe de desenvolvedores) defendemos, apoiamos e utilizamos muito soluções OpenSource/Livre como Linux, PostgreSQL, JBoss, Hibernate, Netbeans, etc, vou ficar de olho no andamento do ODFEasy e, quando chegar a hora, tentar convencer o pessoal de gerarmos ODFs ao invés de formatos proprietários. Aliás, quando o projeto estiver pronto vamos encorajar os clientes a o utilizarem sobre plataforma livre, não será nosso sistema um motivo para utilizarem rwindows.
Valeu!
Você disse:
“Ferramentas de desenvolvimento: Java, C/C++, Perl e todas as linguagens abertas que, uma vez aprendidas, se mostram infinitamente superiores às ferramentas proprietárias que dominavam até então, como o Visual Studio, Delphi,”
Eu digo, só para constar:
O que eu faço em 2h em Delphi vc não faz em 2 dias com o swing.
De resto, excelente post.
“””Você disse:
“Ferramentas de desenvolvimento: Java, C/C++, Perl e todas as linguagens abertas que, uma vez aprendidas, se mostram infinitamente superiores às ferramentas proprietárias que dominavam até então, como o Visual Studio, Delphi,”
Eu digo, só para constar:
O que eu faço em 2h em Delphi vc não faz em 2 dias com o swing.”””
Fabrício, realmente, me desculpe. Não fui feliz nesta colocação. Não no que diz respeito à qualidade do Visual Studio ou o Delphi. Sôou inclusive arrogante, não acha?
No entanto, convém mencionar o ganho que nós temos com as ferramentas abertas. Pra começar, pelo fato de não ficarmos presos a um único fornecedor (tal como, inegávelmente, ocorre com as ferramentas que usei como exemplo) e, o que é ainda mais interessante, a possibilidade REAL de intervir no futuro da ferramenta. Na realidade, foi mais ou menos isto o que eu quis expressar nesta parte do post. De acordo?
Uma ide RAD é diferente de um G++.
Uma ide precisa de foco. E foco não se consegue desenvolvendo com um comitê.
Crie um form no Delphi, com comportamento e tratamento visual complexo e interfaceando em 3 camadas. Com 3 cliques e 10 minutos depois, temos o primeiro form derivado. Passe mais um horinha e vc já tem 6. No total,7. (Isso acontece DE FATO no dia a dia com um form padrão bem feito)
Agora, altere a composição visual do form original com os forms filhos abertos. A IDE atualiza quase que em tempo real os forms derivados.
O dia que o NetBeans fizer isso e java tiver propriedades ativas, eu não vou mais zoar rsrsrsrs
Fabricio,
O foco deste artigo não é dizer que IDEs pagas são ruins, e sim dizer que ferramentas fechadas, embora facilitem o trabalho com uma certa sensação de produtividade, privam os desenvolvedores de certas liberdades ou opções de escolha, como a de formatos de documentos citado neste artigo.
Ao lidar com sistemas corporativos grandes, é frequente o uso de planilhas do Excel para importação e exportação de dados. Em plataformas de Business Intelligence avançadas e muito utilizadas no mercado, o responsável pela parte de ETL tem que lidar na maior parte do tempo com a extração de dados de planilhas extraídas/exportadas de outros sistemas.
Quanto ao uso de “arrastar componentes para criar tela”, me desculpe a estupidez, qualquer imbecil faz isso… [e você poderia dormir sem esta hein…risos]
Se eu mostrar o Delphi para um transeunte semi-analfabeto qualquer que eu encontrar na rua, em 2 horas ele cria algo e o chamará de sistema…
E o pior, o que detona a reputação dos profissionais da área, são realmente estes arrastadores de componentes que se acham analistas de sistemas, e na verdade não são… e só sabem fazer telas ou “programinhas/sisteminhas”… e nada mais…
Nos ultimos 3 anos eu vi vários sistemas que foram feitos no “Delphi” serem migrados para Java, justamente por que a própria plataforma tinha muitas limitações em relação a escalabilidade e outros aspectos que Delphi não dá conta…
Enfim meu caro, antes de pagar uma de fanboy, “verborreizar” só por que falaram da sua IDE colorida favorita, tente postar algo coerente ao artigo que seja produtivo para todos, e não somente para seu ego ;)
Sabe Kaneda, sua visão é incrívelmente preconceituosa, mal informada e, num primeiro momento, parece até que tem a ver com o texto, mas na prática não tem nada a ver.
Muito obrigado, Kico.