Básico 5 - A Revolução dos Componentes

O impacto causado pelos componentes teve bons resultados na indústria de software, mas é preciso lembrar que a tecnologia evolui rápido e há necessidade de interoperabilidade e facilidade de substituição.
04-Oct-2007 12:28 GMT

A indústria de software atual vem sofrendo um verdadeiro bombardeio de componentes de software. Pelo menos, podemos observar isso pelas revistas, artigos, previsões de mercado e, inclusive, livros sobre componentes. A idéia que essa revolução traz a um observador desatento é a de que a indústria já se encontra suficientemente madura e capaz de atender às diferentes pressões anteriormente discutidas.

A verdade sobre essa revolução ainda está um pouco distante do que realmente parece. A iniciativa a favor dos componentes já representa um passo muito importante para o desenvolvimento de software, mas ainda certamente precisamos de aprimoramento e pesquisas nessa área. Uma forma de compreendermos o que está acontecendo com a indústria atualmente é analisarmos a situação com uma teoria denominada apocalipse dos dois elefantes.

Segundo David Clark do MIT (Instituto de Tecnologia de Massachusetts) [Tanenbaum1996], o momento em que um determinado padrão é estabelecido é crucial para o seu sucesso. A Figura 1 mostra a quantidade de atividades em torno de um novo assunto. Quando o assunto é descoberto pela primeira vez, iniciam-se várias pesquisas em forma de discussões, artigos e reuniões. Após um certo tempo, as empresas descobrem o assunto e bilhões de dólares são investidos.


Figura 1: Apocalipse dos dois elefantes.

Para que um padrão seja bem sucedido, é essencial que ele seja escrito na depressão entre os dois "elefantes". Se isto ocorrer muito cedo, antes do fim das pesquisas, o assunto pode permanecer pouco compreendido, o que resultaria em um padrão insatisfatório ou ruim. Por outro lado, caso ele seja escrito muito tarde, muitas empresas já terão inventado diferentes formas de se resolver o mesmo problema e o padrão acabará sendo ignorado. Se o intervalo entre os dois elefantes for muito curto (devido à pressa para começar, por exemplo), os padrões correm um sério risco de ficarem incompletos ou insatisfatórios [Tanenbaum1996].

Observando a revolução dos componentes sob o ponto de vista dessa teoria, podemos tirar algumas conclusões interessantes. Primeiramente, a existência de diferentes padrões para componentes já demonstra que um padrão definitivo não foi lançado no momento oportuno. Mas será que isso significa uma coisa necessariamente ruim? Bem, as opiniões tendem a divergir por aqui, mas é conveniente lembrar, antes de tudo, que os padrões atuais possuem inúmeras características em comum, como a presença de interfaces bem definidas, encapsulamento, polimorfismo, etc. Tudo isso devido à bagagem de conhecimentos trazida da orientação a objetos.

Além disso, possuir diferentes opções para a construção de componentes tende a ser vantajoso quando olhamos pelo lado das diferentes categorias de sistemas que precisamos construir. Será que se tivéssemos apenas um padrão para componentes conseguiríamos construir sem problemas aplicações web, sistemas distribuídos, soluções para dispositivos móveis, sistemas operacionais e software para realidade virtual, por exemplo? Embora isso possa ser tecnicamente possível um dia, a opção de soluções específicas para cada tipo de problema tende a ser mais adequada na maioria das vezes. Talvez a maior exigência, nesse caso, seja a necessidade de interoperabilidade entre cada uma delas.

Uma outra observação que podemos fazer em relação à teoria dos elefantes é o fato de que as pesquisas tendem a nunca acabar, embora isso não esteja claro pelo gráfico. Sempre existe algum assunto que ainda precisa ser melhor explorado, ainda mais quando estamos nos referindo a software. Podemos observar isso também pela quantidade de pesquisa que outras indústrias ainda empregam desde a invenção da linha de produção por Henry Ford no início do século XX até hoje.

Contudo, o aparecimento de novas tecnologias e padrões para componentes inevitavelmente forçará a indústria a abandonar às técnicas mais antigas e seguir adiante. Os sistemas que já foram construídos precisarão ser mantidos nas tecnologias em que eles foram concebidos, o que exigirá mão-de-obra especializada, ou reescritos nas abordagens mais novas. Porém, isso já acontece com muita freqüência atualmente e não é um problema específico do uso de componentes.

Referências

[Tanenbaum1996] Andrew Tanenbaum. Computer Networks. 3ê ed. Prentice Hall 1996.


Comments

Total: 0 comments

Name

Enter your full name.

Your Comment

Please keep your comment relevant to the subject of the story.
HTML tags are not allowed. Use [b] and [/b] for bold text.
82 + 1 =