noesbuenosersincero.blogspot.com/2010/12/krita-o-lo-que-g... por
--16411-- el 22-08-2011 07:25 UTC publicado: 22-08-2011 13:50 UTC

El mundo del software libre como otros tantos se mueve a través de mitos, tradiciones y todo tipo de leyendas. Esto hace que haya programas intocables, y el ejemplo más claro de esto es GIMP un software desfasado desde hace años y que hace a medias todo, pero que cuenta con un apoyo ferviente de parte de los talibanes de la comunidad. Hay gente que piensa que algo por el simple hecho de llevar el sello de "Software Libre" debe ser mejor que lo demás, lo cual bloquea cualquier evolución...
etiquetas: gimp, diseño, software libre, retoque, krita, mypaint negativos:
7 usuarios:
258 anónimos:
220
#59, los objetos SON redundantes. Modelar una aplicación en forma de objetos no requiere un lenguaje orientado a objetos. Y si me hablas de que bajo el mismo programador poco hábil, un lenguaje produce un código más óptimo que otro lenguaje, eso realmente no es un argumento.
#68, a ver, es obvio que si utilizo el gcc y el g++ para compilar el mismo archivo las diferencias van a ser miserables (quizá g++ incluya algún extraño thunk con impacto nulo en un código bastante trabajoso). Y sobre lo que dices, a ver, está claro que depende del programador. Pero también está claro que cada lenguaje tiene sus tendencias y sus formas. Si usas C++ es porque vas a usar objetos. Y es aquí donde se debe establecer la comparativa con C.
#69, no son el mismo proyecto. C tiene un estándar, C++ tiene otro y objective-C tiene otro distinto. Y a ver, también he de dejar claro por qué defiendo C a ultranza. C++ es un lenguaje con el que no me meto si lo más duro que vas a hacer va a ser la mítica aplicación gráfica de usuario que manipula representaciones de elementos del mundo real. Te rompes menos la cabeza. Sin embargo, yo he tenido que programar mis rollos desde el más puro bajo nivel hasta la más abstracta interfaz gráfica (no es que haya programado tampoco demasiado, pero sí en muy diversos ámbitos). He usado GTK (aún cuando Qt seguramente tenga bindings para C) el cual, pese a ser tradicionalmente en C incorpora una orientación a objetos. Y el hecho de que C pueda usarlo a tantos niveles con la misma facilidad me parece realmente atractivo.
#78, explícame eso de los ámbitos. Yo he tenido que desensamblar binarios en C y C++, y estos últimos incorporan una cantidad ingente de basura que lo último en lo que te hacen pensar es en un compilador con mucha información.
Veréis, y así quizá os responda a todos, mi problema con C++ es doble. El primero es que la abstracción a objetos no requiere una nueva sintaxis en C. De hecho, quizá algo que me parece bastante desagradable de muchos de los proyectos en C++ que he visto por ahí es la sobreabstracción de algunos elementos sacrificando una eficiencia que puede llegar a ser importante. El segundo es todo el código de apoyo que tiene que generar para mantener todas esas abstracciones, que lo aleja más de su estructura una vez compilado. Quizá lo que más miedo me da es el operador "new". ¿Cómo funciona? ¿Necesita paginación para funcionar? ¿Dónde reserva? ¿Puedo tocar sus estructuras internas? ¿Y qué pasa con malloc? Tengo un operador que hace cosas muy complicadas con la memoria, cuando eso es algo que normalmente se deja a la merced una función. Los operadores deberían hacer operaciones atómicas, o casi atómicas. Si esto fuese como Java quizá no me escandalizaría tanto, pues la memoria es una caja negra que la VM sabe cómo manejar.
Quizá sea un anticuado y tenga la cabeza cuadriculada, pero a mí tantas abstracciones a tan diversos niveles en el mismo lenguaje me asustan.
Eso es rotundamente falso. Gimp trabaja perfectamente con imágenes a 24 bit de color. Y ojo: no existen los 32 bit de color, son 24 bit de color + 8 de canal alfa.
Y no digo que ese Krita sea malo. Pero no me parece bien ensalzar las virtudes de un programa diciendo falsedades sobre otros.
Por favor, si hay que desprestigiar algo, proporciona datos por lo menos.
En cuanto a Kirita, quizá ahora sea una buena alternativa, pero eso no quiere decir que lo fuera en el pasado, motivo por el que las distros posiblemente no le daban tanta importancia como a GIMP, y esto no se le ha ocurrido al redactor antes de lanzarse a la piscina de esa manera y hablar gratuitamente de talibanismo.
Por tanto, un programa en C++ va a ser exactamente igual de rápido que un programa en C que haga lo mismo. Pero (y ahí es donde tienes tu parte de razón) la estructura orientada a objetos de C++ tiende a una programación redundante que acaba realizando más proceso del necesario, mientras que en C se tiende a economizar, el mismo fenómeno que ocurre en ASM. Pero esto es un problema del programador y de diseño y no del lenguaje en sí mismo. Nada te impide en un programa C++ hacer funciones críticas en ASM incluso si lo deseas. Y por supuesto, un buen programador puede hacer código más eficiente en C++ que un mal programador en ASM. Saludos.
Hace poco comenté en otra noticia que GIMP era un cadáver que ya olía, y a los pocos segundos ya tenía el primer negativo. Supongo que a este tipo de fanboys es al que se refiere el autor del artículo, y es que los radicalismos no son buenos.
De ser por mí, utilizaría un lenguaje cuya sintaxis se pudiese definir dentro del propio lenguaje (sin necesidad de una máquina virtual o algo así). Y C no hace eso, pero tiene sus trucos. No sé, hasta el momento C++ no me ha enseñado nada que no pueda hacer con C con mayor control.
He mirado Scala y tiene buena pinta (lo de mezclar programación funcional con objetos es muy atractivo), lo que es una lástima es que corra bajo una máquina virtual de Java. Quizá chapucee un poco con él un día de estos.