jueves, 14 de octubre de 2010

Quiero hacer un proyecto de software Libre...(I)

¿Quieres desarrollar Software Libre?
Lo que les voy a platicar, es mi experiencia como individuo, como Desarrollador no profesional y como entusiasta del software libre.
En otro artículo he mencionado las desventuras que me han sucedido, sin embargo, ahora quiero ser más didáctico para quienes aportar algo a la comunidad del software Libre.
Iniciando.
Utilidad: Elabora proyecto que sirvan a la comunidad, que tengan una utilidad sustancial. Los proyectos que más utilidad tienen son los que no existen o deben mejorarse.
No Duplicidad: En la medida de lo posible, no dupliques un proyecto ya existente, mejor aporta algo al proyecto existente o haz recomendaciones. Ejemplo: No intentes elaborar un IDE para Java si existe Eclipse.
Moral: Preparate para aguantar Trolls, anti-todos, retrógradas, Extremistas, etc, etc. Es muy común encontrar gente que le ve defectos a tu proyecto por el simple hecho de existir, y que además no aporta nada a la comunidad.
Ingresos: Preparate para no ganar nada, no esperes algún ingreso para tu software, los proyectos de software libre no son para hacerse rico, si tu programa pega... tuviste suerte.
El Lenguaje: Ma che cosa fai!!... Escoger el Lenguaje de Programación es muy difícil, debes escoger uno con futuro, uno apegado a tu presupuesto ($ 0.000), uno con una curvatura de aprendizaje corta, uno relativamente fácil de mantener, uno que si al menos no es super-robusto sea practico, uno que sea manejado por el personal con el que cuentas(1?.. 2..), uno que sea conforme a lo que vas a necesitar (Standalone o Web)... vaya... yo escogí PHP, tiene soporte futuro, no es tan cambiante como python, no es tan robusto como java pero si es seguro, es de fácil aprendizaje, es una navaja suiza, no es tan tipado como perl pero es igual de bueno, no es tan bonito como python pero es practico, soporta todas(casi) las bases de datos, es multiplataforma... etc, etc. Yo uso el editor Eclipse-PHP o Komodo edit y son estupendos.
PHP es un lenguaje de servidor, sin embargo para la convivencia entre usuario y programa puedes usar HTML + jQuery, diseñando con Aptana, una opción a los visual puede ser Quanta+; quien ha reactivado su desarrollo (Amén!). Si escoges PHP lo mejor es basarse en un Framework (yo le apuesto a Solar), pues en un futuro facilitará trabajos como la traducción a otros idiomas, el depurado, la neutralidad SQL, etc.
Con .Net ni ne NetTas (metas), a mi me gusta .net y c#, me gusta más que java, pero... es una trampa con una bomba de tiempo; hasta que no se defina la trampa del "OpenCore" no es un lenguaje para un verdadero proyecto OpenSource.
La Base de datos: Otro que escoger.. si usas un Framework en PHP5 como adodb puedes usar cualquier engine, pero una de las mejores elecciones es MySQL 5.x; MySQL cuenta con IDEs visuales como MySQL Workbench, Datastudio (gratuito v4.5) o SqlYog(Con wine se lleva muy bien), y todo sin invertir un solo peso(dolar, euro, duro, etc). Aunque MySQL está en las manos de Oracle, por lo que su futuro es incierto. Una opción sería PostGreSQL pero es como poner a trabajar un elefante a hacer el trabajo de una ardilla (como analogía del tamaño); pero es una buena opción (La mejor después de MySQL).
Sé Ordenado: Yo discierno un poco de lo que dice Torvals en lo que se refiere a iniciar un proyecto, Torvals dice que hay iniciarlo con algo pequeño... yo digo que comiences un proyecto grande con lo grande y uno pequeño con algo pequeño. Si tu proyecto tendrá grandes dimensiones, asegurate que esas dimensiones hagan que tu proyecto se quede en el camino. Si tu piensas que tu proyecto crecerá mucho en complejidad, asegurate de usar herramientas como el Modelado UML, al documentación de procesos, Workflow, etc... a medida de tu posibilidades. esto hará que tu puedas corregir y actualizar procedimientos con facilidad, además servirá para que otros programadores te ayuden y comprendan la idea... en fín.. utilizar una metodología de programación Estándar (SCRUM?).. esto lo aprendí con creces.
Documenta: Documentar parece una tarea tequiosa, engorrosa y molesta; pero sirve, y sirve de mucho. documentar tu código, tus procedimientos, tus intenciones... obtiene sus frutos a la larga.
Usa Programación Orientada a Objetos: En lo que puedas, elabora todo tu código en Programación Orientada a Objetos, esto ayudará mucho a alimpieza del código, a la independencia de objetos, la definición de rols, etc, etc...
Manten tu código Limpio: Un código limpio, es un código legible. Si no tienes un código limpio, podrías perderte en una texto de 6 Mil líneas... lo mejor es mantener un código limpio y lo más compacto posible.
hasta la proxima ...

No hay comentarios: