sábado, 30 de abril de 2011

Herramientas OpenSource para el Desarrollo Web

No soy un purista del OpenSource, pero desde que entré al mundo Linuxero, además de mis hábitos de trabajo, cambié mi filosofía... ésta filosofía, me hace en la medida de lo posible tener mi equipo libre de Software Privativo; hay casos excepcionales, por ejemplo, le dí muchas oportunidades a Gnash, pero no me funcionó y tuve que pasarme a Adobe Flash.

No conozco personas puristas del OpenSource, pero sí a muchas que lo son de las aplicaciones privativas. De hecho, conozco a Desarrolladores Web que en su equipo, lo único OpenSource que tienen instalado es PHP, MySQL y Apache, el resto de aplicaciones son Privativas y la mayoría Pirateadas; sobra decir que éstos usuarios son Windowseros y tienen la cultura o filosofía del pirateo de software y tienen incluso su SO Crackeado (Igual no conozco a nadie que tenga un Windows genuino XD).

El Software libre es, en mi humilde opinión, tu mejor aliado cuando trabajas como Desarrollador Web. Si tienes ésta profesión, la mejor decisión que puedes tomar es pasarte a GNU/Linux y dejar los compliques que implica el tener que estar pirateando software todo el tiempo. Éste artículo lo redacto siguiendo la sugerencia que me hace uno de mis lectores (Por cierto, un saludo a @Johsanca ;)).

Para ser Desarrollador Web, aunque nada te impide usar Software Privativo, no lo necesitas, puedes ser felíz sólo con herramientas OpenSource, te voy a listar las que uso y obviamente recomiendo.

Programación/Digitación:
Para el tema de la programación, como se dice mucho en el mundo Linuxero: "Para los gustos, colores", por ende, puedo decir abiertamente que las opciones son muchísimas y todo depende principalmente de tu experiencia como programador y obviamente de si una herramienta de adecúa o no a tus gustos y necesidades.

Primero que todo, siempre les recomiendo a los nuevos en el Desarrollo Web, que si se encuentran en etapa de aprendizaje (así sean Windowseros) NUNCA usen herramientas que le puedan "ayudar" con cosas como el autocompletado de código, claro ejemplo los IDEs como Netbeans, Eclipse o Aptana, ya que ésto evita que aprendan el lenguaje como se debe. Imagínate aprendiendo PHP y que no recuerdes la función para obtener las entidades HTML de una cadena (htmlentities) y que apenas digitar "ht" el mismo programa te muestre las opciones y además de eso te sugiera los parámetros a ingresar, sin duda ésto es muy cómodo, pero en fase de aprendizaje no es lo más adecuado, ya que te acostumbras a no memorizar las funciones porque el IDE que usas para programar te las dice todas.
Haciéndo síntesis en eso, si eres nuevo (Igual para avanzados aplica, pues nos sirve para afianzar nuestros conocimientos) lo ideal, en vez de usar un IDE, sería aprender con el uso de un Editor con coloreado de Sintaxis; para ésta instancia, mi editor favorito desde antes de ser Linuxero es Geany (Aunque me encuentro aprendiendo VIM), a veces tiende a ayudar un poco en la digitación, pero el 95% del código contenido en tu aplicación será digitado por tí. Practicas en la digitación y al mismo tiempo en el aprendizaje.

Si eres un Programador con cierta experiencia y deseas programar ultrarápido, ya debes ser usuario de alguno de los IDEs antes mencionados, pero te recomiendo echarle una ojeadita a VIM, claro, muchos se quejan de la larga curva de aprendizaje, pero luego del acostumbramiento empezarás a ver los frutos y notarás que trabajas más rápido que con cualquiera de los IDEs que usas. Hay muchos que mencionan a Emacs, pero para mi gusto, sigue siendo mejor VIM. Nada evita que siendo novato puedas usar VIM, pero en vista de que la prioridad es aprender a programar, puedes empezar con Geany, Gedit o si eres Windowsero Notepad++, luego si lo deseas, te pasas a VIM o algún IDE. Yo me decanté por Geany por una sencilla razón: Quería usar en Linux las mismas herramientas que usaba en Windows y no acostumbrarme a dos herramientas diferentes (Gedit y Notepad++).

Maquetación/CSS/HTML:
Para maquetar, tienes valiosas herramientas, pero volvemos a lo mismo: si estás aprendiendo, lo mejor es que uses un editor sencillo.
Una de las mejores herramientas para trabajar con CSS dentro de GNU/Linux es cssed, también está Quanta Plus que trabaja muy bien con el HTML; Otra herramienta ícono en GNU/Linux es Bluefish; ésto en cuanto a las herramientas "livianas";
Para el trabajo con programas más potentes (y obviamente pesados) estan Netbeans y Aptana; ambos trabajan muy bien los lenguajes de lado cliente (HTML, CSS, Javascript). Netbeans es un "todo en uno", Aptana viene más orientado a la maquetación de sitios web, desarrollos que validen y compatibilicen, además del soporte tan completo que tiene para Javascript e integración con Firebug (Que reconozco no la he usado :P).
No me puede faltar VIM, que tiene soporte para todo y sin duda en tu caso, puede reemplazar cualquier herramienta gráfica independientemente del lenguaje en el cual trabajes, también repito la mención de Geany, Gedit y para los Windowseros Notepad++.
Si eres de los perezosos a los cuales les gusta dibujar todo en la página (Cosa que desaconsejo totalmente), puedes usar Kompozer, que para mí es como un Dreamweaver OpenSource. De todos modos, estoy en contra de la costumbre de dibujar los elementos de las páginas por múltiples razones, entre ellas está la basura de código que genera el programa; así que si piensas usar ésta herramienta, lo recomendable es que te metas en la parte del código fuente y nada de trazos; obviamente, manejando bien la herramienta, si el proyecto a maquetar no es importante para tí o lo quieres sacar rápido, el programa te puede sacar de apuros :).

Diseño:
Siempre antes de desarrollar un sitio, es recomendable que realices un boceto de cómo quieres que te quede; nunca es buena idea empezar a maquetar un sitio sin tener idea de cómo quieres que sea el diseño, todo debe pasar primero por alguna herramienta de Diseño Gráfico para poder conocer las "tripas" del maquetado a realizar.
Las herramientas en éste caso, ya las debes conocer.
Dependiendo de tus habilidades creativas, puedes desear ser tú mismo quien diseñe el Layout del sitio, en éste caso la mejor herramientas de todas es Gimp. Hay quienes prefieren diseñar el sitio en una herramienta de Diseño Vectorial, en éste caso, puedes usar Inkscape (Que apenas lo estoy aprendiendo, vengo de CorelDraw en Windows :)). Por lo general yo lo que hago es crear el Layout con Gimp y crear las íconos, botones y otros elementos con la herramienta de Diseño Vectorial.

Bases de Datos:
Para la creación y gestión de bases de datos, hay muchas herramientas en GNU/Linux.
MysqlWorkbench es excelente para éste propósito, no sé porqué, pero en Ubuntu nunca me ha trabajado bien, en el resto de distros siempre se ha comportado de manera decente. De todos modos, es una herramienta que recomiento totalmente para el Diseño de Modelos Entidad Relación y gestión del servidor de bases de datos. También se puede usar para realizar Querys, Backups, crear tablas, campos, etc; pero vuelvo a lo mismo de antes, si te encuentras en fase de aprendizaje, lo recomendable es que no uses la herramienta para éste propósito, en su lugar puedes usar el cliente por consola de MySQL y te obligas de ésta manera a aprenderte de memoria las sentencias para llevar a cabo cualquier objetivo.
También, si MysqlWorkbench te parece muy pesado (Que hasta cierto punto lo es) puedes usar PhpMyAdmin, que aunque no es mi favorito, hay cosas que le admiro, tiene ciertas facilidades que ni el mismo Workbench posee, como acceder directamente a una tabla con la cual se tiene relación simplemente haciendo Click en su enlace correspondiente dentro de un resulset.
Muchos pensarán en Mysql Query Browser y Mysql Administrator... sucede que aunque trabajé mucho tiempo con estas herramientas, no las recomiendo en lo absoluto, ya que no se encuentran en desarrollo y tienen demasiados Bugs.

UML:
Para el trabajo con UML, debo decir que aunque hay varias herramientas en GNU/Linux, a todas les veo ciertas desventajas. La que más me llama la atención es la que se puede instalar con Eclipse, su nombre es Eclipse UML Tools. También está ArgoUML, pero en mi opinión, es algo arcaico, ni siquiera soporta UML2, todavía está en el estándar de la versión 1.4. BoUML es una excelente alternativa, de hecho soporta UML2, y PHP5 a la perfección, pero su desarrollador debido a problemas legales (Los cuales desconozco) ha parado de manera definitva su desarrollo, sólo se dedicará a dar soporte sobre los Bugs encontrados y dará solución a los mismos, pero el Software no avanzará en características y dentro de algún tiempo quedará obsoleto. Quizás hay otras opciones, pero de momento me quedo con Eclipse UML Tools aunque sea endemoniadamente pesado en comparación con los otros.

Documentación:
Para realizar documentación tipo Manual, prefiero usar Scribus (El InDesign de GNU/Linux :)), que aunque usa Lirebrías QT, no he encontrado su homólogo GTK+ (Quizás no he buscado tanto XD). Me parece buena idea entregarle a un cliente una completa presentación sobre el proyecto con un trabajo tan bien presentado como los que se pueden conseguir con Scribus, obviamente es una herramienta que requiere aprendizaje, pero vale la pena.

Extra:
Como extra, debido a que los programadores pasamos la mayoría de tiempo digitando, es buena idea adquirir velocidad en la digitación. Klavaro es la herramienta que uso para éste propósito, aún no he terminado sus lecciones pero en esas estoy, y digito el triple de rápido que antes. Si tu teclado está en Español (El mío está en Inglés de EEUU) puedes bajar el Mecanet y usarlo con Wine, aunque honestamente la idea no me gusta mucho :P.
De igual manera, debido a que he recomendado tanto a VIM, al saber digitar sin ver el teclado, aprovecharás muchísimo más las bondades de usar éste potente editor.

Espero no haber olvidado ninguna de mis herramientass de uso laboral, en caso de que sí, actualizaré el artículo y les estaré avisando vía Twitter ;).
Publicar un comentario en la entrada