Re: [Softwarelibre] Java 100% libre
No tienen nada que ver, pero me gusto mucho el analisis tecnico sobre el volumen de proyectos comunitarios y/o empresariales de soft libre que hace Francisco Palm de Venezuela. perdon por traer cosas de otro lado, pero me gusto los analisis de LOC y sobre volumen de personal y su productividad y errores El 2 de diciembre de 2008 13:08, Francisco Palm <[email protected]>escribió:
2008/12/3 Francisco Andrades Grassi <[email protected]>:
Si 'alguna ley de la política exterior prohíbe el intercambio con Cuba' entonces 'está inhabilitando para los cubanos la libre distribución de la GPL'. Esto incluye todo el software GPL desarrollado dentro de USA (Perl, Python, Linux, Xorg, MySQL, Postgres, OpenOffice, Debian, etc).
La enorme diferencia es que Perl, Python, Linux, Xorg, Postgres, Debian... (no es el caso de MySQL u OpenOffice) son proyectos verdaderamente comunitarios e internacionales, si el día de mañana la política internacional de los EEUU se pone aún más estúpida estas comunidades buscarán la manera de darle la vuelta. Sun no lo hará a menos que le convenga -muchísimo- en términos de ingresos.
El día de mañana cualquier desarrollador de software libre podría decidir cerrar su código y eso requeriría un fork a partir de la última versión GPL (nadie puede cambiar la licencia sobre los productos ya liberados como GPL). Java no es el proyecto de Software Libre más grande que existe, y la existencia de IcedTea demuestra que puede ser mantenido y mejorado por la comunidad en el supuesto negado de que Sun decida no continuar el desarrollo GPL.
Según ese razonamiento no debemos usar OpenOffice (porque Sun puede cerrar el código y 'es muy complicado para mantener un fork por parte de la comunidad'), MySQL (porque Sun puede cerrar el código y 'es muy complicado para mantener un fork por parte de la comunidad'), Mozilla (porque la Mozilla Foundation puede cerrar el código de la noche a la mañana), Apache (porque la Apache Foundation puede cerrar el código, aparte de que Sun es el principal colaborador de Apache), etc, etc.
No se puede comparar la complejidad y el tamaño de Java con MySQL o Firefox. Según Ohloh, OpenJDK son 2,402,709 líneas de Java, 463,927 líneas de C++, y 420,079 líneas de C. Apache son 132,069 líneas de C. Firefox son 36,526 líneas de Javascript, y 10,671 de C++. En total como 47,197 líneas.
Es decir, en líneas de código OpenJDK es un proyecto 24 veces mayor que Apache y 69 veces mayor que Firefox!!! sin considerar que en Software la complejidad de un sistema no aumenta de forma lineal con el número de líneas de código. De hecho, uno de los principales problemas con los proyectos de software es que se estiman mal los tiempos, especialmente cuando hay innovación.
LOC = lineas of code Steve McConnell hablando de "diseconomies of scale in software development", si un proyecto de 10 mil LOC se estima en 13.5 meses-hombre, se asume que un proyecto de 100 mil LOC se podría realizar en 135 meses-hombre, cuando en realidad se realiza en 170 meses-hombre. Así,
Así tenemos que por cada orden de magnitud, aumenta el esfuerzo por línea de código en aprox. un 25%. Así, 10 veces más de líneas de código con 12.5 veces el esfuerzo, y 100 veces más de líneas de código es un esfuerzo de 156.25 veces...
Así en R podríamos tener:
x = c(1,10,100) y = c(1,10*1.25,100*(1.25)^2) y [1] 1.00 12.50 156.25
Se hace un ajuste log-log ya que:
logy = log(y) logy [1] 0.000000 2.525729 5.051457 logx = log(x)
Con
plot(logx,logy) Se puede ver que el modelo es completamente lineal.
lm(logy~logx)
Call: lm(formula = logy ~ logx)
Coefficients: (Intercept) logx -8.340e-16 1.097e+00
Y Estimamos la complejidad de OpenJDK en relación a Firefox...
log(69) [1] 4.234107 4.234107*1.097e+00 -8.340e-16 [1] 4.644815 exp(4.644815) [1] 104.0441
Se puede estimar de modo muy grosero que mantener OpenJDK implica mantener aproximadamente 104.4 proyectos de Firefox. A eso me refiero que Firefox es faraónico. También alguien puede afirmar que el kernel 2.6 de linux son más 10 millones de líneas de código C. Ya, pero es que en el kernel de linux contribuyen según Ohloh más de 5 mil personas, en OpenJDK aparecen directamente 11 personas!!! (seguramente son más, pero estamos hablando del doble de líneas de código mantenidas por dos ordenes de magnitud más de gente). En linux hay muchos más desarrolladores ocupados de tareas muy puntuales, mientras que en Java todo está mucho más interrelacionado, a eso me refiero que es mamotrético.
En fin, Java tiene muchos usuarios, pero sus desarrolladores están dentro de Sun fundamentalmente, y para encargarse de fork de OpenJDK se requieren de 100 veces más desarrolladores autónomos de los que tiene el proyecto actualmente. Python tiene tan solo 1/3 de las LOC de OpenJDK y más de 10 veces de contribuyentes autónomos.
Deje así, buenos días.
F. Palm
-- -------------------------------------- [email protected] [email protected]
cel: 0414 5109177 tel: 0274 6352001
---- Yo creo que todavía no es demasiado tarde para construir una utopía que nos permita compartir la tierra. Gabriel García Márquez. _______________________________________________ Softwarelibre mailing list [email protected] RUMBO AL VI FORO MUNDIAL DE CONOCIMIENTO LIBRE Si desea: * Retirarse * Modificar su subscripción * Cambiar la dirección de correo * Tener mayor información de la lista Visite la siguiente dirección: http://solve.net.ve/cgi-bin/mailman/listinfo/softwarelibre
-- opino en http://blog.martinolivera.com.ar
Otra forma de estimar el costo de mantener OpenJDK sería averiguar el tamaño del equipo de gente que tiene Sun haciendo precisamente eso. 2008/12/2 Martín Olivera <[email protected]>:
No tienen nada que ver, pero me gusto mucho el analisis tecnico sobre el volumen de proyectos comunitarios y/o empresariales de soft libre que hace Francisco Palm de Venezuela.
perdon por traer cosas de otro lado, pero me gusto los analisis de LOC y sobre volumen de personal y su productividad y errores
El 2 de diciembre de 2008 13:08, Francisco Palm <[email protected]> escribió:
2008/12/3 Francisco Andrades Grassi <[email protected]>:
Si 'alguna ley de la política exterior prohíbe el intercambio con Cuba' entonces 'está inhabilitando para los cubanos la libre distribución de la GPL'. Esto incluye todo el software GPL desarrollado dentro de USA (Perl, Python, Linux, Xorg, MySQL, Postgres, OpenOffice, Debian, etc).
La enorme diferencia es que Perl, Python, Linux, Xorg, Postgres, Debian... (no es el caso de MySQL u OpenOffice) son proyectos verdaderamente comunitarios e internacionales, si el día de mañana la política internacional de los EEUU se pone aún más estúpida estas comunidades buscarán la manera de darle la vuelta. Sun no lo hará a menos que le convenga -muchísimo- en términos de ingresos.
El día de mañana cualquier desarrollador de software libre podría decidir cerrar su código y eso requeriría un fork a partir de la última versión GPL (nadie puede cambiar la licencia sobre los productos ya liberados como GPL). Java no es el proyecto de Software Libre más grande que existe, y la existencia de IcedTea demuestra que puede ser mantenido y mejorado por la comunidad en el supuesto negado de que Sun decida no continuar el desarrollo GPL.
Según ese razonamiento no debemos usar OpenOffice (porque Sun puede cerrar el código y 'es muy complicado para mantener un fork por parte de la comunidad'), MySQL (porque Sun puede cerrar el código y 'es muy complicado para mantener un fork por parte de la comunidad'), Mozilla (porque la Mozilla Foundation puede cerrar el código de la noche a la mañana), Apache (porque la Apache Foundation puede cerrar el código, aparte de que Sun es el principal colaborador de Apache), etc, etc.
No se puede comparar la complejidad y el tamaño de Java con MySQL o Firefox. Según Ohloh, OpenJDK son 2,402,709 líneas de Java, 463,927 líneas de C++, y 420,079 líneas de C. Apache son 132,069 líneas de C. Firefox son 36,526 líneas de Javascript, y 10,671 de C++. En total como 47,197 líneas.
Es decir, en líneas de código OpenJDK es un proyecto 24 veces mayor que Apache y 69 veces mayor que Firefox!!! sin considerar que en Software la complejidad de un sistema no aumenta de forma lineal con el número de líneas de código. De hecho, uno de los principales problemas con los proyectos de software es que se estiman mal los tiempos, especialmente cuando hay innovación.
LOC = lineas of code Steve McConnell hablando de "diseconomies of scale in software development", si un proyecto de 10 mil LOC se estima en 13.5 meses-hombre, se asume que un proyecto de 100 mil LOC se podría realizar en 135 meses-hombre, cuando en realidad se realiza en 170 meses-hombre. Así,
Así tenemos que por cada orden de magnitud, aumenta el esfuerzo por línea de código en aprox. un 25%. Así, 10 veces más de líneas de código con 12.5 veces el esfuerzo, y 100 veces más de líneas de código es un esfuerzo de 156.25 veces...
Así en R podríamos tener:
x = c(1,10,100) y = c(1,10*1.25,100*(1.25)^2) y [1] 1.00 12.50 156.25
Se hace un ajuste log-log ya que:
logy = log(y) logy [1] 0.000000 2.525729 5.051457 logx = log(x)
Con
plot(logx,logy) Se puede ver que el modelo es completamente lineal.
lm(logy~logx)
Call: lm(formula = logy ~ logx)
Coefficients: (Intercept) logx -8.340e-16 1.097e+00
Y Estimamos la complejidad de OpenJDK en relación a Firefox...
log(69) [1] 4.234107 4.234107*1.097e+00 -8.340e-16 [1] 4.644815 exp(4.644815) [1] 104.0441
Se puede estimar de modo muy grosero que mantener OpenJDK implica mantener aproximadamente 104.4 proyectos de Firefox. A eso me refiero que Firefox es faraónico. También alguien puede afirmar que el kernel 2.6 de linux son más 10 millones de líneas de código C. Ya, pero es que en el kernel de linux contribuyen según Ohloh más de 5 mil personas, en OpenJDK aparecen directamente 11 personas!!! (seguramente son más, pero estamos hablando del doble de líneas de código mantenidas por dos ordenes de magnitud más de gente). En linux hay muchos más desarrolladores ocupados de tareas muy puntuales, mientras que en Java todo está mucho más interrelacionado, a eso me refiero que es mamotrético.
En fin, Java tiene muchos usuarios, pero sus desarrolladores están dentro de Sun fundamentalmente, y para encargarse de fork de OpenJDK se requieren de 100 veces más desarrolladores autónomos de los que tiene el proyecto actualmente. Python tiene tan solo 1/3 de las LOC de OpenJDK y más de 10 veces de contribuyentes autónomos.
Deje así, buenos días.
F. Palm
-- -------------------------------------- [email protected] [email protected]
cel: 0414 5109177 tel: 0274 6352001
---- Yo creo que todavía no es demasiado tarde para construir una utopía que nos permita compartir la tierra. Gabriel García Márquez. _______________________________________________ Softwarelibre mailing list [email protected] RUMBO AL VI FORO MUNDIAL DE CONOCIMIENTO LIBRE Si desea: * Retirarse * Modificar su subscripción * Cambiar la dirección de correo * Tener mayor información de la lista Visite la siguiente dirección: http://solve.net.ve/cgi-bin/mailman/listinfo/softwarelibre
-- opino en http://blog.martinolivera.com.ar
_______________________________________________ Solar-general mailing list [email protected] https://lists.ourproject.org/cgi-bin/mailman/listinfo/solar-general
-- Pablo Manuel Rizzo ------------------------------------------------- "No hay camino hacia la Libertad, la Libertad es el camino" - Gandhi -------------------------------------------------
participants (2)
-
Martín Olivera -
Pablo Manuel Rizzo