hacer TDD puede ahorrarte mucho debugging y si "IDE es debugging" puede ahorrarte el IDE.
Pero no te ayuda si tenes un editor malo. Y la pregunta que sigue es ¿Qué es un editor bueno para mi? no sabría decirlo, pero al menos puedo enumerar las cosas que A MI me gustaría que un editor de texto para programadores tenga:
- poder saltar a cualquier archivo del proyecto que este editando con el pensamiento (rapido). Me refiero a apretar una tecla y que me permita buscar por partes del nombre del directorio o del archivo
- poder partir la pantalla en dos/tres/cuatro y saltar de una a la otra con teclas (test <> impl. ?)
- coloreo de sintaxis... Si, si no la vida es todo blanco y negro. Esto es algo que voy estar mirando probablemente gran parte del día. Douglas Crockford usa otro tipo de coloreo de sintaxis que muestra los scopes en javascript, no lo he probado.
- detección de errores estupidos, estamos trabajando con javascript un lenguaje dinamico, no tenemos compilador, pero por suerte tenemos unas buenas herramientas jshint y jslint que se integran en muchos editores de texto incluso VI.. y te avisan rapidamente cuando te olvidaste un parentesis. también te lo va a avisar un TEST, pero nada como tener una linea roja debajo de la palabra al instante.
- que el editor sea extensible en un lenguaje que yo pueda manejar. Sublime usa python, para los plugins, y yo nunca programe en python pero si leí un poco y otro poco de copiar los plugins que ya existen ... hice varios que me ayudan en el día a día. Uno de los que más uso es este:
https://github.com/jfromaniello/sublime-node-require . El video esta un poco desactualizado, pero lo que hago es basicamente llamar a un popup que me permite buscar en todos los archivos, modulos instalados, y modulos nativos de node... con el nombre o una parte del nombre y automaticamente me inserta el "require" con el path relativo calculado solo.
- macros. muchas veces tengo que hacer el mismo cambio en varias partes del archivo, o de varios archivos.
- selección multiple... seleccion en columna etc. Como todo lo demás, es una ayuda que hace que escribas más rápido o que cambies algo más rápido
- buscar y reemplazar en archivo, carpeta o en todos lados.. con los tipicos filtros de regular expression, palabra completa, case [in]sensitive.
- que tenga un core simple, pero un userland enorme y una comunidad pujante que haga miles de plugins por día de los cuales solo instalare el %0.1. Con sublime me pasa que cada vez que voy a trabajar en un lenguaje de programación que no conozco con 3 teclasos instalo el hint-er y el coloreo de sintaxis para el lenguaje; jade, ejs, razor, puppet, etc
Habiendo dicho esto, sé que hay mucha gente que le gusta programar en vi y hacer plugins en Vimscript, o simplemente tener 50 notepad.exe con cada archivo que esta editando. Pero como dijo Juan Ignacio Dopazo es cuestión de gustos y sobre todo cuando hablamos de JAVASCRIPT, un lenguaje que no esta atado a ningun IDE a diferencia de .Net.