Há algum tempo venho mexendo com OpenACS e nunca entendi direito por que essa arquitetura não é mais conhecida pelos desenvolvedores e evangelistas do software livre. Particularmente, não sei bem por que a arquitetura não é amplamente utilizada no setor público no Brasil. Talvez por não ser baseada em LAMPPP (linux/apache/mysql/php|perl|python); talvez por não ser baseada em Java... não sei. E também não me interesso muito em saber por que cada um defende aquilo que conhece, não é mesmo?
Até bem pouco tempo eu mantive o impulso de defender o OpenACS como uma alternativa viável e poderosa aos sistemas baseados nessas outras arquiteturas. Tinha aquele papo do tipo "aolserver é melhor que apache/tomcat/zserver juntos", "tcl é mais simples de usar e mais fácil de aprender do que perl/python", "php é uma m*$%&*", "mysql não se compara a postgresql" e por aí vaí. Olhando bem, acho que esses argumentos já estão velhos.. faziam sentido há coisa de 5 anos quando comecei a mexer com OpenACS mas hoje a coisa é diferente. Apache2 é um servidor bem melhor do que era na sua série 1.3.x , MySQL amando-o ou não já é um banco de dados respeitado, PHP tem avançado bem estabelecendo boas práticas e repositórios como o PEAR melhorando o reuso de código ou desenvolvendo coisas interessantes com o Drupal. Elas por elas eu ainda não troco Aolserver por Apache, TCL por Php/Perl/Python/Java e muito menos PGSQL por MySQL mas já aceito melhor :-)
Mas a questão não é essa. O objetivo aqui é refletir sobre por que OpenACS deve mesmo ser considerado software público e por isso ser melhor observado pela administração pública brasileira. Pelo exposto anteriormente eu vou evitar a abordagem técnica ou comparativa. Também não sou lá expert no conceito de Software Público e não vou para o lado do juridiquês ou do dicionário. Sobrou então um pouco da experiência que desenvolvendo e contribuindo com o OpenACS.
Até onde entendi pelas leituras disponibilizadas neste portal do SPB
aqui - > http://www.softwarepublico.gov.br/spb/O_que_e_o_SPB [1]
aqui -> http://www.softwarepublico.gov.br/spb/Resumo_do_Decreto_SISP [2]
e aqui -> http://www.softwarepublico.gov.br/spb/ArtigoMatConceitoSPB [3]
além das liberdades consolidadas nos modelos de licenciamento GPL (Licença Pública Geral) e compatíveis, o conceito de SPB parece estar fortemente ancorado no reconhecido pelo gestor público do "caráter cada vez mais estratégico do software para governos e sociedade,[d] a similaridade de demandas de entes públicos, [d]a restrição de recursos humanos e materiais para seu atendimento e [d]o acervo de soluções desenvolvidas pelos diferentes poderes e esferas"[3]. Também é enfatizado que o enfrentamento do desafio estratégico do software passa pela associação de estratégias para ampla publicização de softwares desenvolvidos pelo governo capazes de prever tratamento para o conjunto das restrições que surgem com o receio dos entes públicos em compartilhar software entre si e com a sociedade.
O conjunto dessas restrições acarretaria sobre o ente público que desenvolve e compartilha software alguns receios dos quais vou enfatizar por serem importantes para a argumentação de que OpenACS enquadra-se bem no conceito de software publico:
"sobrecarga por demandas de serviços de suporte e customização por parte dos demais usuários da solução, sem contrapartidas;
apropriação do código por instituições privadas, com o conseqüente “fechamento” do acesso a melhorias produzidas;
manutenção do nível de qualidade da solução para atender as demandas crescentes;
receio de potenciais usuários quanto a mudanças nas regras de acesso ao software, quanto à descontinuidade da solução etc;
inexistência de padrões universais para produzir e documentar programas;
desconhecimento de boas práticas similares
a complexa relação entre o setor público, privado, o terceiro setor e o colaborador individual, onde todos os atores tenham os seus papéis compreendidos para o pleno funcionamento de uma Comunidade" [3]
OpenACS nasceu e desenvolve-se como uma arquitetura escalável, estensível e robusta para oferecer um conjunto de aplicações na Web para sistemas que possuem demandas similares de colaboração e participação entre usuários. A maneira única como OpenACS trata essa demanda possibilitou a evolução da plataforma de tal forma que sua aplicação se estende desde websites de comunidades até sistemas de e-leaning (dotLRN), sistemas do tipo ERP (]project-open[) ou redes de relacionamento (23hq). Se o problema a ser abordado com o emprego de software situa-se no domínio de oportunizar colaboração entre indivíduos, a arquitetura já provou ser altamente eficaz.
OpenACS é também uma das mais antigas plataformas para desenvolvimento de software que se tem notícia na Internet e ainda hoje segundo o site de estatísticas Ohloh é um dos sistemas que mantém grande atividade de desenvolvimento apesar de já contar com base de código considerada muito madura. Veja aqui.
OpenACS também é uma plataforma inovadora e, apesar de possuir uma base de código bastante extensa e estável, incorpora novidades rapidamente como web2.0 e programação dinâmica orientada a objetos com a incorporação de construções XoTCL na base de código OpenACS.
E por que OpenACS evolui dessa forma?
A resposta mais simples está no reconhecimento de que na comunidade OpenACS é minimizado o conjunto das restrições de desenvolver e de compartilhar software como as que são elencadas na fundamentação sobre SPB. O desafio de produzir software com garantia de compartilhamento e de evolução já é um dos pilares da evolução dessa plataforma. Creio que esse amadurecimento da Comunidade é um fator importante no alinhamento com os conceitos desenvolvidos para o software público brasileiro.
Aqueles que se interessarem por software público e OpenACS se quiserem manifestar-se eu apreciaria muito! Seria interessante se pudéssemos elaborar uma publicação dentro dessa Comunidade para tratar esse assunto e dar visibilidade ao OpenACS com software público brasileiro.
Autor: Orzenil Silva Junior

1010 comentários
Landim