Me parece absurdo programar en C algo que por su propia naturaleza son objetos (los widgets), en lugar de programarlo en un lenguaje orientado a objetos (el que sea). La excusa de que programar en C es más eficiente está muy vista y parece que los que la cuentan no se hayan parado a pensar que tal vez importe más que el algoritmo sea más eficiente a que el lenguaje sea más rápido. En C no hay herencia, polimorfismo ni nada de eso, y son cosas muy útiles e imprescindibles a la hora de utilizar widgets, gracias a las cuales el código es más limpio, reutilizable y mantenible, etc. Por eso no me parece serio programar interfaces gráficas en C y mucho menos un toolkit que esté desarrollado en este lenguaje. Me podréis decir también que existe gtkmm. Lo sé, pero sigue siendo una capa por encima de un toolkit hecho en C, el interior sigue siendo el mismo, así que en realidad no arreglamos nada con ello.
Ciertamente, la programación orientada a objetos en C requiere mucho más trabajo, pero su uso no es absurdo porque si no, nadie lo haría, o no funcionaría.
Ya sea porque ya se tiene un programa o biblioteca hecha en C y se quiere incluir la interfaz gráfica fácilmente, o porque nos interesa una característica particular que implementa GTK+, o porque utilizamos un lenguaje para el que no está disponible Qt, o porque se quiere programar para GNOME, el caso es que muchas personas eligen GTK+ antes que Qt o WxWidgets. A la inversa, alguien con un proyecto C++ difícilmente elegiría GTK+ como la forma natural de construir la interfaz gráfica.
GTK+ tampoco es sólo una biblioteca para construir interfaces gráficas, sino que incluye un amplio conjunto de herramientas adicionales que acortan la distancia creada por la biblioteca estándar de C++, lo cual reduce la inclinación de la balanza.
El lenguaje C es uno de los lenguajes más simples y elegantes jamás creados, y prueba de ello es su capacidad para ser utilizado en los más diversos campos, hasta en la orientación a objetos.
La herencia y el polimorfismo no pueden implementarse de forma tan sencilla o limpia, pero en GTK+ se han desarrollado alternativas que ofrecen ventajas similares allá donde se consideren necesarias. Supone mucho más esfuerzo que si se hiciera en C++, pero si es necesario y se puede hacer, se hará.
Concluyendo, las razones se pueden resumir en una: Si tenemos esto, eso y aquello hecho en C, pues seguiremos usando C. ¿Alguien se opone? Recuerde que hay quien sigue usando COBOL por las mismas razones, y les va bien. ¿Les podría ir mejor si lo tuvieran todo en un lenguaje más reciente? Sí, pero no es el caso.
Eso no lo sabemos. Por especular... ¿y si Gnome no existiera? ¿Tendría Linux más cuota de mercado? Tu pregunta no dice nada.
Pues no, porque muchos usuarios de GIMP, lo usan bajo Windows.
¿Y? ¿Acaso los programas hechos con Qt no se pueden compilar en Windows igual y sin tocar una sola línea de código? Me parece que no estás muy al día...
Sobre lo que dices del código, no creo que sea para tanto
¿Que no es para tanto? ¿Has programado con orientación a objetos? ¿Has programado con Qt alguna vez? Sí que es para tanto, sí. La diferencia es abismal.
si un programador decide porque le da la gana que su programa será C, QT nunca le valdrá
Si un programador decide usar C para desarrollar una interfaz gráfica pues se le puede aplicar mi comentario. De todos modos, eso no quita que no sea posible usar Qt en C, para eso está QtC.
la interfaz es solo una parte del proyecto, y no se puede modificar todo el proyecto para poder usar una biblioteca en concreto para dibujar los mismos botones y menús
Lo que estás diciendo no tiene sentido porque la propia noticia donde has escrito este comentario te lo contradice. Si no se pudiera, los de VLC no podrían pasarse a Qt.
Por otra parte, me parece que no te has enterado de que Qt no es sólo una biblioteca para crear interfaces gráficas. Qt es muuuuucho más que eso. No sólo te ofrece ventajas en el desarrollo de una interfaz gráfica sino también en otros muchos aspectos y tiene muchos módulos para hacer de todo. De hecho, no necesitas desarrollar programas gráficos para usar Qt, puedes crear herramientas en línea de comandos usando QtCore, ya que Qt está dividido en módulos. Y por otra parte, nada te impide usar C dentro de C++ en Qt, yo ya lo estoy haciendo en mi PFC.
Re:GTK+glade+libglade
(Puntos:5, Inspirado)( Última bitácora: Jueves, 31 Enero de 2013, 09:47h )
openSUSE [opensuse.org]
Re:GTK+glade+libglade
(Puntos:1)Usar GTK+glade+libglade te permite usar lenguajes que si estan orientados a objetos como C++ o Pyton
¿Que mas da que libglade este realizado en C mientras cumpla bien su cometido?
Re:GTK+glade+libglade
(Puntos:2)( http://web.iesrodeira.com | Última bitácora: Sábado, 25 Abril de 2009, 19:50h )
Xavi.
Re:GTK+glade+libglade
(Puntos:2)Re:GTK+glade+libglade
(Puntos:2)( http://guslibu.awardspace.com/ | Última bitácora: Viernes, 18 Marzo de 2011, 08:29h )
Ya sea porque ya se tiene un programa o biblioteca hecha en C y se quiere incluir la interfaz gráfica fácilmente, o porque nos interesa una característica particular que implementa GTK+, o porque utilizamos un lenguaje para el que no está disponible Qt, o porque se quiere programar para GNOME, el caso es que muchas personas eligen GTK+ antes que Qt o WxWidgets. A la inversa, alguien con un proyecto C++ difícilmente elegiría GTK+ como la forma natural de construir la interfaz gráfica.
GTK+ tampoco es sólo una biblioteca para construir interfaces gráficas, sino que incluye un amplio conjunto de herramientas adicionales que acortan la distancia creada por la biblioteca estándar de C++, lo cual reduce la inclinación de la balanza.
El lenguaje C es uno de los lenguajes más simples y elegantes jamás creados, y prueba de ello es su capacidad para ser utilizado en los más diversos campos, hasta en la orientación a objetos.
La herencia y el polimorfismo no pueden implementarse de forma tan sencilla o limpia, pero en GTK+ se han desarrollado alternativas que ofrecen ventajas similares allá donde se consideren necesarias. Supone mucho más esfuerzo que si se hiciera en C++, pero si es necesario y se puede hacer, se hará.
Concluyendo, las razones se pueden resumir en una: Si tenemos esto, eso y aquello hecho en C, pues seguiremos usando C. ¿Alguien se opone? Recuerde que hay quien sigue usando COBOL por las mismas razones, y les va bien. ¿Les podría ir mejor si lo tuvieran todo en un lenguaje más reciente? Sí, pero no es el caso.
Re:GTK+glade+libglade
(Puntos:2, Divertido)( Última bitácora: Sábado, 19 Diciembre de 2009, 16:06h )
Uuuffff yo creo que entonces no lo usaría ni dios, eh
"Cuando el copyright impide el progreso de la ciencia, la ciencia debe desechar el copyright" - Richard M. Stallman
Re:GTK+glade+libglade
(Puntos:4, Informativo)( Última bitácora: Sábado, 19 Diciembre de 2009, 16:06h )
"Cuando el copyright impide el progreso de la ciencia, la ciencia debe desechar el copyright" - Richard M. Stallman
Re:GTK+glade+libglade
(Puntos:3, Inspirado)( Última bitácora: Jueves, 31 Enero de 2013, 09:47h )
¿Y? ¿Acaso los programas hechos con Qt no se pueden compilar en Windows igual y sin tocar una sola línea de código? Me parece que no estás muy al día...
¿Que no es para tanto? ¿Has programado con orientación a objetos? ¿Has programado con Qt alguna vez? Sí que es para tanto, sí. La diferencia es abismal.
Si un programador decide usar C para desarrollar una interfaz gráfica pues se le puede aplicar mi comentario. De todos modos, eso no quita que no sea posible usar Qt en C, para eso está QtC.
Lo que estás diciendo no tiene sentido porque la propia noticia donde has escrito este comentario te lo contradice. Si no se pudiera, los de VLC no podrían pasarse a Qt.
Por otra parte, me parece que no te has enterado de que Qt no es sólo una biblioteca para crear interfaces gráficas. Qt es muuuuucho más que eso. No sólo te ofrece ventajas en el desarrollo de una interfaz gráfica sino también en otros muchos aspectos y tiene muchos módulos para hacer de todo. De hecho, no necesitas desarrollar programas gráficos para usar Qt, puedes crear herramientas en línea de comandos usando QtCore, ya que Qt está dividido en módulos. Y por otra parte, nada te impide usar C dentro de C++ en Qt, yo ya lo estoy haciendo en mi PFC.
openSUSE [opensuse.org]