Publicado em java, python

Java Module System

A comunidade Java finalmente poderá se beneficiar de uma tecnologia que outras comunidades já conhecem há algum tempo. É o bem conhecido mecanismo de busca, download e instalação de pacotes. Perl o conhece pelo nome de CPAN, Ruby pelo nome de RubyGems e Python pelo nome de Easy Install. Todos eles possuem um formato de distribuição com informações sobre dependências com outros pacotes, versão, entre outras. Ferramentas existem para instalar, remover e trocar versões de um pacote.

Eu não sei exatamente qual a linguagem que primeiro criou essa tecnologia, ou se essa primeira baseou-se no esquema de distribuição de pacotes do Debian (Será que foi a primeira distro a ter algo como o APT?). De qualquer forma é uma idéia excelente que agiliza bastante a distribuição e instalação de aplicações, bibliotecas e plugins.

Até pouco tempo, a única forma de instalar pacotes e módulos em Python de forma organizada era usando o distutils, um pacote com função similar ao make para a linguagem C. Então veio o setuptools, um pacote que adiciona novos recursos ao velho distutils. Com isso, um simples setup.py do distutils pode gerar arquivos no formato para distribuição chamados Eggs. Os Python Eggs são arquivos compactados contendo informações adicionais para um projeto Python, permitindo que dependências de projeto seja checadas e satisfeitas em tempo de execução, bem como permitir que projetos forneçam plugins para outros.

Não concordo com uma definição existente na página do PythonEggs: “Eggs are to Pythons as Jars are to Java…”. Os eggs estão muito além dos arquivos jars. Com a criação do Java Module System, JSR 277, então sim, podemos ter uma comparação justa.

Quando precisamos de um determinado pacote Python, digamos, por exemplo, o ORM SQLObject, simplesmente abrimos um terminal (no Linux, no Mac, no Windows, …) e digitamos easy_install sqlobject. O script será executado e buscará no Cheese Shop pelo nome do pacote. Caso encontre, ele baixará o arquivo e instalará na máquina. Após isso, teremos o ORM disponível para utilização. Podemos ter mais de uma versão do mesmo pacote instalado e podemos escolher entre um outro, caso outros projetos tenham dependências com distintas versões.

Foi graças ao uso de Python Eggs que houve integração de vários pacotes e uma facilidade de uso e aquisição das frameworks como Django e Turbogears. Será mais prático ainda quando essas mesmas frameworks estiverem 100% de acordo com o protocolo WSGI, então veremos aplicações rodando quase que instantaneamente em servidores web após instaladas.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s