Silly Bytes has moved - Silly Bytes se trasladó

www.sillybytes.net

16 mar. 2016

Why do I hate IDEs? / Por qué odio los IDEs?

Lets start by taking off of the discussion some important things:

  • Using an IDE and taking advantage of what it has to offer doesn't mean you're a bad programmer, and using a good text editor doesn't mean you're a good one.

  • Using an IDE can make you a bad programmer.

  • Relaying on an IDE can make you a bad programmer.

  • Depending on an IDE means your a bad programmer.

I think a lot of people will agree with this, so lets move on.

I'll keep updating this list in the future, if you have something you'd like to be added please let me know.







So what is wrong with IDEs?

  • Extra layer of issues and bugs
    • Does the developing server doesn't run? Chances are it's the IDE fault, not your code.
    • The code doesn't compile? Well, your code is OK, the IDE doesn't know shit about the libraries, or maybe some nasty configuration is needed. 

       
  • Don't mess up with my files!

  • Don't mess up with my version control system!

  • Lots of very basic and common operations require a mouse click.

  • Documentation for libraries interfaces becomes optional if the IDE has button for doing it.

  • When I want to use a library I want documentation!, don't just tell me "click there and it will automatically work".

  • Stop wasting my pixels!
    • The code! I want the code to be the main thing in my screen, not a tiny spot in the center.


  • (IDEs are bad programming languages enablers.)[https://dzone.com/articles/ide-bad-programming-language]

  • Editor! Please! A good editor!!! I work with text!

  • Don't force me to use the mouse.

  • Syntax checking, completion,etc. All of that is nice, but the editor is still the most important part.

  • Don't use the mouse!
    • Code is text, I want to keep my hands in the keyboard.
    • Programming is already a very mental exhausting task, why make it a physical exhausting task too?
    • Moving your hand from the keyboard to the mouse thousands of times to reach some stupid buttons in a GUI or to accomplish text editing because the IDE's editor sucks is just plain stupid.

  • Give me my resources back! I want all that memory and CPU for the compilation, not for the code editing!

  • It should be programmable or die, if you don't have something you would like to have, or you have an idea to improve your work flow you should be able to just implement it! (Emacs, Vim, Sublime and Atom are good examples).

  • Combine small, well written specialized tools following the UNIX philosophy, don't put everything in one gigantic and horrible heap of crap.

  • How on earth is possible for a library to work on an IDE but not in another? It's already stupid and bad enough for it to be compiler dependent in some cases, but IDE dependent? You got to be fucking kidding me! [Citation Needed: This happens to me once with some graphical libraries for C, will describe it here as soon as I can remember and recreate the issue].

  • Can you please stop dropping pop ups and hints to me so I can see the freaking code?

  • Fast, simple and automatic is one thing; Treating the programmer as a retarded is another.

  • Let me compile without the IDE!
    • Some IDEs tend to be greedy and compiling outside of the IDE becomes nearly impossible.

  • If it takes more than 1 second to load, it's stupid.

  • One tool for all the jobs You don't use an IDE for system configuration files, daemons configuration files, shell scripts or anything of that nature don't you? So... Master a good editor is a must.

  • If the IDE knows more than you, you're a moron!. Programmers don't like magic.

  • Automation is good!, but if you have to use an IDE to implement a SOAP web service in a freaking JSF application because there is no other way in which you don't have to go through a traumatic process, then you are under lots of shit.

  • If you can't do something without an IDE, your language sucks, you suck, or both.

Of course not every IDE has all those problems at the same time but just a subset of those. Everything can be overcome, a good IDE is still possible.






 

Empecemos quitando de la discusión algunas cosas importantes:
  • Usar un IDE y tomar ventaja de lo que tiene que ofrecer no significa que sea un mal programador, y usar un buen editor de texto no significa que sea bueno.

  • Usar un IDE puede convertirlo en un mal programador.

  • Depender de un IDE significa que es un mal programador.

Pienso que muchas personas estarán de acuerdo sobre esto, así que continuemos.
Continuaré actualizando esta lista en el futuro, si tiene algo que le gustaría agregar aquí por favor déjeme saber.

 

Entonces cual es el problema con los IDEs?

  • Una capa adicional de problemas y errores
    • El servidor de pruebas no funciona? Probablemente es culpa del IDE, no el código.
    • El código no compila? Bueno, su código esta bien, el IDE no sabe una mierda sobre las librerías, o quizas alguna configuración es requerida.

  • No estropees mis ficheros!
  • No te metas con mi sistema de control de versiones!
  • Varias operaciones básicas y comunes requieren un click con el mouse.
  • La documentación para la interfaz de librerías se vuelve opcional si el IDE tiene un botón para hacerlo.
  • Cuando quiero usar una librería quiero documentación!, no me digas simplemente que debo "hace click ahí y funcionará automáticamente".
  • Deja de desperdiciar mis pixeles!
    • El código! Quiero que el código sea lo principal en pantalla, no un diminuto espacio en el centro.

  • (Los IDEs son posibilitadores de malos lenguajes de programación)[https://dzone.com/articles/ide-bad-programming-language]

  • Editor! Por favor! Un buen editor!!! Trabajo con texto!
  • No me obligas a usar el mouse.
  • Revisión de sintaxis, auto completado, etc. Todas esas cosas están bien, pero el editor sigue siendo la parte más importante.
  • No uses el mouse!
  • El código es texto, quiero mantener mis manos sobre el teclado.
  • Programar ya es una tarea mentalmente agotadora, por qué hacerlo una tarea físicamente agotadora tambien?
  • Mover la mano desde el teclado hasta el mouse miles de veces para alcanzar algun estupido botón de una GUI o para lograr alguna edición de texto por que el editor del IDE apesta es simplemente estupido.
  • Devuélveme mis recursos! Quiero toda es memoria y CPU para la compilación, no para la edición del código!
  • Debe ser programable o morir, si no se tiene algo que deseamos que tenga, o si tiene una idea que le permitiría mejorar su flujo de trabajo debería ser capaz de simplemente implementarlo! (Emacs, Vim, Sublime y Atom son buenos ejemplos).
  • Combinar pequeños, y especializadas herramientas siguiendo la filosofía UNIX, no poner todo en una gigante y horrible pila de basura.
  • Como es posible que una librería funcione correctamente desde un IDE pero no desde otro? Ya es lo bastante estúpido y malo que sea dependiente del compilador en algunos casos, pero dependiente del IDE? Tienes que estarme jodiendo! [Cita requerida: Esto me ocurrió a mi una vez con alguna librería gráfica para C, lo describiré aquí en cuanto lo recuerde y pueda recrear el problema]
  • Puedes por favor dejar de lanzar ventanas emergentes y señales hacia mi todo el tiempo para que pueda ver el código?
  • Rápido, simple y automático es una cosa; Tratar al programador como un retrasado es otra.
  • Déjame compilar sin el IDE!
  • Algunos IDEs Tienden a ser codiciosos y compilar fuera del IDE se vuelve casi imposible.
  • Si le toma más de 1 segundo en arrancar, es estúpido.
  • Una herramienta para todos los trabajos. No usas un IDE para los ficheros de configuración del sistema, ficheros de configuración de demonios, scripts de la shell ni nada de esa naturaleza verdad? Entonces... Dominar un buen editor de texto es un requerimiento.
  • Si el IDE sabe más que tu, eres un idiota!. A los programadores no les gusta la magia.
  • La Automatización es buena!, pero si tienes que usar un IDE para implementar un servicio web en una aplicación JSF por que no hay otra forma en la que no tenga que atravesar por un proceso traumático, entonces está enterrado en mierda.
  • Si no puedes hacer algo sin un IDE, el lenguaje apesta, tu apestas, o ambos.

Por supuesto que no todo IDE tiene todos estos problemas al mismo tiempo sino solamente un subconjunto de ellos. Todo se puede solucionar, un buen IDE si es posible.