[Python-es] QT5 vs wxWidgets

Mariano Reingart reingart en gmail.com
Mie Feb 20 03:09:25 CET 2013


2013/2/19 Mario Lacunza <mlacunza en gmail.com>:
> Hola,
>
> Antes q nada mi idea no es iniciar ningun flame :) sino saber de las
> opiniones de quienes usan (sobre todo para mi: QT5) las librerias
> mencionadas.

Disclaimer: soy usuario de wx ...

> Hace años q vengo usando wxWidgets /wxPython para hacer mis programas, este
> año se me presenta la oportunidad de dos desarrollos grandes y me entra la
> duda debido:
>
> Uno de los puntos en contra (para mi) era la licencia de QT, ahora es LGPL
> permitiendo desarrollos cerrados/comerciales si se usa la libreria sin
> modificacion.

Esto también puede ser una desventaja para Qt, porque justamente los
derivados son mas limitados.
Ademas, por el modelo de negocios el código fue pasando por varias
manos, y por ej. puede llegar a ser comprado por alguna empresa que lo
discontinué o tenga conflictos con el desarrollo abierto (ver el caso
de MySQL)

Lo peor es que este tipo de licenciamiento favorece el "open core",
donde publican una versión open source limitada, y ofrecen una versión
comercial paga para poder acceder a todas las características.
De hecho, a mi me asustó un poco hace unos días querer descargar Qt y
en la página de Digia solo hay un trial limitado...

wxWidgets (wxPython) tiene una licencia mucho mas permisiva y liberal
(igual que Python y PostgreSQL), por lo que mencionado anteriormente
es mucho más improbable.

> El soporte por parte de una empresa para el wrapper lease pyside (de pyqt no
> me gusta su licencia) lo cual ha originado q en 1 año este casi igual q pyqt
> en opciones (o me equivoco?)

Por lo que escuche últimamente, PySide esta semi-abandonado y tiene
otras desventajas (como usar el doble de memoria, no soporta varios
features ni la última version de Qt):

http://listas.python.org.ar/pipermail/pyar/2013-January/022738.html

Efectivamente la licencia de pyqt es mucho más restrictiva (GPL y propietaria).

En cambio, la licencia de wxPython es la misma que la de wxWidgets,
incluso permitiendo desarrollos cerrados.

> Con wxpython el soporte de la comunidad es muy
> bueno, pero dado q solo es una persona el q mantiene la libreria tarde o
> temprano las cosas se atascan, por ejemplo recien esta en menos q beta el
> soporte para Python3 y ni hablar para mobiles. Yo uso Ubuntu y no tengo en
> el repo la ultima version de la libreria, sino debo compilarla yo mismo.

Hasta donde se, el tema de Ubuntu/Debian es porque los maintainers de
esas distros la consideran "de desarrollo", aunque tenga más
características y correcciones que la versión "estable".

https://groups.google.com/d/msg/wxpython-users/SqybVaIi954/nI2lWng_zWMJ

Si hay soporte de la última versión para Windows y Mac en el sitio
oficial y mantenida por los desarrolladores principales.

Por cierto, Intentar instalar pyqt en mac es maś dificultoso ... no
hay "versión oficial" y es bastante complicado (yo no pude dedicandole
un tiempo rasonable, y tampoco soy ni quiero ser experto en mac...):

http://pastebin.com/hDKLEwwB

Al parecer no soy el unico con inconvenientes con qt en mac ...

http://lateral.netmanagers.com.ar/weblog/posts/qt-mac-tips.html

Con wxpython no tuve problemas, y en ubuntu basta con ejecutar un
script de build o usar checkinstall

El soporte para Python3 de wx esta bastante avanzado (compila y he
visto incluso muchos tests ya funcionando correctamente), y por lo que
veo, pyqt esta en un estado similar con Qt5  (compila contra la nueva
version, pero no hay un release oficial todavía).

Por cierto, la última version de postgresql (9.2) tampoco esta
actualmente en ubuntu, y por eso no me voy a pasar a mysql ;-)

$ apt-cache search postgresql-9.2 | wx
0 0 0

> Con el nuevo anuncio de Ubuntu Phone y un solo OS para desktop, tablets y
> celulares el mercado se abre rapidamente para los desarrollos. Ubuntu usara
> QML y QT5 para estos, es mas ya preparo las librerias para descarga, lo cual
> sin duda sera a mi juicio un tremendo empuje para QT

Si usas javascript, C o C++ :-)

http://www.ubuntu.com/devices/tablet/app-ecosystem

Ubuntu ha hecho varias jugadas importantes, e incluso algunas no
fueron bien recibidas por la comunidad.

Una de las ventajas de una tablet con ubuntu sería usar todas las
aplicaciones (por ej LibreOffice), y para ello sería necesario soporte
completo para aplicaciones nativas, y por ende, de wxGTK

> Ambas librerias tienen un gran conjunto de paquetes q cubren casi todos los
> ambitos.

wxPython trae muchos controles y mejoras hechas en python puro, por lo
que es mucho màs maleable y extensible en este aspecto.

Ciertamente en qt desconozco en profundidad, pero por lo poco que vi
sería al revés, y algunas características de C++ se pueden ver en la
mayoría de los programas en pyqt (por ej las señales), aunque esto ha
mejorado últimamente por lo que pude ver.

> Dicho esto como comprenderan estoy mas q considerando el moverme a QT5, por
> lo q me gustaria saber sus opiniones en favor o en contra, gracias!

Yo evaluaría que tipo de aplicación se va a desarrollar, algunas cosas
hoy por hoy se pueden hacer hasta en HTML5 (más universal, incluso
aprovecharia el FirefoxOS...).
Para desarrollo rápido de aplicaciones de escritorio del tipo
"empresarial" (centradas en datos), cero que wx es una buena opción.

IMHO wx me parece más manejable a largo plazo (por lo menos, revisando
el código, es algo más compacto y posible de mantener)
Como también uso otros proyectos de soporte comunitario (python y
postgresql), no lo veo mal, al contrario, no depender de una empresa
me parece saludable para el software libre y este tipo de
herramientas.

YMMV

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com


Más información sobre la lista de distribución Python-es