Hace 13 años | Por CIB3R a bitelia.com
Publicado hace 13 años por CIB3R a bitelia.com

"Hace unas horas Carlos Garnacho, programador para el Proyecto GNOME, dio a conocer en su blog lo que promete ser un paso gigantesco para la configuración y personalización de interfaces de usuario con GTK+: el uso de archivos de estilo tipo CSS."

Comentarios

o

#3 No hables sin saber, GTK esta orientado a objetos con gobject, ademas si eso no te gusta puedes usar PyGTK.

Fail.

mr_b

#4 GObject no son objetos, son estructuras ("struct" en C) así que no, GTK no está orientado a objetos.

AutumnAutist

#9 flame troll mode en plan chistoso

D

#9 una librería que incluya la frase "sistema de objetos" no es necesariamente programación orientada a objetos.

¿Algún otro fanboy de GTK quiere ponerse en ridículo? (Y lo dice alguien a quien se la pela Qt)

c

#15 GTKMM? Prueba a buscar documentación, a ver si sigues considerándolo una alternativa seria

#38 Bravo.

D

#40
GTKMM ha eliminado la documentación porque están a la espera de adaptarse a GTK3.

c

#60 Por desgracia sí, he programado con GTKMM, y es un horror. La documentación es pésima, no digo ya la de otros wrappers asociados como gstreamermm.

Programar para Gnome en general y GTK en particular es peor que clavarse astillas bajo las uñas.

#49 ¿Eliminado? En la página de Qt puedes encontrar la documentación hasta de la primera versión. Nadie en su sano juicio borraría la documentación. Nadie, excepto los de Gnome.

d

#40 y #21, habéis programado en gtkmm? yo si, es muy tedioso, muchísima faena. Pero la documentación no es mala, suficiente si sabes programar

http://neacm.fe.up.pt/docs/gtkmm/reference/html/classGtk_1_1Widget.html

D

#39 mientras tú sigues diciendo gilipolleces, yo seguiré votando positivo a comentarios como #38, que sí aportan muy buenos argumentos.

Tienes la cabeza cuadrada, no estoy ni a favor de GTK ni de QT pero tú sigue R que R.

Y porcierto, mi avatar critica una de las mayores atrocidades realizadas por un estado los últimos años. Si te jode, jodete bien jodido.

D

#43 De nuevo gracias por confirmar que a ti eso de los modales solo importan cuando se trata de otros, que son la excusa. No tengo la cabeza cuadrada, estoy muy acostumbrado a debatir con gente del OS y siempre actuais más o menos igual. Y tambien por confirmar que no sabes nada del conflicto Israel / Palestina pero igualmente te ves capaz de opinar sin dar argumentos.

PD: No tengo que ser programador ni conocerme nada para dar mi opinión, no estoy en un foro de desarrolladores.

D

#44 Que, ahora me has votado negativo por o dar argumentos ehhh, a ver si va a ser como en el comentario que me has votado negativo por no entender una ironia lol

Lo siento si a alguien le molesta, pero estoy cansado de que meneame sea una jodida dictadura basada en excusas donde solo puede hablar quien sigue a la mayoria.

jjmarin

#38 GObject te permite usar un enfoque de programación dirigida a objetos desde C. Sin embargo, su principal objetivo no es ese, sino el de proporcionar un sistema de objetos que sea fácilmente exportable y usable desde cualquier otro lenguaje. De esta manera, cualquier librería basada en GObject, como el caso de GTK+, podrá ser usada de forma sencilla desde cualquier lenguaje. GNOME ha sido una plataforma multilenguaje desde sus comienzos y esta característica le ha acompañado desde entonces y forma parte de la cultura del proyecto.

Hasta ahora, la creación de bindings era relativamente sencilla, pero era algo engorrosa ya que debía hacerse de forma manual. En mi opinión la gran novedad de GNOME 3.0 es GObject Introspection [1], que permite la creación automática de bindings. En lugar de tener que hacer repetir todo el trabajo de definir las equivalencias en cada binding, ahora se añaden anotaciones con metadatos en forma de comentarios que además sirven para documentar la libreria

[1] http://live.gnome.org/GObjectIntrospection

musg0

#38 Python no diferencia entre propiedades privadas y públicas. Se ve que tampoco es un lenguaje orientado a objetos...

http://docs.python.org/tutorial/classes.html#private-variables

No acabo de pillar eso de la simulación. ¿A qué grado de pureza hay que llegar para considerar algo "orientado a objetos"? En clase de lógica me enseñaron que si parece un pato, vuela como un pato y ladra como un pato, es un pato.

Por otro lado en .NET la última moda parece ser no usar herencia sino interfaces para todo. Si quitas la herencia ¿Tampoco es POO?

D

#59 Si ladra no es un pato. Si grazna como un pato, tal vez, pero también puede ser un ganso. En cualquier caso dependerá de cuál sea tu definición de pato, y si entra dentro de esa definición, no de si comparte una serie de características.

mr_b

#59 Es una carencia que no acabo de entender... pero se toma como acuerdo que las variables y métodos que comienzan por barra baja (_) sean de tipo privado.

Quizás sea un ganso (#61 te me adelantaste ). El caso es que es la forma en que se escribe el código. En C, para simular la orientación a objetos, tienes que escribir: por un lado la estructura que representa al objeto; por otro los métodos del mismo; y luego insertar en la estructura esos métodos. Para mí no es orientación a objetos pura, entendiendo un objeto como un todo.

Ahora dirás que en C++ se escribe la estructura por un lado (.h) y por otro los métodos (.cpp). Pero en realidad es sólo por conveniencia ya que se puede escribir todo junto.

Y no, si quitas la herencia no es orientación a objetos. Además, el uso de interfaces implica herencia (cuando tu clase hereda de una interfaz, sino de qué sirven).

musg0

#61 Creía que no tendría que explicar el chiste. Si algo tiene todas las características de un pato pero luego ladra puedes decir que es un perro aunque tenga plumas, pico y alas, puedes decir que es un animal nuevo o puedes obviar que ladra y decir que prácticamente es un pato pero que grazna raro.

Con la POO lo mismo. Si C+GObject tiene prácticamente lo mismo que tiene cualquier otro lenguaje de programación orientada a objetos puedes decir que no es POO pura o una simulación o que el compilador no tiene soporte directo para optimizaciones de POO o pensar que aunque sea rara, farragoso de programar y tenga sus carencias es POO en C.

#62 La forma de escribir un lenguaje no es lo que hace que sea POO. La base es el paradigma de usar objetos que contienen propiedades y métodos que actúan sobre sus variables internas, creando cajas negras de código que se interconecta con otras clases. Si un lenguaje, librerías añadidas, o sistema de macros te permite ese nivel de abstracción estás programando con POO ya sea en ensamblador, C, o Haskell.

El comentario #63 ha clavado mi punto de vista.

D

#66 Creía que no tendría que explicar la lógica, ya que según tú fuiste a clases de lógica. Que algo pueda ser incluído en una categoría no depende de que compartan ciertas características, sino de que entre dentro de los requisistos para formar parte de ella. No sé cuándo un lenguaje puede ser considerado orientado a objetos o no, no soy informático, pero la lógica dice que aunque sea un vehículo con chasis de metal y cuatro ruedas, un carrito de supermercado no es un coche, y aunque sea alargado y sirva para dibujar, una mierda pinchada en un palo no es un lápiz, es una mierda pinchada en un palo.

musg0

#68 Para la próxima pongo los tags correspondientes .

Ferk

#38 Es que precisamente la "simulación" de programación a objetos que hace GObject es la que te permite usar el paradigma orientado a objetos.

Una cosa es programar usando un paradigma y otra cosa es que un lenguaje esté diseñado para un paradigma en concreto. Si uno quiere puede usar un sistema de macros que permitiese usar el paradigma de programación imperativa en ensamblador usando punteros a regiones de código con subrutinas por medio de llamadas JAL y RET. Eso no significa que el ensamblador sea un lenguaje imperativo, pero puedes programar usando ese paradigma.

Si en C puedes obtener todas las características de un lenguaje orientado a objetos usando librerías y macros entonces puedes usar el paradigma orientado a objetos, que a la implementación tú, beosman, la quieras denominar "simulación" o la quieras denominar "Jose Manuel Fernandez" es independiente del hecho de que puedas programar usando el paradigma de POO.

> "También se pasa de C a emsamblador y por eso no se dice que jamás existió un lenguaje de alto nivel, que todo eran instrucciones simples."

Aquí se ve la confusión que induces entre lo que es un lenguaje y lo que es un paradigma. El lenguaje de alto nivel existió, aunque se traduzca a ensamblador, pero el paradigma existía desde antes de crearse C. De hecho lo más habitual es usar programación multiparadigma, donde se mezclan diferentes metodologías de programación, y no tienes que usar varios lenguajes para eso. ¿Programar en C++ sin usar objetos sería "simulación" de programación imperativa?

mr_b

#63 ¿Programar en C++ sin usar objetos sería "simulación" de programación imperativa?

No porque el lenguaje también lo soporta. En cambio en Java me atrevería a decir que sí.

Venga, vale, aceptamos el paradigma de programación orientada a objetos... pero para mi GTK tiene una orientación a objetos tan burda que no merece ese nombre, por mucho paradigma que se aplique.

h

#38 Veamos, Zortech C++ es el primer compilador nativo para c++, ¿y quién lo escribió? Sí, Walter Bright, si quieres lo buscas y ves como lo que te digo es plenamente cierto.

Continuemos ahora con el tema GObject no se considera objetos bla bla... Afirmas que C++ es orientado a objetos, de acuerdo todos hasta aquí. Sabemos que el código C++ se puede traducir a un equivalente en C puro ya que de hecho los primeros compiladores de C++ necesitaban hacer dicha conversión. Vala es un lenguaje orientado a objetos el cual es convertido después a código en C usando GObject, pero vas y dices que eso no son objetos. Aclárate por que como puedes ver si programar en Vala, con el consiguiente uso de GObject, no lo consideras programación orientada a objectos, implica que tampoco consideras C++ orientado a objetos, pero es que no lo digo yo, lo dices tu, si Vala no es posible considerarlo como tal porque usa GObject, C++ no lo puedes considerar tampoco como tal, ¿lo pillas ya donde te contradices?

Y el tema es bien sencillo, no se de donde sale la necesidad de negación mágico trágica de algunos para considerar algo que sirve para hacer una programación orientada a objetos que no lo sea cuando es capaz de cumplir lo que una programación orientada a objetos.

mr_b

#67 Vala es orientado a objetos. El código que genera en C no lo es. Como dije antes, es una simulación.

Es lo mismo que C que es un lenguaje estructurado mientras que el ensamblador que genera no lo es.

La programación orientada a objetos la define el lenguaje en la que lo estás haciendo. Porque también podría programar orientado a objetos en ensamblador (si, venga, usando el paradigma), pero no sería POO, sería una simulación. Es el lenguaje el que proporciona las características de POO. Y GObject en C no las proporciona. Vale, se usa el paradigma, pero para que se aproxime tienes que hacer unas triquiñuelas impresionantes, mientras que con un lenguaje que realmente soporte la POO todo eso ya lo tienes, no tienes que inventarte ninguna ñapa como los punteros a funciones dentro de estructuras para simular los métodos de una clase.

Los lenguajes, cuando se diseñan, se diseñan para que sigan paradigmas (los que el diseñador quiera), y C no tiene el de POO, por mucho que se aplique para diseñar e implementar una librería.

Y Zortech C++ fue el primer compilador de C++ para DOS y Windows. G++ ya estaba para Linux, BSD y otras máquinas UNIX.

h

#69 Zortech C++ fue el primer compilador DIRECTO de C++, hasta que salió ese compilador todos los compiladores de C++ existentes hasta la fecha traducían el código C++ a C puro. Ves que pongo en mayúsculas DIRECTO, hasta Zortech C++ todo compilador previo de C++ traducía el código C++ a C puro (a ver si reiterándolo en el mismo comentario 2 veces lo entiendes). Zortech C++ fue y es el primero compilador NATIVO, DIRECTO, SIN TRANSFORMACIÓN DE CÓDIGO A C, de C++ a ver si así lees la palabra clave. Los compiladores anteriores hacían el mismo proceso que hacen los compiladores de Vala, una transformación de código.

Luego usando Vala, ¿tenemos que GObject es orientado a objetos? como ves digas lo que digas partiendo de dicha premisa que GObject no es capaz de representar objectos siempre va a flaquear en que expresado de una forma lo es, expresado de otra no. Vala existe como proyecto única y sencillamente para que la gente que prefiere el tipado en objetos lo tenga, pero siempre se va a poder realizar lo mismo en Vala que con GObject de forma directa, ya que consiste en una mera y simple transformación de código.

h

#69 Mira tio, en vez de explicarnos cosas tu a mi y yo a ti voy a hacer otra distinta http://en.wikipedia.org/wiki/GObject#Comparisons_to_other_object_systems Ahí puedes leer y entender como GOject es un sistema completo de objetos para C (si, soporta las características que todo lenguaje para ser considerado POO debe tener, incluso desde este año o el pasado, no recuerdo bien, introspección de tipos).

Y sobre los compiladores de C++ http://www.zortech.com/ si realmente crees que eso no es así mándales un mail a Zortech diciéndoles que están engañando a la gente con el pie que reza "ZORTECH C++ World's First Native Code C++ Compiler for PC's by ZORTECH INC. (1987)".

Y ahora si tienes el gusto de responder, mi respuesta a todo lo que digas será un sencillo [Citation needed] y Zas en toda la boca.

D

#69 #72 http://gcc.gnu.org/releases.html
http://www.hitmill.com/programming/cpp/cppHistory.html
C++ , C , al igual que TCP/IP y demás se creó originariamente ... para UNIX.

h

#74 ¿Y? No se que decirte, gracias por decir algo que ya sabía y seguro que beosman también. Pero no entiendo que narices tiene que ver lo que dices, ZORTECH C++ seguirá siendo el primer compilador DIRECTO (¿esta vez habrá alguien que no lo lea?) de C++ habiendo sido creado por Walter Bright. Pero es más, que me la suda todo eso, solo comentaba el tema para indicar que C++ en sus inicios era traducido a código C puro y luego se compilaba esa traducción, pero maldita sea la gracia que quise indicar detalles de más para dicha afirmación. Así que lo dicho, me la suda el tema, si te quieres informar verás como todos los compiladores de C++ anteriores al creado por Walter Bright no eran capaces de compilar C++ de forma directa, y sino a tu bola.

Mira que lo he remarcado lo más que he podido pero nada, siempre habrá algún tuercebotas que seguirá leyendo "el primer compilador de C++" en vez de "el primer compilador DIRECTO de C++".

h

#8 Creo que en todo meneame es la tercera vez que realizo este comentario. C++ durante tiempo los compiladores para el se basaban en traducir el código a C puro para posteriormente compilar ese código en C. No fue hasta que Walter Bright creó un compilador directo de C++ que se saltaba ese paso de transformación. Por sino lo vees ya que pareces conocer Vala, es exactamente lo mismo, en Vala puedes tipar objetos y dicho codigo es posible traducirlo a su equivalente en GObject, también puedes escribir en C++ y dicho código traducirlo en C. Así que decir que usar GObject no es una forma de programar orientado a objetos es afirmar que jamás se pasó de la programación funcional y la POO jamás existió. ¿Realmente afirmas eso?

eduardomo

Me perdí en #3

N

Por favor, que alguien le pase a #2 un tutorial sobre programación orientada a objetos con lenguajes no orientados a objetos.

D

Por favor, que alguien le pase a #6 un documento sobre por qué no se puede hacer orientación a objetos desde lenguajes que no soportan herencia, polimorfismo, y otras hierbas.

Pista: usar estructuras llamadas TObjeto con muchos punteros a void, muchos punteros a funciones, y diversas funciones de inicialización y accessors según los datos que almacenen no es programar orientado a objetos.

antxon.urrutia

Será el futuro del diseño de temas de GTK+, no de GTK+ per se.

hey_jou

me encanta no entender nada, incluso parece que estén llevando una discusión civilizadamente!

brainsqueezer

El verdadero titular es "El futuro de GTK+ está en algo muy similar a Qt Style Sheets" pero se entiende.

D

Yo uso GNOME y también pienso que GTK está a años luz de lo que QT ofrece a los programadores. Por suerte existen algunas utilidades que han conseguido ayudar a los programadores a hacer este problema algo llevadero, pero creo que la solución tendría que ser de raiz.

D

Leer los comentarios de esta noticia es como ver The Big Bang Theory, pero sin los chistes...

D

¿No podéis discutir de nada sin llamaros fanboys ni despreciar a los demás? Qué penica de comentarios, con lo bien que habíais empezado.

D

No perdáis el estilo discutiendo sin estilo sobre hojas de estilo.

o

Sinceramente no se a que viene QT a este hilo, supongo que los fanboys son una constante cuando hay noticias de la mejora de GTK, hoy atacan diciendo que GTK no esta orientado a objetos, sino simulandolo, pero el caso es que esa 'simulacion' permite cosas como PyGTK, que esta perfectamente orientado a objetos y es mas eficiente (es un wrap de C) y mas ameno (es Python) que la basura de C++ y QT*

*aclaro que la basura es C++, no QT.

r

#52 pyqt no está mal

B

#48 Tampoco creo que esté quedando en ridículo por decir eso. Nunca se sabe por lo que le puede dar a los desarrolladores. Para mí ha sido sorprendente cómo está creciendo javascript en el escritorio y en principio era una tecnología web.

#52 Había oído que los compiladores actuales de c++ son una basura -y su implementación de la librería estándar- pero eso de que el lenguaje en sí es una basura no. ¿Por qué se supone que c++ es tan malo?

r

No he leído toda la acalorada discusión... así que es posible que le deba algún positivo a alguien.

La POO es un paradigma que ayuda a diseñar nuestros programas y puedes programar orientado a objetos en el lenguaje que quieras; pero hay algunos lenguajes que permiten implementar tu diseño OO de forma mas directa, en otros tienes que hacer algo de trabajo sucio para obtener la abstracción que deseas.

El problema es que C++ es un Frankenstein y por eso muchos desarrolladores prefieren un C con objetos. C++ puede dar mucho miedo.

... ahora voy a leer la noticia

d

Existe GTKMM orientado a objetos

D

#15 De cuya documentación oí rumores que estaba obsoleta en comparación con la de C. GTKMM es simplemente un binding para C++ de GTK+, que como ya han comentado por arriba, es orientada a objetos.

Por cierto, Qt forever. La documentación es sublime, y hay varios libros bastante buenos que te introducen al desarrollo con Qt utilizando C++ (obviamente) junto con patrones de diseño.

D

Cada vez que os metéis con GTK+ dios mata un gatito

D

#24 Por eso has votado a #18 tambien negativo, no te jode lol

Contais unas chorradas con tal de no admitir lo que sois...

D

#25 yo no he votado negativo el comentario que tú dices, habrá sido otro, aprende a fijarte en las cosas o te caerán más. De hecho mi comentario es a favor de QT. Que manía con iniciar flames coño...

D

#30 Aprende a fijarte tú que vas votando sin ni siqueira ser capaz de comprender un comentario de dos lineas.

#28 Aqui lo politicamente correcto depende del tema, si es sobre Microsoft puedo pedir la cabexza de allmer y tengo 300 de karma. Pero echar mierda sobre algo que es OS aqui es tenerla, pero oye, como me la pela porque quienes se descubren son ellos...

D

#25 yo lo único uqe te digo es que no digas mentiras, no he votado negativo a #18, simplemente te lo has sacado de la manga para tocar los huevos, mira la lista de negativos y verás que ahí no está mi nombre de usuario.

Que quieres que te diga, me jode que me acusen de cosas que no hago

D

#33 Yo lo unico que digo es que vuelvas al colegio para que te enseñen que es una ironía.

Pero es mucho pedir a alguien que debe leer como un robot y le molesta un comentario cuando se sale de la tonica utilizada por un tertuliano de 59 segundos.

D

#34 Si no entiendes que no te han votado negativo por estar en contra de GTK sino por tus formas y tu falta de razones en lo que apuntaba una conversación interesante en un principio pues tu sabrás...

Yo he dado las mías de forma no ofensiva para nadie. Piensa en la cantidad e trabajo que hay detrás de una biblioteca de estas características, que aunque sea como sea y a algunos no nos mole, está ahí y es una grandísima aportación al software libre.
También existe una cosa que se llama diversidad de software y gracias a que mucha gente no piensa como tú todavía sigue existiendo.

D

#37 Gracias por confirmar en la última frase que solo me has votado negativo por no decir lo lindas que son unas librerias que tienen muchisima gente detras. Solo habia que apretarte un poco para que lo soltaras. lol

Primero no tengo porque comentar mis formas, eso para empezar, si quiero decir culo, caca, pedo o pis. Igual que tú no justificas el llevar un avatar con el que insultas a 7 millones de personas llamandoles piratas y asesinos, pero claro tú eres un chaval de formas.

Tampoco tengo que comentar mis razones porque no me da la gana, asi de simple, he hecho un comentario por la unificación para el bien del usuario. Puedo ser un usuario y tener mis motivos objetivos o ser experto y tenerlos más fundados, o directamente soy pragmatico y me gusta la simplicidad, en cualqueir caso no tengo que dar ningún motivo en un comentario de 3 lineas solo por tener que pensar que voy a tener a mi profesora de biologia al otro lado del monitor pidiendome que justifique mis respuestas. Es un foro de opinión y yo opino con mis conocimientos de la misma manera que tu opinas con tu avatar con total seguridad que no tienes ni pajolera idea de lo que sucede en Israel y palestina salvo las cuatro cosas que leeras en los periodicos.

D

¿Y eso no lo hace ya Mozilla?

s

¡A ver los de arriba, iros a un hotel!

a

C U T E

r

Leída.

Me quedo con este comentario del blog de Carlos Garnacho

«[...] Having CSS stylesheets is great for suddenly opening doors to hundreds of designers familiar with it [...]»

D

ya tengo un fanboy de los cojones poniendo negativos por epdir una cosa, pos venga macho no opino nada, no vaya aser que te moleste...

... los negativos son para comentarios erroneos, no por que no sean de tu gusto, que ya se que en el mundo de la libertad de open source lo que mas mola es hacer callar, pero bueno...

D

#23 no sé, es que tu comentario no aporta absolutamente nada y lo voto negativo si me apetece. No es que sea fanboy de GTK o QT, es que atacas y no das un solo argumento.

Seta_roja

#23 No ser políticamente correcto es lo que tiene... A mi me pasa a menudo, incluso en la vida real!

D

Bueno, comentario de uno que no se entera mucho:

¿Y en que mejorará la nueva versión de GTK que saldrá con el nuevo GNOME 3?

D

Esto es bueno pero no es novedad, Mozilla lo hace varios años atras, Flex lo hace de forma magistral y también hay cierto sistema operativo cuya interfaz se basa en html5 http://www.jolicloud.com/

¿No sería mejor migrar todo a HTML5?

D

#42 No digas cosas por decir...Si no se tiene idea de que se esta hablando es mejor callarse que quedar en ridículo.

D

#48 ¿Podrías iluminar mi ignorancia con tus brillante inteligencia y explicarme que significa esto?

CSS Mozilla: https://developer.mozilla.org/en/Writing_Skinnable_XUL_and_CSS
CSS FLEX: http://cookbooks.adobe.com/post_How_to_use_the_new_CSS_syntax_in_Flex_4-15726.html

¿Te has preguntado en que están programados los Widgets del Dashboard de la MAC?

Usar una terminal de Linux te hace geek, pero no desarrollador

D

#57 Estás diciendo usar HTML5 para hacer un entorno de escritorio o simplemente una api como GTK o QT. Eso es decir gilipolleces.

fooBar

#42 ¿No sería mejor migrar todo a HTML5?
¡Y en 3D!

D

Al que no le guste GTK, que no lo use.
El software libre necesita fanboys... pero si discuten, se pierde el potencial de creación de aplicaciones.

D

A veces pienso que si Gnome cambiase a QT Y Python en vez de GTK y Mono estaríamos ante el escritorio de Linux definitivo. Velocidad de QT con la simplifidad del entorno GNOME 2.X .

Nekmo

[...] Para enmarcar el logro de Garnacho, les comparto lo que Miguel de Icaza, líder indiscutible de GNOME, dijo al respecto [...]

¿Líder indiscutible? ¿De verdad?

D

Y por que no mandan a la mierda GTK de una vez y solo usan qt para que asi los usuarios no tengamos que estar aun pagando el pato de las peleas de crios entre desarrolladores?

Que vamos, ya esta bien de medirse la polla y aceptar cual la tiene más larga.