Buscar
Social
Ofertas laborales ES
« Sobre nuestra cuenta de Twitter y la repetición de contenido | Main | Thymeleaf 2.0 publicado »
viernes
feb102012

IceFaces copia código de PrimeFaces línea por línea

Hace un par de días anunciábamos en el portal la disponibilidad de la versión 3.0 de ICEfaces. Ahora PrimeFaces, otra implementación de JSF, la acusa de haber copiado varios de sus componentes línea por línea, incluyendo código Java, javascripts y css, y las pruebas son irrefutables, especialmente si tenemos en cuenta que ambas librerías son opensource y podemos ver el código fuente en cuestión.

En su versión 3.0 IceFaces cambió la licencia de la librería Apache, la misma licencia que emplea PrimeFaces. Esto fue anunciado en su nota de prensa original. De lo que no hablaban era del siguiente añadido que habían incluido en la licencia:

“Original Code developed and contributed by Prime Technology. Subsequent Code Modifications Copyright 2011-2012 ICEsoft Technologies Canada Corp. (c)”

Detrás de este cambio licencia con casi total seguridad ha estado el hecho de que la licencia que emplea PrimeFaces es Apache.

Desde el punto de vista legal, esto no es en absoluto un delito, ya que el código fuente de PrimeFaces es opensource. Es cierto, no obstante, que el modo en el que han anunciado IceFaces 3.0, cuanto menos, no reconoce (siendo mal pensados, podríamos decir que "trata de ocultar") el hecho de que han tomado tanto prestado de PrimeFaces.

Por otro lado, el código que han copiado se corresponde con PrimeFaces 2, no con la versión 3, que según la compañía es bastante superior a la anterior versión.

Los chicos de PrimeFaces saben que lo que IceFaces ha hecho no es ilegal, pero si les gustaría que IceFaces fuese más público sobre esto y se supiese de quién es realmente el mérito de varios de los nuevos componentes de la versión 3.0 de este framework JSF. Y personalmente creo que esta aspiración es justa. Por tanto, como ellos piden en su blog, os animo a haceros eco de esta noticia a través de las redes sociales y vuestros propios blogs.

 

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (28)

Y que sucede con los componentes comerciales de Icefaces, no tendran una que otra copia de codigo de primefaces??? Ahi si seria ilegal que se lucren del codigo open de prime.

febrero 10, 2012 | Registered Commentergishac

Que se realice un fork no me parece algo destacable; sin embargo, que no se reconozca abiertamente, máxime por parte de una empresa que tiene productos comerciales, al margen de cuestiones legales, es una falta de ética impresentable.
¡Y no basta con poner una nota en la licencia!

Es un hecho habitual que empresas comerciales, aunque tengan productos de código abierto, utilicen los conocimientos "aprendidos" de los fork que hacen, o de la lectura de código abierto, para venderlos en sus productos propietarios, aunque no sean copias literales de código.
Lo peor es que rara vez reconocen sus "fuentes", y menos aún pagan un céntimo por esos conocimientos adquiridos de manera gratuita.
La excusa de tener productos en versión "community" no avala semejante falta de ética, que se traduce en "hacer caja" a costa del conocimiento ajeno.

febrero 10, 2012 | Registered Commenterchoces

Me parece que PrimeFaces usa licencia GPL, no Apache, y no pueden cambiarle la licencia al código, y menos el (C). Aunque pueden integrarse. Si no sos el propietario, quienes figuran en el (C), no podés cambiar la licencia original.

Por lo demás, es más que justo que IceFaces haga mención bien pública de los créditos a quienes corresponde.

febrero 10, 2012 | Unregistered Commentergorlok

Yo me quedo pensando acerca de cuál habrá sido la razón técnica para basarse en PrimeFaces en lugar de evolucionar el producto que ya tenían. No alcancé a probar IceFaces 2, pero trabajé mucho con la 1.8. La forma en como trabaja AJAX IceFaces y como lo hace PrimeFaces tiene una diferencia enforme, creo que (para haberlo hecho así) se toparon con un problema mayor de diseño.

febrero 10, 2012 | Registered Commenterantoniovl

Y aquí está la respuesta de Brian McKinney, CEO de IceSoft:

http://www.icefaces.org/JForum/posts/list/20499.page

febrero 10, 2012 | Registered Commenterantoniovl

Una respuesta que, siendo como es impecable en la teoría, no explica cómo duplicar un código existente, supone una mejora que se "devuelve a la comunidad".
Si lo que devuelve es idéntico a lo que copia, empiezo a preguntarme cuáles serán las razones inconfesables de una empresa comercial.

febrero 10, 2012 | Registered Commenterchoces

@gorlok: Es fácil salir de dudas en estos tiempos: http://primefaces.org/license.html -> Apache License.
Respecto a que no puedes cambiar la licencia de algo APL... no es cierto. Precisamente la APL se puede sublicenciar mientras cumplas con lo que dice sobre modificación y redistribución.
Por tanto, legal es. Otra cosa es que sea lo que hayan hecho sea "éticamente inelegante"

febrero 10, 2012 | Unregistered CommenterJustOneMan

Para empezar los chicos de IceFaces sí han cometido una "ilegalidad" y es la del copyright, en el código copiado de PrimeFaces NO aparece mención alguna a que el original es de PrimeFaces, y debería, una cosa es copiar código y otra cosa es ocultar su procedencia, y es una práctica habitual que cada archivo fuente tenga una referencia a quien tiene los derechos intelectuales.

Por lo demás esta una discusión estéril, para bien o para mal cuando publicas un código con una licencia de código abierto estás diciendo "copiame, copiame, modifícame, modifícame", lo que no implica insisto en que se pierda la propiedad intelectual y en que se pueda ocultar, "el robo" si acaso está solo en el ocultamiento, nada más.

Por otra parte JSF en teoría fue concebido para que existiera una interoperabilidad de componentes con diferentes orígenes (otra cosa es que al final eso haya sido siempre un mito que no ha pasado de la teoría), resulta que parece que empieza a ser posible de verdad :)

De todas formas, como decía antes, la discusión es estéril, el open source para bien o para mal consigue que el código no valga casi nada, el valor pasa a estar en los servicios "añadidos" (soporte, formación etc) y en las versiones "enterprise" que de open ya tienen poco.

Y quien esté libre de "pirateos" que tire la primera piedra :)

http://www.primefaces.org/showcase-labs/ui/schedule.jsf

http://arshaw.com/fullcalendar/

febrero 11, 2012 | Registered Commenterjmarranz

No estoy de acuerdo ni en que la discusión sea estéril, ni en que el código abierto no valga casi nada.

Cuando una empresa, con productos comerciales, atropella de una manera tan burda una licencia de código abierto, creo que debe debatirse, y llamar la atención sobre el hecho, de una manera rotunda.
Las licencias de código abierto prohíben los usos comerciales del código, aunque sea muy difícil demostrar que un código propietario use diseños o código abiertos. Pero al menos, las empresas deben saber que prácticas como la descrita, que no respetan las licencias abiertas, pueden sembrar serias dudas sobre sus productos comerciales.

Por supuesto que todos hemos hecho, o intentando hacer, forks de código abierto existente. Yo no llamaría a eso "piratería", ni entrecomillado siquiera, dadas las connotaciones peyorativas que tiene la palabra en estos días.
Forma parte del proceso de conocimiento científico, que arranca con fuerza desde la Ilustración hasta la actualidad.
Lo que sí debe hacer un fork, que valga la pena, es mejorar, actualizar, corregir el código original. De otro modo es una simple copia sin valor añadido.

febrero 11, 2012 | Registered Commenterchoces

no explica cómo duplicar un código existente, supone una mejora que se "devuelve a la comunidad".

No duplican el código, parten de él, lo modifican para integrarlo y lo "mejoran". No es un simple copy/paste, cambio de licencia y voilá.
Lo que sí debe hacer un fork, que valga la pena, es mejorar, actualizar, corregir el código original. De otro modo es una simple copia sin valor añadido

Y eso es precisamente lo que han hecho.
en el código copiado de PrimeFaces NO aparece mención alguna a que el original es de PrimeFaces

La noticia misma no dice eso. Y los mismos de PrimeFaces dicen que es legal, así que...

Aparte de lo ético o no, tema aparte, lo que me parece irónico es escoger una licencia y luego quejarse por que la gente hace uso de los derechos de esa licencia. Me recuerda cuando los de ExtJS amenazaron con hundir a base de abogados a quien se atreviera a hacer un fork de su código GPL.

febrero 11, 2012 | Unregistered CommenterJustOneMan

@JustOneMan
Ésta debe de ser la parte de la noticia que todavía no has leído:

"After looking at Ice Ace Components, frankly, we are shocked and disappointed! IceSoft copied PrimeFaces code LINE BY LINE to come up with it’s new set of components named Ace."

Es lo que dice PrimeFaces, justo al comienzo de su blog, en el enlace publicado en el cuerpo de la noticia.
Y continúan más abajo:

"We have looked in detail of all IceFaces Ace Components and more than 90% of IceFaces components are like Panel. They are copied line by line, only difference is the change of package names from prime to ice. This duplication applies to java renderers, components codes, javascripts and css files as well."

febrero 11, 2012 | Registered Commenterchoces

@choces: Pero es que en la noticia practican el mismo tipo de amarillismo que abunda en jH. Si lees más abajo veras que se dan más detalles y de los 41 componentes nuevos de esa parte, 9 están sin tocar de PF, 19 han sido mejorados sobre el original de PF y 13 no vienen de nada de PF. Lo que no acabo de entender es la sorpresa de que no hayan tocado ni una linea... si no encontraron nada que mejorar ni ningún problema y no está intentando ocultar nada... ¿para que tocar esos ficheros?

Pero vamos, ni me va ni me viene, lo que hay es un embrollo de información junto una dosis de hipocresía y mala leche por todos lados.

febrero 11, 2012 | Unregistered CommenterJustOneMan

Antes de nada, creo que hay una tendencia persistente en los comentarios a las noticias, que consiste en mezclar, cuando no confundir, la edición de la noticia con su contenido. Esa actitud lleva a valorar la importancia de los contenidos por debajo del envoltorio, cuando no a prescindir por completo del contenido, para centrarse exclusivamente en las formas.

En este caso en concreto, creo que la noticia, tal y como se ha presentado, incluso se ha quedado corta. El "plagio" ha ido más allá de esos "varios componentes" que se mencionan al principio.

Me atengo a lo que dice PrimeFaces en el cuerpo de su blog:

"...more than 90% of IceFaces components are like Panel. They are copied line by line, only difference is the change of package names from prime to ice. "

Si están equivocados o no, para eso tienen una sección de comentarios, donde se les puede rebatir, y donde ellos pueden contestar.

Cuando se hace un fork (yo mismo he realizado varios), y no un sencillo wrapper de la librería original, se pretende una refactorización en profundidad, motivada, en la mayoría de los casos, en la obsolescencia del código original, en el hecho de que lleve parado desde hace tiempo, o en la necesidad de añadirle funciones inexistentes. Con frecuencia implica una reorganización de la estructura del proyecto, y en según que casos, la refactorización de los packages originales.

No he visto ninguna de esas condiciones en este asunto. Y sí una evidente mala fe.

febrero 12, 2012 | Registered Commenterchoces

<quote>Si están equivocados o no, para eso tienen una sección de comentarios, donde se les puede rebatir, y donde ellos pueden contestar.</quote>
Pero es que en los comentarios ya les han rebatido. Y de 43 componentes, solo 9 están copiados linea a linea sin tocar, el resto son nuevos o han sido "refactorizados". Y en el código copiado/refactorizado pone en la cabecera de donde era el código original. Y en las "release notes" de la versión pone que usa código de PF, además otras fuentes...
Y aunque estuvieran los 43 sin tocar. Se quejan de que "se benefician de su código"... pero co*o! ¿No iba de eso la licencia Apache? Si no querías que nadie se lucrara, haber usado la GPL u otra que no lo permita.

febrero 12, 2012 | Unregistered CommenterJustOneMan

Ya que mencionas una entrada de los comentarios del blog, podrías también mencionar la respuesta que le dieron desde PrimeFaces:

"Ken so you say in total 28 components out of 41. We don’t see any significant enhancements or quality improvements as you mentioned other than changed package names. Believe me, we know the code we’ve written, it is the same."

Ni que decir tiene, que esta respuesta no tuvo más comentarios.

febrero 12, 2012 | Registered Commenterchoces

Sí, pero francamente, me parece del genero tonto ponerse a discutir sobre si las modificaciones o mejoras son "significativas" o no e implícitamente admiten que 19 si fueron modificados más allá del cambio de paquete. Francamente me parece, así de primeras, una afirmación a la ligera, teniendo en cuenta que a veces arreglar un bug es simplemente añadir o quitar unos caracteres o que una mejora puede ser pasar algo de público a privado.. Y no es que hayan ocultado nada, o intentado siquiera.

En fin, que es una cuestión de creerse o no la palabra de alguien, y por eso el cargar todas las tintas contra un bando y el "me creo a estos pero no a los otros" me parece muy simplista.

Conste que a mí ni me va ni me viene, ni siquiera uso JSF... :)

febrero 12, 2012 | Unregistered CommenterJustOneMan

No se trata de creerse nada. Ambos productos son de código abierto, por consiguiente cualquiera puede comprobar lo que quiera.
Lo que me parecería del género tonto es que, dado el hecho del código abierto, PrimeFaces hiciese acusaciones como las que ha hecho, siendo falsas.
El hecho es que la respuesta oficial de IceSoft, que puede verse en un enlace publicado en el segundo comentario de antoniovl, es una colección de generalidades que no entran en el meollo del asunto, lo que a mi entender es una aceptación implícita de que lo que asegura PrimeFaces es cierto.
Y tampoco la respuesta de PrimeFaces al comentario del blog ha tenido la respuesta que merecía, si estuviesen equivocados.

Aquí lo que está en cuestión es el abuso del Código Abierto de PrimeFaces, tratado como si fuese de Dominio Público, por parte de una empresa comercial.

febrero 12, 2012 | Registered Commenterchoces

choces: "Las licencias de código abierto prohíben los usos comerciales del código"


Esto no es cierto, ¿no? Un producto o servicio que contenga código abierto puede cobrar pasta.

¿No sería más bien que si se publica, distribuye, da acceso, a un código derivado de otro código abierto, debe hacerse con la licencia original? Eso es lo que habría obligado a cambiar la licencia de ICEFaces a Apache, al haber tomado y modificado un código de licencia Apache, han tenido que publicar el resultado con licencia Apache.

febrero 13, 2012 | Unregistered Commenterlicencioso

<quote>Aquí lo que está en cuestión es el abuso del Código Abierto de PrimeFaces, tratado como si fuese de Dominio Público, por parte de una empresa comercial.</quote>
La licencia Apache precisamente permite eso, no es una licencia copyleft, así que indignarse por que hacen uso de las condiciones que permiten la licencia que libremente le has puesto a tu software me parece paradójico.

<quote>¿No sería más bien que si se publica, distribuye, da acceso, a un código derivado de otro código abierto, debe hacerse con la licencia original?</quote>
No. Hay licencias que permiten que el código se modifique y redistribuya cambiándole la licencia, y la Apache es una de ellas. Incluso permite que el código se use y distribuya en productos no Open Source, sin ofrecer el código fuente.

febrero 13, 2012 | Unregistered CommenterJustOneMan

Es verdad que esa frase, dicha así, se presta a confusiones. Dí por supuesto que se entendería código fuente.
Las licencias de código abierto no permiten que se use su código fuente en el código de productos comerciales, propietarios y cerrados.
Otra cuestión es que el código compilado y empaquetado se pueda usar en productos comerciales, y que se ofrezcan servicios de valor añadido.
Algunas licencias de código abierto son más restrictivas que otras. El principal problema viene de poder usar código, con diferentes licencias, dentro del mismo producto. La licencia Apache 2.0 es la única (creo, o las más conocida y usada) que permite usar código GPL, por ejemplo, junto con código Apache, u otros, sin mayores problemas.

febrero 13, 2012 | Registered Commenterchoces

No nos engañemos con ingenuidades. IceSoft es una empresa que vende productos y servicios, y para la que, como todas, los proyectos de código abierto son una estrategia comercial.
Lo que ha hecho es dar la impresión a sus usuarios y clientes de que ellos son los autores de las clases en cuestión, mediante la refactorización de los packages, de tal manera que PrimeFaces no aparezca para nada en los imports, y sin aportar trabajo alguno en forma de mejoras.
Nadie discute que la licencia lo permite, ni que se trate de un fork.
Lo que se discute es la actitud bochornosa de una empresa comercial, que en vez de una de dos, o destinar recursos propios al desarrollo, o importar sin más una librería externa, se dedica a "fusilar" un código existente, disimulando como que lo han hecho ellos.

febrero 13, 2012 | Registered Commenterchoces

Las licencias de código abierto no permiten que se use su código fuente en el código de productos comerciales, propietarios y cerrados.

Falso. La APL lo permite y precisamente fue creada para eso. En sus inicios servía, entre otras cosas, para que IBM vendiera el servidor web Apache bajo otro nombre, con añadidos y modificaciones propietarias en forma de producto cerrado.
Confundes las licencias de "codigo abierto" con las licencias copyleft, y no es lo mismo, o si quieres considerarlo así, entonces la APL no es una licencia de "código abierto".
La licencia Apache 2.0 es la única (creo, o las más conocida y usada) que permite usar código GPL, por ejemplo, junto con código Apache, u otros, sin mayores problemas.

Bastante falso ;). Código bajo la licencia Apache 2.0 se puede usar en un proyecto bajo la licencia GPL si se usa la GPL versión 3 o superior, con la GPL 2, muy común, no se puede. Por otro lado, en un proyecto bajo Apache no se puede utilizar código GPL, ni con la 3. Solo hay compatibilidad en una dirección y a partir de la versión 3 de GPL y la 2 de apache. Lo dicen la propia Apache y la GNU. Por otro lado, hay bastantes (una veintena o así) licencias que son compatibles con la GPL, como por ejemplo la de Mozilla o la de FreeBSD.
Lo que ha hecho es dar la impresión a sus usuarios y clientes de que ellos son los autores de las clases en cuestión, mediante la refactorización de los packages, de tal manera que PrimeFaces no aparezca para nada en los imports, y sin aportar trabajo alguno en forma de mejoras.

Falso. Ofrecen el código bajo la misma licencia Apache, donde en las cabeceras pone de quién es el código original y en las release notes pone que usan software proveniente de PrimeFaces. Si eso es esconder lo que han hecho, son unos incompetentes disimulando. Pretender que cambiarle los nombres a los paquetes ha sido para disimular y que nadie se enterase me parece un insulto a la inteligencia.

En resumen, la licencia lo permite, han respetado todos los términos y en vez de reinventar la rueda han aprovechado lo que hay en la comunidad y lo han mejorado, según ellos por supuesto... en fin, que esto es un ni contigo ni sin ti. Si reinventan la rueda por que lo hacen, si no lo hacen entonces es por que usan el código libre de otros... ¡¡¡LIBRE!!!

febrero 13, 2012 | Unregistered CommenterJustOneMan

Pero en lo que leo en la respuesta de IceFaces, es que ellos ofrecieron a PrimeFaces trabajar juntos en la mejora de los componentes y PrimeFaces se negaron a trabajar con el equipo de IceFaces, entonces IceFaces procedió por su cuenta a modificarlos, es decir, PrimeFaces si sabía que IceFaces estaba trabajando con sus componentes, por otra parte IceFaces ha liberado todos los cambios que han hecho, como la licencia de código abierto lo permite. Yo personalmente llevo utilizando los componentes de IceFaces hace mas de cuatro años y la calidad y productividad son indiscutibles, a pesar de que los componenetes de PrimeFaces son mas avanzados que los de Ice, están lejos de la calidad de Ice, lo digo con conocimiento de causa.

febrero 13, 2012 | Unregistered Commenterferunal

@JustOneMan
Tampoco pretendía con dos frases generales, como cualquier lector inteligente puede deducir, hacer una análisis pormenorizado y detallado de las diversas licencias que existen, destacando sus versiones e incompatibilidades, incluso entre versiones de la misma licencia.
Los interesados saben dónde pueden recurrir para obtener toda la información que precisen.
En todo caso, sobra la palabra "falso", que puede sustituirse por "incompleto", o mejor todavía, "salvo excepciones e incompatibilidades".
¿No crees que el recurso a esa clase de puntillismo quisquilloso que has hecho, también podría calificarse de "amarillista y sensacionalista"?

febrero 13, 2012 | Registered Commenterchoces

Ahí si que admito que me dejas de piedra. O sea que afirmas cosas que no son verdad para apoyar tus argumentos y si las rebato con hechos, entonces es ser puntilloso... No se que decir ante eso, así que aquí lo dejo. Cada cual que entienda lo que quiera de la noticia, que al fin y al cabo ni me va ni me viene.

febrero 13, 2012 | Unregistered CommenterJustOneMan

choces: se te ve el plumero, que no usas jsf no se lo ha tragado nadie, ¿a quién quieres engañar?, es claramente obvio que has utilizado Icefaces y por ello te empeñas en negar lo innegable, que Icefaces se ha "apalancado" en del tiempo y esfuerzo de terceros para no quemar recursos propios, ¡y además ni lo menciona!

febrero 22, 2012 | Unregistered Commenterantichoces

Sorry, me equivoqué de nombre, el post anterior a choces era para JustOneMan. mis disculpas, choces, y te aconsejo que pases ya del plasta ese.

febrero 22, 2012 | Unregistered CommenterantiJustOneMan

Creo que el tema de las licencias permite hacer este tipo de cosas, ice finalmente ha reconocido que ha tomado las fuentes en algunos artículos de sus páginas. Creo que lo más importante de este problema es lo que dice Optimus Prime: "Somos tan buenos que hasta la competencia confía en nosotros".. así que quienes usamos Prime estamos bien encaminados... que pasará con RichFaces en JSF2.0?? www.clearminds-it.com

marzo 6, 2012 | Unregistered CommenterSantiago Mosquera

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>