Después de muchos años desarrollando páginas y aplicaciones web muchas veces  me he planteado cual sería el equipo informático ideal para realizar tal actividad. Es decir, la combinación idónea de hardware y software que permita desarrollar de manera rápida y ágil, mantener un control de los proyectos, visualizar correctamente los resultados, interactuar de manera sencilla con los servidores, etc..

El equipo mínimo debería constar de un ordenador,  con monitor, teclado y ratón. Esa es la base de la que debemos partir. Añadidos y modificaciones serán bienvenidos, por ejemplo, un segundo monitor, básico si estamos usando un ordenador portátil en lugar de uno de sobremesa. Preferiblemente panorámico si vamos a programar o de gran tamaño si vamos a diseñar. Una tableta digital y lápiz óptico también vendrían bien si nuestra principal tarea es el diseño.

doble-monitorFaltaría decidir si optamos por hardware de algún fabricante conocido o bien montamos un ordenador clónico. Si elegimos trabajar con un portátil, indudablemente debemos morir en alguno de los fabricantes que hay en el mercado, básicamente para poder tener garantías frente averías y desperfectos. En el caso de montar un ordenador de sobremesa debemos decantarnos por uno clónico, por el precio o bien recurrir a algún plan de leasing de algún fabricante. Por supuesto siempre tenemos la alternativa de Apple, buenos ordenadores, múltiples sistemas operativos, buen software de desarrollo.. pero no quiero que me consideréis un fanboy.

Una vez tenemos todo el hardware debemos elegir sistema operativo, en el caso de un PC podemos optar por la vertiente Windows o bien por alguna distribución de GNU/Linux. O bien decantarnos por Apple y su Mac OS X.

Afortunadamente, actualmente la mayoría de software dispone de versiones para alguna distribución GNU/Linux:

El tema de interacción con servidores está muy bien cubierto, de hecho en muchas distribuciones se puede montar con facilidad un servidor LAMP. Hay múltiples programas de acceso ftp, etc..

monodevelopActualmente, prácticamente todos los navegadores disponen de versiones para GNU/Linux y dependiendo de la distribución podremos optar a distintas soluciones. Únicamente Internet Explorer no se encuentra disponible, es el momento de virtualizar una instalación de Windows, bien con VirtualBox o con WineHQ, por supuesto está virtualización está abierta a otros programas (las soluciones de Adobe u otras suites y editores)

Los sistemas Windows se presentan como la alternativa más común y sencilla de encontrar en el mercado. Existe una amplia variedad de software y podemos optar a prácticamente todos los navegadores del mercado.

Windows, según versiones, dispone de su servidor web, denominado Internet Information Server, así como de versiones reducidas de SQL Server. Además puede instalarse rápidamente una estructura similar a LAMP (en este caso denominada WAMP)

dreamweaver-cs4

Se pueden virtualizar varios sistemas, entre ellos distribuciones de GNU/Linux con VirtualBox.

Y finalmente, Mac OS X, que dispone de todas las ventajas de los sistemas Unix, además del software de GNU/Linux y Windows. Es de largo el sistema que permite mayor número de combinaciones y gracias a la virtualización probar las aplicaciones web en cualquier navegador.

Desde Mac OS X también se puede optar por una solución MAMP, dado que viene de serie con Apache, PHP y MySQL. Así mismo dispone de un gran número de programas cliente de ftp y siempre se puede recurrir al terminal que es un potente bash de Unix.

codaComo ya he comentado, gracias a VMware, VirtualBox o Parallels pueden virtualizarse otros sistemas, con lo cual es bastante sencillo probar las aplicaciones. Además de todas estas herramientas y aplicaciones no hay que olvidar que todo el conjunto de librerías y herramientas que permiten el desarrollo en iPhone y otros dispositivos móviles de Apple únicamente está disponible para su sistema operativo.

Por supuesto, este artículo está abierto a sugerencias y opiniones, para eso están los comentarios y me gustaría que entre todos pudieramos encontrar nuevos programas o alternativas para solucionar los problemillas (sobretodo con los navegadores) que van surgiendo en el día a día del desarrollo web.