[pyar] Consejos sobre cual GUI utilizar en Windows

Mariano Reingart reingart en gmail.com
Sab Sep 17 22:18:45 ART 2011


2011/9/17 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On 9/17/2011 6:42 PM, Mariano Reingart wrote:
>>
>> Puede ser, pero ahora con FormBuilder es mas ameno ese tema.
>
> Como vengo escuchando esto ultimamente, me pasé un par de horas con
> FormBuilder.
> O no lo entendí, o no, no es ameno.

Dije mas ameno (respecto a wxGlade)
Y si, qtdesigner parece un poco mas automagico, igual prefiero saber
que estoy haciendo al estilo wx :-)

Eso dicho despues de pasar un rato con qtdesigner...

>> Igualmente yo no eligiría una herramienta solo por su parte "Visual",
>> por experiencia, el diseñador de formularios pasa a ser algo
>> secundario, no es obligatorio (al menos con wx) y en ciertos casos hay
>> otras formas más rápidas y mantenibles de diseñar las pantallas.
>
> Con ningún toolkit es obligatorio. Y sí, si estás haciendo un ABM, en una de
> esas no es la manera, sino que querés pantallas mediocres genéricas, que es
> lo que en mi experiencia producen todas las herramientas de generación
> automática de CRUD, y lo que produce el 99% de los desarrolladores en
> general.

Estoy adentro del 99% de los mediocres y de hecho me encanta que las
pantallas se generen automagicamente, me pagan por hora y en general
esos detalles mucho no le importan a mis clientes, sobre todo para
sistemas de gestión centrados en datos, que cero era lo que se
discutía.

Lo que no quita que wx traiga cosas como la interfaz de usuario
avanzada (AUI), una ribbon, cairo, etc. que se pueden usar
tranquilamente y son bastante configurables el look&feel, lo que
ahorra bastantes recursos para hacer aplicaciones genéricas y no
tanto.

> Ahora, cuando empezás a querer tener una pantalla bien hecha, con diseño (y
> con eso quiero decir: con un diseñador humano atrás), ahí designer o alguna
> otra herramienta similar es buenísima, si no indispensable.

En ese extremo prefiero pasarselo a un diseñador gráfico y que lo haga
en HTML/CSS, creo que se debe usar la herramienta adecuada para cada
cosa IMHO.
Y he visto browser embebidos en wx que aprovechan lo mejor de ambos mundos.

> Por otro lado, la gran mayoría de las UI no tienen, ni se les pone el nivel
> de atención al detalle como para que te haga diferencia no digamos la
> herramienta gráfica, no te hace diferencia
> el toolkit mismo.

Justamente por eso dije que no importa tanto la parte "visual", sino
que sea lo mas simple y flexible para programar y mantener.

> Por ejemplo, layout de formulario típico, filas "etiqueta / campo". Cuál es
> el alineamiento correcto de los campos? Depende de la plataforma. En Qt, los
> pones en un "FormLayout" y te va a usar automáticamente el layout correcto
> para la plataforma y estilo en que corre el programa. El 99% de los
> programadores les importa un rabanito y/o ni se enteraron de como hay que
> hacerlo.

wx.StdDialogButtonSizer, no es lo mismo pero bueno.

> Y después hay miles de detalles que no es que te hacen la vida más fácil
> solamente, si no que hacen que el producto final pueda ser mejor. Tomemos
> traducciones, por ejemplo.
> En Wx tenés una herramienta que al traducir te muestra como queda la UI al
> mismo tiempo que lo estás traduciendo para que puedas elegir traducciones
> que queden bien de tamaño, que no rompan el flujo de la UI, etc? Bueno, Qt
> sí. Y sólo funciona si usás designer. Entonces al no usar designer, empeorás
> las cosas para los traductores.

Sep, pero si tengo codigo autogenerado, controles virtuales o clases
redefinidas, me sirve poco un diseñador.

> No digo (porque no es la manera en que me manejo) "Wx es malo" (ok, TkInter
> es malo), pero en mi (poca) experiencia tocando código Wx, siempre salí
> corriendo.

Yo salgo corriendo de codigo gtk, qt ni lo agarro porque no lo entiendo :-)

Y TkInter no es malo, es malisimo, cuando alguien abre IDLE piensa que
retrocedio en el tiempo.

>> Lo que tiene wx es que me parece la mas "pythonica" (espacio de
>> nombres, simplicidad, extensibilidad, etc.), y de hecho esta empezando
>> a tener cosas puramente escritas en python, y eso creo es un buen
>> camino a seguir, ya que te simplifica el desarrollo, podes corregir
>> bugs facilmente, ver y entender el codigo fuente, etc.
>
> Qt por otro lado te ofrece simplicidad, completitud, abstracción de casi
> todas las partes horribles de la plataforma, un set de herramientas
> consistentes y "oficiales", o sea que no te pueden decir "ah, no, esa parte
> en la herramienta pepe no va, usá la herramienta pancho".

Libertad, libertad, libertad :-)

Con wx no hay nadie que diga que herramienta es oficial y que no,
puede ser ventaja o desventaja, depende de como se lo mire.

La verdad que con MS me cure de espanto, y no quiero pasar de
guatemala a guatepeor (salvando las distancias, obvio)

> Y sobre todo: cross platform en serio (si hay algo que no es igual y no está
> en la documentación, es un bug). Eso quiere decir que mientras te mantengas
> en Qt y las barrios buenos de la stdlib[1], la plataforma no te importa.

¿Abstracción de *casi todas* las partes horribles de la plataforma y
cross platform en serio?
¿Si hay diferencias?
Medio contradictorio, aunque este en la documentación, creo que a la
larga estamos en la misma.

> Cosas que me parece que son malas en Qt:
>
> * Los nombres no son PEP8
> * Si hacés binarios frizados en windows no te andan los plugins a menos que
> hagas algunos trucos
> * Los exes para distribuir son grandecitos (15MB sin webkit, 20 con webkit,
> depende de si por ejemplo usas OpenGL, QtNetwork, etc, en una de esas se va
> a 30)

Cosas que no me gustan de wx:
* La documentacion esta bastante dispersa (parece un karma de los
toolkits graficos de python en gral)
* Eventualmente tira segmentations faults si uno se descuida y no esta
bien compilado (blame c++)
* No tiene un buen browser por defecto (pero se puede usar webkit en
gtk y internet explorer en windows)
* No tiene un port para Android por ahora (y no se si interesa y/o vale la pena)

> Saludos
>
> [1] Hay unas cuantas partes de la stdlib que son villa, favela y/o ghetto.

¿No queres discutirlo en el panel de python apesta?

Sds

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



More information about the pyar mailing list