Estoy comenzando un nuevo software de código abierto en Python, y me pregunto si debería usar Python 2.x o Python 3.x.Nuevo proyecto: Python 2 o Python 3?
Incluirá una GUI pesada, algoritmos científicos complejos que manejan grandes cantidades de datos. Necesitaré al menos Numpy, Scipy, PyQT4, PyOpenGL, h5py, opcionalmente Matplotlib. Primero debería publicarse en 2013, con actualizaciones y extensiones durante los próximos años.
Será utilizado por científicos que no necesariamente tienen experiencia en informática, en una amplia variedad de computadoras (Linux, Windows, Mac ...). Algunas máquinas pueden ser viejas.
Si elijo Python 3.x, me temo que el software y las bibliotecas de terceros pueden ser más complicados de instalar, especialmente en sistemas antiguos donde Python 2.x ya está instalado. Sería mejor si los paquetes similares a RPM (o instaladores de Windows) para Python y las bibliotecas externas estuvieran disponibles en la mayoría de los sistemas, de modo que no sea necesario compilar todo. Además, no sé si la rama 3.x está lo suficientemente madura.
Si elijo Python 2.x, es posible que deba portar el software a Python 3.x en un futuro próximo si la rama 2.x queda obsoleta (¿cuándo ocurrirá eso?).
¿Cuál sería la mejor opción?
De esas dependencias, creo que sólo PyOpenGL no es portado todavía. Matplotlib se transporta pero aún no se ha lanzado, aunque el lanzamiento se realizará en un par de meses. Los otros (numpy, scipy, PyQt4, h5py) ya tienen lanzamientos de Python 3. –
Y Python 3.3 en un mes. Para 2013, Python 3.4 saldrá del horno, con 2.7 en modo de mantenimiento ... Por cierto, para Windows ya tienes instaladores binarios matplotlib en el sitio de Golhke. – joaquin
No estoy de acuerdo con la gente que sugiere comenzar con 2.7. Eche un vistazo a sus dependencias y vea lo que aún no reclama soporte 3.x. Luego mira cuánto esfuerzo sería para eso. Hazlo. Problema resuelto y todos te quieren y nunca necesitarás convertir tu código de 2 a 3 en el futuro. – gps