viernes, 2 de septiembre de 2011

.NET es libre? hay que pagar licencias?

Ayer un amigo, con bastante preocupación, me hizo la siguiente consulta:

"Mira yo estoy en la Universidad aún tengo que sacar un proyecto. Que opción elegirías tu para desarrollar un proyecto web? Excluyendo ASP.NET, por el tema del pago de licencias."

Yo que andaba concentrado en NHibernate, moví la cabeza, como sacudiéndome el letargo, que me traían horas de desarrollo previo y le dije:

"Un momento, dijiste licencias por usar ASP.NET?"

A lo que Ricardo, respondió:

"Si, sucede que yo estoy laburando desde hace varios meses con .NET, vi todas sus ventajas y como tengo que hacer ese proyecto para la Universidad, le dije a mi docente si podía hacerlo usando .NET y ella me respondió que no, porque a) No es libre y b) Tendría que pagar licencias para usar"
Preambulo

Arrrgggg, dije para mis adentros: "Otro docente (en mi país) totalmente desinformado que a su vez genera desinformación y confusión entre sus estudiantes.". No es la primera vez que algún estudiante de alguna universidad (especialmente de las Universidades del Gobierno o Estatales) vienen hacia mí con dudas como esa y no los culpo. Si aquel que se supone sabe más que tu (el docente), te dice lo primero que escucho de alguna banda de resentidos o fanáticos de "otras" plataformas y que no ha tenido la voluntad ni el deseo de informarse correctamente..... ¿Qué podemos esperar de sus estudiantes?.... pues ese tipo de preguntas y aseveraciones.

Tampoco los culpo, porque el medio en el que hoy nos desenvolvemos, es un creciente caldo de cultivo de odios, miedos y resentimientos hacia Microsoft, caldo de cultivo que es aprovechado por cuan aprendiz desinformado de geek, que suelta la primera ideota que ha escuchado o leído incompletamente por ahí, alentados sin duda "malintencionadamente" por algunos otros geeks "seniors" que ven la oportunidad de hacer crecer su reputación con cuasi-seguidores-oveja que solo repetirán lo que ellos dicen, ocultando la verdad.

También existe un factor casi misterioso que alienta esta desinformación en mi país y sucede que desde hace varios años, las universidades públicas se han cerrado a enseñar únicamente J2EE como plataforma de desarrollo, con el mismo conjunto de argumentos que Ricardo vino a mí: "Si desarrollas en .NET te harán pagar licencias o tienes que pagar licencias, no es gratis, te cobraran…. Etc.", cosa totalmente equivocada, como lo explicare un poco más adelante. Si me preguntan quien metio esa idea en las universidades… la verdad no se.

Como podrán percibir, este es un tema que me molesta y repito, no por los estudiantes, sino por sus docentes y las universidades y su corta y mediocre visión. Es por esta razón que por varios años consecutivos tomo cartas en el asunto, visitando las Universidades en las ciudades que me toca vivir y dando charlas o conferencias gratuitamente sobre este tema y temas técnicos.

Este articulo/post servirá a la postre, como una referencia a preguntas y dudas similares, creo que es más que suficiente preámbulo.
Respondiendo…

Volvamos a la respuesta y los argumentos esgrimidos por la docente de nuestro amigo Ricardo:
1. NO ES LIBRE?

Ella aduce que .NET no es libre, como yo conozco bien estos argumentos puede que por LIBRE este entendiendo una de las siguientes opciones o en el peor de los casos una combinación absurda de todas ellas:


a) No es Gratis.

Contexto

.NET no es un producto, .NET es una plataforma, .NET es la suma de varios productos, servicios e incluso mejores prácticas; desde ese punto de vista no podría ponerse a .NET un precio. Tal vez está entendiendo por .NET a VisualStudio.NET, bueno aquí hay algo de cierto en la afirmación, VS.NET en sus versiones Profesional/Ultimate no son gratis, pero existen versiones gratuitas de VS, las versiones llamadas Express, que pueden ser encontradas aquí.

Si alguien usa estas versiones puede desarrollar aplicaciones .NET sin pagar la licencia de VS, incluso puedes desarrollar productos comerciales y venderlos y no pagaras nada por el uso de estas versiones Express. Aquí también hay una duda recurrente y es lo relacionado a SQLServer, efectivamente las versiones comerciales de SQLServer son sujetas a licenciamiento, pero también se dispone de una versión Express que pueden descargarla aquí, que también es totalmente gratuita, para hacer incluso proyectos comerciales.

Respuesta

Depende del producto que estes usando, algunos productos son gratuitos y de libre distribucion, otros estan sujetos a un pago por licenciamiento.

b) No es OpenSource.

Contexto

Entiéndase por OpenSource la posibilidad de disponer del código fuente de un producto de software, tal cual se define aquí; si nos vamos por ese camino y analizamos algunos de los muchos posibles pensamientos que la docente, de nuestro "caso de estudio", podría estar teniendo obtenemos lo siguiente:

Respuesta

Es VisualStudio.NET OpenSource? definitivamente no!, no tenemos en nuestras manos el código fuente de VS y yo me pregunto: Realmente lo necesitamos? Para aquellos que creen que por objetivos académicos y para aprender y para saber que pasa realmente por “detrás”, la respuesta sigue siendo no. Aunque se que Microsoft ha compartido el código de Windows con gobiernos y universidades bajo un programa/licencia conocido como Shared-Source, quizá exista una iniciativa similar para el código de VS. Me sigo encontrando personas que aun quieren aprender a hacer un entorno similar a VS y siguen preguntando más allá de la respuesta anterior. Para ellos quizá les sirve saber que existe un entorno "parecido" a VS que se llama SharpDevelop, este si es un proyecto OpenSource e inclusohay un libro que relata como construyeron su entorno, que es totalmente gratuito. Además de ser algo que he leído, probado y recomendado académicamente, es una muestra más que con .NET también podemos hacer proyectos OpenSource.

Aquí también es oportuno aclarar que pueden acceder al código de la libreria de clases del Framework.NET, el cual puede ser descargado mediante VisualStudio y a demanda y puede verse como han sido construidas las clases del FX y ni que decir de las toneladas de aprendizaje que esto trae.


c) No es libre.

Contexto

Quizá la docente está pensando, en la libertad en el sentido estricto o al menos en el sentido tal cual Richard Stallman, la propuso en su GPL. Para los que leen esto por primera vez seguramente es sorprendente ver que OpenSource != SoftwareLibre, son dos cosas totalmente distintas y a su vez parecidas. Estas semejanzas son las que son aprovechadas malintencionadamente como dije, por algunas personas, que con el ánimo de confundir no hacen la clara distinción entre ambas. En este vínculo he colocado un resumen de una de las charlas que di hace tiempo sobre este tema.


Respuesta

VS no está sujeta a la licencia GPL, pero nuevamente lo pregunto: Realmente lo necesitamos? Quiza desde el punto de vista de un purista de la libertad si resulte importante, pero desde mi punto de vista de la productividad sigue siendo poco relevante.

Como vimos el tema de que .NET es gratis/libre/opensource no es de lo más simple de explicar y tampoco hay una respuesta inmediata a una afirmación, que no tiene mayor información. A continuación respondemos la segunda afirmación realizada por la docente.
2. HAY QUE PAGAR LICENCIAS?

Como vimos en el punto anterior, dependiendo del caso y de las herramientas que estemos seleccionando, tendremos que pagar o no licencias. Si deseamos usar VS o SQL Server en una de sus versiones Standard/Profesional/Ultimate si tendremos que pagar licencias; si deseamos usar las versiones Express, NO, no tendremos que pagar ninguna licencia.

Pero la respuesta del licenciamiento en el ámbito académico va más allá de la anterior. Microsoft ha creado un programa denominado Microsoft Campus Enrollment (yo lo conocía por Campus Agreement), que desde el 11 de Marzo será reemplazado por Microsoft Enrollment for Education Solutions. Este programa permite que las Universidades licencien el uso de su software, por un precio anual (yo diría incluso nominal por su bajo costo) de tal manera que todos sus laboratorios, docentes, administrativos y estudiantes, pueden usar los productos Microsoft (hay que ver que algunos productos están restringidos). En el caso de VS si está permitido, así como muchas de las soluciones de la plataforma .NET, por no decir todas.

Entonces el tema de licenciamiento, para una universidad, no es un pretexto para no usar .NET, yo creo que pasa por un tema de información que deben recibir las autoridades de la universidad y también por una cuestión de voluntad; si las autoridades conocen los beneficios que traen estos programas o similares pero no tienen la voluntad de implementarlos es otro tema, solo están perjudicando a sus propios estudiantes.

Conclusiones

En todo caso no debería existir un docente que restrinja a un estudiante, la utilización de una herramienta o plataforma, eso demuestra solamente el miedo que puede que tengan a algo que no conocen o sus limitaciones o prejuicios personales o de sus superiores.

Así que ya saben estimados amigos estudiantes, no se dejen intimidar por sus docentes o por la universidad, el conocimiento es libre y muchas de las herramientas que ofrece Microsoft también, si alguno tiene un “caso” difícil, no dude en llamarme que gentilmente acudiré en su ayuda. :D.


Notas:
MonoDevelop, funciona estupendamente...

1. ASP.NET MVC es código abierto. Pueden ir a Codeplex.com y buscarlo allí. Existen al menos 2 componentes más de .NET que son código abierto y están en Codeplex.

2. Mono implementa el runtime común (puede ejecutar binarios compilados con VS) y las librerías base, más algunas librerías específicas de Mono. En mi experiencia, he podido ejecutar el .exe o reconstruir el proyecto con monodevelop sin inconvenientes. Obviamente, hay librerías con llamadas al sistema dependientes de Windows que en Mono no existen, y probablemente no existan. Para todo lo demás, al ser de código abierto, están invitados a desarrollarlo y completarlo ustedes mismos.

3. Uno de los componentes de Mono es un módulo para Apache (y, recientemente, soporte para Nginx también) que puede correr aplicaciones ASP.NET. Aplica la misma realidad de interoperabilidad y compatibilidad que para el resto de la aplicación.

Aclaro el tema de nginx para que no digan que es solo con Apache porque Microsoft es Sponsor Platinum de Apache.

4. Mono no es la única implementación alternativa de .NET, existen muchas otras, la mayoría comerciales, y esto es así gracias a que .NET es una tecnología abierta disponible bajo varios mecanismos (la libertad o la apertura no la define una licencia ni un modelo de desarrollo)

a. Open Specification Promise (patent grant, vinculante, de Microsoft) -- adicionalmente en la mayoría de las jurisdicciones en América Latina las patentes de software no son reconocidas.

b. Estándares ECMA e ISO, en el caso de C# (.NET admite otros lenguajes). Estos estándares son, por política de estas instituciones, abiertos.

c. Licencias de código abierto, para casos como ASP.NET MVC.

5. IIS viene incluido en Windows Server, no hay que pagar licencia para el servidor.
6. Aparte de las herramientas Express y de Mono, para aquellos que todavía insisten en que para programar en .NET con plataforma Microsoft necesitan hacer grandes inversiones les invito a bizspark.com y dreamspark.com, sus emprendimientos pueden aplicar a 3 años de tecnología Microsoft sin costo, o dreamspark.com si son estudiantes.



Fuente: geeks.ms/blogs/eortuno
     

Buenas Prácticas para la Migración al Software Libre


“El Software Libre es gratuito, seguro, aporta calidad, se basa en estandares abiertos, tiene libertad para utilizarse en cualquier sitio, favorece la cultura de la colaboración, aumenta la capacidad tecnologica, proporciona ahorro de gastos en informatica, reduce la dependencia de proveedores y fomenta el desarrollo de la empresa local.”

La anterior es una excelente explicación que se acerca de forma muy amplia a los beneficios que trae usar Software Libre en una empresa, negocio, Instituto Educativo o cualquier otro lugar que necesite de una buena infraestructura tecnológica con el fin de lograr la mayor robustez, integridad y seguridad en sus servidores y los servicios que prestan. Sin mencionarlas grandes cantidades de dinero que se pueden llegar a ahorrar, evitando pagar licencias costosas regularmente, la migración al Software Libre a la larga trae más ventajas que desventajas.

Es cierto que son sistemas un poco más complejos de administrar y configurar pero se complementan muy bien con la seguridad y las opciones que se pueden llegar a alcanzar. Además de esto, el Software Libre es una comunidad con miles de personas dispuestas siempre a ayudar y colaborar y que constantemente crean contenidos de calidad y se actualizan cualquier cantidad de servicios informáticos con el fin de mejorar y ofrecer lo mejor para los usuarios.


Por estas razones hoy quiero compartir una excelente guía, que aunque no es nueva si trae consigo un excelente contenido con las mejores prácticas a la hora de migrar al software Libre de una forma segura y estable. Es un proyecto creado por SourcePYME en el Instituto Tecnológico de Informática y escrito por: 

* Autor: Daniel Saez (dsaez@iti.upv.es)
* Autor: Martn Peris (marpemar@iti.upv.es)
* Autor: Ricard Roca (ricardroca@iti.upv.es)
* Autor: David Anes (danes@iti.upv.es)


El nombre del documento es Migración al Software Libre. Guía de Buenas Prácticas – Proyecto SourcePYME. Consta de 126 páginas y 12 capítulos: 

* Índice
* Prólogo
* Motivación
* Requisitos
* Planificación
* Implantación
* Evaluación
* Casos de Éxito
* Promotores del Software Libre
* Software Recomendado por SourcePYME
* Directorio de Software
* Bibliografía

Descarga: Libro en formato ZIP


Fuente: somoslibres.org