Sólo un idiota puede ser totalmente feliz.
Mario Vargas Llosa
En los foros
Comentarios recientes
- Hola a todos, y me uno a la
18 semanas 5 días atrás - en ubunut 9.10 no me da la
19 semanas 1 día atrás - Quisiera saber si con un plan
19 semanas 2 días atrás - Gracias!!!! me estaba
20 semanas 12 horas atrás - estoy pensando cambiarme a
20 semanas 1 día atrás - Hola,
mi experiencia con los
20 semanas 1 día atrás - Buenos días
He visto algunos
20 semanas 2 días atrás - Alexis vuelve!, que estoy del
20 semanas 3 días atrás - HOLA soy nuevo en esto soy de
20 semanas 5 días atrás - Hola amigos, recien encuentro
21 semanas 19 horas atrás
Esta es la parte final en la serie sobre Emacs y Vim como editores para programadores. Ya he hablado sobre Emacs en la primera parte y acerca de Vim en la segunda. Veamos ahora cuál de los dos prefiero para modificar mi código, y en realidad todo lo demás.
¿Cuál es el escogido?
No creo que la mnemotecnia funcione para recordar comandos en editores de textos. Talvez sea útil para que la parte consciente de tu cerebro se sienta más segura con una nueva herramienta pero cuando trabajas con Vim o Emacs no hay mucho que pensar. Son tus dedos los que se encargan de todo y parecerían tener mente propia. Quienes tocan algún instrumento, como piano o guitarra, saben a qué me refiero. Así que, sin importar que tan complicada sea una combinación de teclas, ese no es el verdadero problema.
No me atrevería a decir si Emacs o Vim es mejor o peor por lo fácil o dificil que sea recordar sus combinaciones de teclas; se trata de tus dedos y cómo logran esas combinaciones. Con Vim nunca he tenido problemas pues la mayoría de comandos son una sola tecla o simples secuencias, no hay necesidad de presionar una o más teclas con los dedos de una mano mientras retuerces los de la otra. Con Emacs a veces quisiera transformarme en Reed Richards de los Cuatro Fantásticos, y es que parece que los creadores de Emacs tuvieran tres manos.
He usado Vim por muchos años y admito que, en algún momento, caí en la trampa de ninguno de los otros editores sirve. Pero llegó el momento en que decidí que tenía que darle una oportunidad a Emacs, que no en vano ha sido la elección de tantos buenos programadores durante tanto tiempo. Leí gran parte de la documentación y el libro de O'Reilly y usé Emacs por poco más de un mes para todas mis tareas, desde escribir código hasta mensajes de correo electrónico.
No puedo negar que fue genial poder correr la línea de comandos de MySQL en un buffer y copiar largas secuencias de SQL a un archivo PHP en otro; pero, la mayoría del tiempo, sentía que debía existir una mejor forma de completar ciertas tareas, como mover el cursor a través del texto.
Pero mi mes con Emacs no se trató solo de lo que pensaba que el editor debería hacer. Medí el tiempo que usaba para muchas labores frecuentes y noté que era más rápido con Vim. Incluso algo tan sencillo como corregir un error de sintaxis en la línea 20 tomaba más tiempo con Emacs.
Suelo editar mucho código a través de conexiones ssh así que necesito un editor que sea rápido en esas condiciones, especialmente cuando utilizo mi conexión móvil, que es más lenta que la de ADSL. Con Vim puedo trabajar sobre ssh con todos mis servidores usando el mismo archivo .vimrc que tengo en mis estaciones en casa y aunque Emacs también cumple con este requisito lo noté un poco más lento.
Vim puede separar el área de trabajo en ventanas, el equivalente a los buffers de Emacs, usar pestañas e incluso grabar la sesión para continuar trabajando con los archivos que se tiene abiertos en un determinado momento, recordando la posición del cursor en cada uno de ellos. Probablemente también es posible hacerlo con Emacs pero no encontré como.
Me parece que la propuesta de Emacs de tener muchas formas de completar la misma tarea, en contraste con la de Vim de una simple forma de completar una tarea, lo hace más complejo de lo necesario por momentos.
Incluso aceptando que sea debido a que lo he usado tanto tiempo debo concluir que mi editor favorito continúa siendo Vim. No tengo que detenerme a pensar cada dos minutos ¿cómo hago esto? cuando uso Vim, para mi es un proceso natural. Un buen editor debe seguir el mismo razonamiento que usó Amazon al diseñar el Kindle, debe ser invisible y permitirte hacer lo que quieres hacer.
Pero aún cuando Vim sea mi favorito hay mucho que me gusta en Emacs y estoy seguro que si Joy no hubiera escrito vi hoy usaría Emacs para todo. Es un digno segundo lugar en mi lista de los mejores editores para programadores.
Lo que todo buen hacker debe hacer
Tanto Vim como Emacs son excelentes aplicaciones. No importa cual de los dos uses, definitivamente tendrás una gran ventaja sobre aquellos programadores que están enamorados de sus editores visuales y adoran el sonido de cada clic con el mouse. Si te consideras un verdadero hacker, en el verdadero significado de la palabra hacker, debes trabajar con Vim o Emacs. Y esa, mi estimado geek, es una verdad absoluta.




Participa en la discusión
Interesantes reseñas.
Interesantes reseñas. Particularmente, no uso ninguno de los dos. Luego de tomar la decisión de dejar de usar IDEs (realmente no se adaptaban a mi flujo de trabajo) y probar varios editores de código, finalmente opté como preferido a Textmate. Tal vez no sea tan popular que Vim o Emacs y los lobos de cada uno de ellos lo vean como sólo una versión menor o "no digna", funciona para mí.
Realmente nunca pude trabajar exclusivamente en una terminal. Utilizo ssh casi todo el día para interactuar con mis servidores también (aunque capistrano se encarga de hacer todos los deployments, ssh siempre es útil para instalar algunas cosas, configurarlos, etc.), pero la facilidad de mover el mouse, usar tabs fácilmente identificadas por color, íconos y demás, hacen que disfrute TM.
Pero finalmente, sea la herramienta que sea, creo que la recomendación siempre es la misma: estudiarlo al máximo y aprender todos sus recovecos, trucos, atajos de teclado, etc. Es la forma de llegar a la máxima productividad disfrutándolo.
Cierto, debes obtener el máximo provecho de tu editor
Como desarrolladores no podemos permitirnos saber solo lo básico de las aplicaciones que usamos para nuestro trabajo e invertir un poco de tiempo en conocer todos los detalles sobre tu editor, sea el que sea, es absolutamente necesario.
Por cierto, he visto Textmate en muchos screencasts que usan Mac para desarrollo y me parece muy flexible y veloz. Si llega el día en que compre una Mac, en vez de cinco laptops aceptables corriendo GNU/Linux y un PSP, de seguro le dedicaré un tiempo a Textmate.
Saludos y gracias por tu comentario.
Alexis Bellido
Excelentes articulos!
Hola Alexis, muy buenos tus artículos, particularmente tambien uso Vim, pero lo uso junto a GNU Screen, como bien sabes desarrollo con Rails y esto me ayuda bastante a separar los entornos para el MVC y otros mas que necesite, entre los plugins que le meto a Vim el que mas destaco es fuzzyfinder y como crei que esto podria ser util para otros me cree un pequeño repositorio para ello.
Un uso interesante que le estoy dando a Vim y Screen es el de hacer programación en par remotamente, ya que Vim es muy ligero y Screen permite el uso de multiples sesiones.
Saludos!