terça-feira, 17 de maio de 2011

Thomas Heller não é mais o mantenedor de ctypes

A comunidade de desenvolvimento de Python agradece em muito o longevo mantenedor de ctypes, Thomas Heller. Há algum tempo, Thomas anunciou que estava deixando o projeto CPython, o lar da sua biblioteca ctypes desde Python 2.5.

Tivemos uma oportunidade de conversar com Thomas, aonde ele nos contou sua história com Python e seus projetos ctypes e py2exe.

Python

Em 1999, Thomas buscava maneiras de aprender Python, encontrou Programming Python de Mark Lutz, e ficou fascinado com a linguagem. Naquele tempo ele também estava tentando substituir Scheme nas extensões de C para uma programa que ele desenvolvia no momento.

Com relação ao seu envolvimento com a equipe de desenvolvedores Python, sua primeira contribuição para CPython (e programas de código aberto), foi um pequeno "patch" em distutils para Windows. O seu interesse com distutils, o levou a criação do comando bdist_wininst que criava pacotes de instalação para Windows. A partir daquele ponto, Greg Ward o convidou para participar do grupo python-dev, quando foi permitido que ele enviasse contribuições.

py2exe

Como muitos usuários Windows, ele tinha a necessidade de instalar aplicativos Python em um só executável. Soluções anteriores para o problema haviam sido propostas por alguns eruditos em Python, como squeeze de Fredrik Lundh e sqfreeze de Christian Tismer, além de alguns "patches" que Thomas contribuiu para o projeto Installer de Gordon McMillan.

Seu interesse no distutils levou Thomas a considerar transformar Installer numa extensão da biblioteca de empacotamento. No entanto, ele acabou rescrevendo o código fonte para que pudesse usar as já existentes capacidades do distutils. No final, ele escolheu um nome simples mas bem descritivo para o projeto: py2exe.

ctypes

A ideia para ctypes veio de uma necessidade de se ir além daquilo que pywin32 permitia no momento. Seu trabalho com Scheme também necessitava de uma interface para APIs do Windows, da mesma maneira que Python, o que o fez manter o projeto ativo.

ctypes teve seu primeiro lançamento em 2003, por volta da mesma época que Python 2.3 foi lançado, depois de Thomas ter recebido inúmeros pedidos para publicar o projeto. Ele mencionou que este era seu pequeno projeto pessoal na sua página Starship, mas transformou-se em uma biblioteca largamente usada em pouco tempo.

Ele iniciou o projeto originalmente em Windows, mas rapidamente recebeu pedidos de uma versão Linux, a qual a comunidade o ajudou a terminar. Com a versão Linux, veio o desenvolvimento de libffi, a qual ele também passou a usar em Windows para substituir sua implementação de baixo-nível.

2006 foi marcado pela versão 1.0 de ctypes, a qual coincidiu com a inclusão do módulo na biblioteca padrão de Python 2.5. Após vários anos de trabalho duro e diversas versões por ano, ctypes finalmente havia sido incorporada a Python e disponível para uma audiência muito maior.

Muitas pessoas contribuíram para que ctypes seja o que é atualmente, e Thomas gostaria de agradecer a todos os envolvidos, especialmente Robin Becker. Robin foi imprescindível nas fases iniciais do projeto e contribui com conhecimento e incentivo.

Um novo mantenedor para ctypes

Após todo o esforço de Thomas durantes os últimos anos, seria muito mal deixar o projeto parar. Se você tem experiência em C e tempo para ajudar o projeto em Python, a comnunidade agradeceria enormemente. Dê uma olhada no novo guia de desenvolvimento e veja a list de bugs para maiores informações.

Nenhum comentário:

Postar um comentário