Toda mi vida desarrolle sobre editores tipo editplus, notepad ++, también use algo un poco mas avanzado como dreamweaver que te auto completaba las funciones, y alguno que otro mas. Pero hace dos años que uso Eclipse, y la cosa cambio mucho para mi, tengo todo, lo que necesito en una sola aplicacion, no tengo que switchear nada con ctrl + tab tengo todo integrado, svn, auto completado, formateador de código, funciones para renombrar una variable, debuger, el maravilloso outline que me muestra todas las propiedades, metodos de una clase, el explorador de archivo y hasta un navegador web para probarlo (aunque sigo usando Firefox), y muchas cosas mas que al tenerlas automatizadas ni me acuerdo. Pero lo importante, es que tengo todo lo que necesito para desarrollar, y esto es importante porque no pierdo tiempo en buscar el nombre de la función de otro archivo o que parámetros recibe el método de una clase porque automaticamente me sugiere todo, con la opción de seleccionar con las flechitas cual quiero, y auto completarme todo. O el fantástico ctrl + shift + f, el cual después de escribir código a lo loco me corrige todo los errores de indentacion en milisegundos, sin que necesite revisarlo.
La idea de escribir este articulo me surgió después de leer el articulo con la compilacion de 10 recomendaciones hechas por “especialistas” y en el punto 5 recomendaba usar algún IDE para acelerar los procesos de desarrollo de software, y no solo acelerar sino para unificar, como conté en otro articulo con una combinacion de teclas todos podemos tener el mismo estándar de indentacion, sin tener que chequear el código. Además se facilita mucho el uso del svn, y para una persona sin conocimientos de subversión,, se hace muy fácil, hacer un commit, agregar archivos al repositorio, actualizar, etc. Voy mas allá y digo que podes usar svn sin tener idea de lo que es.
Pero no quiero quedarme solo en eso, sino que además es extensible, podemos agregarle plugins, para javascripts, para css, para html, porque no para ruby, o python, o cualquier otro lenguaje que se nos ocurra.
Yo uso Zend Studio for Eclipse que si bien es pago, solo unos u$s 300, es un producto completisimo, pero también esta la alternativa libre, Eclipse PDT. Los dos son productos excelentes y cumplen la mayoría de las funciones.
Por otro lado tenemos el famoso y potente VI, que en definitiva es un editor de texto, pero realmente poderoso, se pueden hacer cosas que en Eclipse no. Es 100% configurable, y muchas de las funcionalidades de los IDE actuales, se pueden implementar para VI. Estamos en contacto directo con la consola que nos da mas control y poder a la hora de programar, pero a que costo?
Digo esto porque si el VI tiene cosas buenas, la amigabilidad no es una de esas cosas.
En un articulo escrito por un compañero de trabajo, menciona que el VI tiene una curva de aprendizaje muy grande, y acá es donde no me cierra.
Todo desarrollador web debería saber usar básicamente el VI, me refiero a poder copiar, pegar, buscar, buscar y reemplazar cadenas. Pero no es algo simple esto es totalmente distinto a cualquier otro editor de texto gráfico, pero tiene que ser una necesidad ya que muchas veces vamos a tener que meter las manos en servidores remotos, que no tienen entorno gráfico y otra de las características de VI, es que en cualquier servidor Linux del mundo escribís VI, y lo encontras.
Recomiendo la lectura del articulo VIM com IDE, porque muchas de las cosas que mencione arriba que se podían hacer con un IDE, muestra como hacerlas para VIM.
Pero, si bien en VIM se puede hacer lo mismo que se hace con un IDE (hasta lei que se puede integrar el svn), para hacer un search and replace, en vim tendriamos que hacer
:1,$ s/cadena_original/cadena_nueva/g
Esto con Eclipse es mucho mas intuitivo y facil, solo tenmos que apretar ctr + f completar los campos y ctr + a para que haga un reemplazo generl.
Por ahí soy todavía soy un chico windows y soy reacio a lo no amigable, pero mas allá de eso tengo en claro que cada herramienta cumple su propósito, y para desarrollar no hay nada como un IDE.
Obviamente nadie desarrolla en bash con Eclipse, pero aoca hablamos de programacion web. Tampoco creo que muchos locos anden usando VIM para programar en JAVA, y ni hablar de .net.
Los linuxeros de alma no van a estar muy deacuerdo conmigo, pero es una realidad, la consola te da poder pero no es comoda y mucho menos amigable, y no hablo solo por mi o por un usuario avanzado, sino tambien de los programadores recien iniciados que ya bastante problemas tienen aprendiendo a usar el lenguaje, como para agregarle la carga de aprender a usar algo tan exigente como VI.





No estoy de acuerdo contigo en que sea más intutivo el CTRL-F ése de Eclipse que el comando s de VI.
¿qué ocurre cuando en Eclipse quieres buscar o cambiar los caracteres de tabulación por espacios? ¿cómo pones el carácter de tabulación en la cadena a buscar?
Por cierto, 1,$ se puede abreviar como %
:%s/cadena_a_buscar/cadena_a_poner/g
@Jones que existe la búsqueda con expresiones regulares.
buscar: \t
reemplazar: \s\s\s\s
Gracias Jimmy. Una respuesta perfecta, aunque el vi para la busqueda es mas groso y se pueden hacer mas cosas.
En general estoy de acuerdo con el artículo. Un par de comentarios nomás.
1 – El Eclipse (como también el ZDE) tienen integración con SVN y te permiten trabajar con él sin saber prácticamente de qué se trata, pero eso conduce a las peores prácticas en el uso del SVN, como comitear sin comentarios, comitear cada cambio pelotudo que hacés, etc. Yo en algún momento trabajaba de esa forma. Después aprendí un poco más a usar el SVN y me di cuenta de que estaba haciendo todo como el orto y me hice amigo del svn de consola.
2 – No creo que el VI sea obligado para cualquier programador. Sin duda lo es para cualquier administrador de sistemas y para cualquier geek. No es nada intuitivo para el que aprendió utilizando cualquier otro tipo de editor, hay que nacer de nuevo más o menos jeje. O sea, para la gente que labura con Unix hace mucho tiempo es casi natural (por eso muchas otras aplicaciones implementaron los shotcuts del vi, como Gmail o el Vimperator que mostró Hugo Arregui el otro día), pero para los que somos más nuevitos es un aprendizaje. Pero una vez que lo aprendés a usar es hermoso y cuando tenés cierta cancha hacés algunas cosas muy rápido.
Es obvio que también aca pasa mucho por gustos y por costumbres. Como decís los IDEs te facilitan muchas cosas al tener todo integrado en un mismo lugar, pero también es cierto que lo hacen a costa de consumir una gran cantidad de recursos. El vi/vim no consume nada de memoria y para editar un archivo rápidamente es sumamente sencillo y veloz. También como decías hay algunas cosas que los editores más comunes no soportan. Una que se me ocurre ahora que es buenísima es el marcar por bloque (ctrl+v).
En última instancia para trabajar en equipo yo siempre prefiero que cada uno codee donde le sea más cómodo, siempre y cuando el resultado (el formato de los archivos, encoding, uso de tabs/espacios, estilo de código) sea relativamente uniforme.
Saludos
@andres: Tampoco es tan dificil usarlo, con solo saber algunos tips, que voy a armar en algun post en este blog, es suficiente. Obviamente se pueden hacer mil cosas pero como dije antes, con solo saber copiar y pegar codigo, o buscar y reemplazar algo es suficiente, no tenes que saber programar macros para tus comandos
Cuando hablo de que es necesario solo por el hecho que cuando te conectas por ssh, tene en cuenta que no siempre en un desarrollo podes respetar los estados de un sistema ( local, qa, deploy, prdocuccion).
Es fundamental para un sysadmin, pero lo minimo tenemos que saber lo usar, ademas los man de los programas en linux usan los comandos de vi
Desde hace un tiempo estaba peliando con los IDEs mas usados por su problema de performance, todos levantan minimo unos 300mb en memoria para poder tener una interfaz completa.
Empece a usar VIM por la recomendacion de un amigo, hace 1 semana que lo uso y ya noto que es mucho mas potente de lo que imaginaba, con VIM abierto y una terminal mas (hay cosas que hago por comando por falta de conocimiento de VIM) y puedo hacer cosas que con Eclipse por ejemplo no podia, o demoraban el quintuble que con VIM.
Lo de amigable o no, depende de como uno tome ese termino, para mi es mas amigable que despues de 1 mes de uso una herramienta te deje hacer todo lo que queres, muchos escapan a una herramienta como VIM porque hay que aprender algunos comandos, creo que desechar algo por tener que aprender una mnima parte es querer que la herramienta haga las cosas por uno.
Recomiendo VIM como editor, hay muchos plugins, muy sencillos de usar, y una vez que uno aprende algunos comandos por teclado, el mouse casi no se usa, y puedo decir que eso acelera enormemete el tiempo de desarrollo.
Yo uso vim en la notebook, porque todavia no puedo hacer que ande bien con los 512mb ram que tengo que me ocupa la mayoria el sqldeveloper y el Firefox.