[Use the Source, Luke] Debo o no usar un IDE?

Hola de nuevo GUTL. Ya me tienen de regreso por acá para atormentarlos con mis ideas descabelladas :-D.

Warming up

Bueno, entrando en materia, la pregunta que da título al artículo se la hacen hasta los más avezados desarrolladores. Siempre he sido de la opinión que los IDE (Entornos de Desarrollo Integrados) son esenciales para el aprendizaje de un lenguaje. Es muy traumático para un programador “newbie” ponerlo a “tirar código” en un editor de texto. Es mucho más fácil familiarizarse con el lenguaje cuando tienes autocompletado, refactoring, intellisense, etc etc. Tener en cuenta siempre que los IDE son “programas para escribir programas”, y programas al fin, están sujetos a las características aleatorias (mal llamadas bugs) de cualquier otro simple software.

Ventajas:

  • Completamiento de código: Quizás este sea el motivo fundamental de usar un IDE, la balanza productividad-eficiencia pesa mucho en ocasiones. La habilidad que tenga nuestro IDE de completar nombre de funciones y reconocer/corregir errores (horrores?) de tipografía, sugerir las funciones según sea el caso, es crucial.
  • Administración de recursos: Librerías externas, medias(imágenes, videos), recursos estáticos(javascript, hojas de estilo) y una larga lista de cuantos recursos use el programa, el IDE deben tener la funcionalidad de administrarlo.
  • Debugueo: Es la mejor forma de probar nuestro software: teatear variables, detener la ejecución en ciertos puntos, juegos de datos, etc etc.
  • Menos tiempo y esfuerzo: Es la esencia del IDE, hacer el desarrollo más rápido y más fácil (eficiente si se quiere).
  • Cumplir con estándares: digamos que pertenecemos a un grupo o compañía de desarrollo de software, siempre es más óptimo ponernos a la par de nuestros compañeros y usar la misma tecnología, en aras de lograr escalabilidad y sostenibilidad del código.

Desventajas:

  • Curva de aprendizaje: Como mencioné anteriormente, el IDE es un programa para hacer programas, o sea, ya implica aprender a usar un software con todas las características de este.
  • Un IDE sofisticado no es una buena herramienta para aprender a programar: A ver, supongamos que somos pilotos, y vamos a nuestra primera clase de vuelo, llega el instructor y nos dice: “para nuestra primera clase aprenderemos a pilotear un STS(transbordador espacial)”. Bueno, es lógico que muchos de esos pilotos cambiarán su carrera por un puesto de croquetas… Casi es el mismo ejemplo para los programadores, si a un “newbie” le muestras el primer día el jDeveloper o MonoDevelop(SimioDevelop) o QtCreator, pues no es muy recomendable.
  • Los IDE no enseñan buenas practicas, o patrones de diseño: Los IDE, aunque algunos hagan el trabajo de semi-dioses, son simples herramientas, son nuestros pinceles: que hagamos una obra maestra o una charranada, depende de nuestras habilidades.

Conclusiones:

Si bien los IDE hacen que “en el mar la vida sea más sabrosa”, recomiendo aprender un lenguaje a golpe de editor de texto y luego por motivos de productividad y eficiencia, pues escoger un IDE. Lo que sí debemos evitar es ser dependientes de un IDE, por ejemplo (sin herir sensibilidades), muchos programadores de C#, que sin el Visual Studio no son nada….

Saludos GUTL

PS: Próximamente en la serie “Use the Source, Luke”: Escogiendo un lenguaje de programación.

¿Te resultó interesante? Compártelo ...



Ozkar

Publicado por Ozkar

http://codeshard.github.io/ » Forma parte de GUTL desde el 6 diciembre, 2011. Soy uno ahí, no seas como yo...

Este artículo tiene 38 comentarios

  1. Es cierto que los IDE introducen mucho codigo que muchas veces puede que pongan hasta mas feita y cargada nuestra solucion (la mayoria no programa para divertirse sino mas bien para solucionar un problema) pero de ahí a «satanizar» los IDE no creo que sea el camino. En mi opinion personal antes de lanzarnos como locos a tirar las lineas de codigo de cualquier lenguaje primero debemos tomar los libros de referencias (por ahí andaban los HeadFirst…, Oreilly´s… y demas libros que sirven de introducción) y luego en haras de buscar eficiencia en cuanto a tiempo/resultados se opta por uno u otro IDE.

    PD: Lo de C# es algo logico no obstante… Visual Studio es un magnifico IDE pero su verdadera fortaleza esta en integrarse al framework .NET y utilizar las propias APIs del sistema Windows (muy gracioso de su parte pero asi cualquiera hace un super IDE).

    • Neji: Satanizar un IDE, para nada, lo que quise exponer es que los IDE en ocasiones no son la mejor vía de aprendizaje. Por ejemplo, Netbeans con los componentes swing, pones un solo jButton y te genera la «metatranca» de código.
      Por eso la parte de “programas para escribir programas”.

  2. Sip, creo que IDE seria para los mas «experticos»… ayuda realmente a simplificar el trabajo, pero yo personalmente prefiero «old fashion» o «a palo» jajaja

    • «recomiendo aprender un lenguaje a golpe de editor de texto y luego por motivos de productividad y eficiencia, pues escoger un IDE.»

      • Ni de intento, para eso está PyDev en Eclipse… y si se quiere PyCharm, aunque como dices, el prompt o un editor de texto son suficientes.

      • Nah, no es cuestión de cambiar de un lado a otro mas bien se trata de experimentar un poco en el scripting con PERL (ya estoy dando mis pasitos en ese sentido). Ahora me refería en la parte de generar interfaces con PERL para luego hacer una que otra cosita aunque confieso que para interfaces zenity me esta resolviendo xD

  3. Puchi …. perdo.. 😀 .. Ozkar, muy bueno el artículo, buenismo, de mas esta decir que con ansiedad espero el proximo. Porque no traen CodeNinja para aca?

    • Ahí viene otro con el puchito…
      CodeNinja? Yo ni sé en que ha parado eso. Eddy está en Desoft en Pinar, dhunter acá en HG en ETECSA, whipper ni idea de que será, y yo por acá. Quizás no tengamos ese blog temático, pero el espíritu se mantiene.

  4. Hola colegas llevo días viendo el sitio este, me parece muy bueno por cierto ,ahora respecto a las opiniones sobre si usar un IDE o no quizás sea en dependencia del lenguaje en q se este programando.Yo estudio informática y programo en Java casi siempre y la verdad ,me la hubiera visto bien fea sin el netbeans con el javadoc y otra serie de cosas que te hacen la vida fácil ,quizás programar en nasm no lo necesite como lo he hecho en un txt hasta ahora.Un saludo colegas.

  5. Solamente el hecho de que el IDE te indique errores sintácticos y semánticos es algo sustancial .Hay ocasiones en que un simple espacio ,un punto,un signo te lleva horas de producción ,como me pasaba cuando aprendía html o nasm a base de txt jajaja que tiempos.De hecho creo que si hubiese un IDE para todo lo utilizaría jajaja .Lo que no recomiendo es que usen frameworks ante de saber el lenguaje base.Saludos colegas.

  6. No entendi esta parte «están sujetos a las características aleatorias (mal llamadas bugs) de cualquier otro simple software.»

    • Es un chiste clásicos de programadores «Mis aplicaciones no tienen bugs, simplemente desarrollan características al azar». Y las mías al menos siempre son así XD.

  7. Maestro @Ozkar: Mis Respetos y Saludos!!!. Gracias y Felicidades por el tremendo artículo, que en 4 párrafos, sintetiza una brillante explicación sobre el tema de los IDE. Nunca antes, de forma racional, me había percatado de la importancia de usar o no un IDE. Por supuesto que, como soy de la muy vieja escuela, casi siempre usé editores para programar. Acaso, editores inteligentes que en esa época ni tan siquiera se denominaban IDEs. Y con esos métodos, se escribieron programas super eficientes, que seguro estoy, funcionan aun.

    • ¡¡¡¡Oye, Compay Federico, te has olvidado de tu alumna y fan No. 1…!!! Ya veo que «con las glorias se olvidan las memorias».

      • Amol, nada de eso!!!. Si observas casi no publico porque no tengo tiempo para nada. Te prometo escribir por el correo.

        Viste que Post redacto el Ozkar??? Eso es para que Dhunter vea.

        • No me había atrevido a comentar antes porque realmente soy poco ducha en el tema, pero por todo lo que dice y explica hasta yo que soy una neófita lo entendí y lo considero muy bien redactado y comprensible. ¡¡¡ Felicidades, Ozkar !!!

        • Gracias, corazón, toda la comunidad te lo agradece. Sigue así. Y no te voy a decir: «Puch…» para que después nadie diga que la promotora fui yo ni «me pongan en la impedimenta a cargar frijoles». 😉

    • Muchas gracias Fico, esos comentarios me hacen subir el ego… na mentira. : -D. Gracias a Ud me embullé a escribir. Sé bien que interpretó correctamente el artículo. Muchas gracias por leerme.

  8. Ozkar, buen post. aunque creo que usar un IDE para programar en cualquier lenguaje seria una buena opción, ya que si te ayuda como dices a salir adelante y ahorrar tiempo de desarrollo, el Visual Studio, para programar en C# es uno de los mejores IDEs por no decir el mejor, y lo de aprender un lenguaje de programación en un editor de texto um!!!!!!!!! ya tuve experiencia con ensamblador cuando di Maquina en la universidad y se pasa un poquito de trabajo, si les hace falta documentación sobre programación en lo que pueda ayudar me pueden preguntar, gracias por el post y saludos

  9. Hola

    Creo hay lenguajes más propios de un IDE, como son los estáticamente tipados: Java, pascal, C#, etc.. Aunque aprendí a programar con Turbo Pascal 5.5, y en aquel entonces los «IDE» eran casi un editor de texto, pienso que para un principiante lo mejor es un IDE, pues desde un principio no es importante conocer todos los aspectos de la programación pues estos son amenudo complicados, lo importante es aprender los principios generales, luego se puede ir profundizando.

    Sin embargo hay lenguajes como python donde no hay una real necesidad de utilizar un IDE pues un IDE no puede ayudar mucho dada la naturaleza dinámica del lenguaje. Como alguien decia, tener acceso a la documentación de un método en Java o C# es algo bastante engorroso sin la ayuda de un IDE, habria que estar generando la documentación cada vez que se documente un método. Sin embargo, en python es suficiente con mantener abierta una consola y escribir «help(metodo_o_tipo_o_module)».

    • Con «lenguaje más propio de un IDE» te refieres a los que necesitan un lenguaje aparte solo para compilar: make, cmake, ant, qmake, etc

      Lo recomendado es aprenderlo todo, el IDE automatiza pero no optimiza muy bien el proceso de compilación, a mano siempre será más rápido.

    • Concuerdo que para aprender de «verdad»( me refiero con profundidad y con posibilidades profesionales ) se debe comenzar de 0, con literatura y editor de texto ( y tambien las opciones del compilador/interprete segun el caso) a medida que nos propongamos proyectos mas exigentes entonces llegara la necesidad de conocer un IDE (escofer, documentar, familiarizar, dominar)….en general el esquema se repite…el proyecto determina que plataforma/lenguaje/tecnologia usaras (los ingenieros sabemos de eso)…

  10. Usar un IDE es siempre mejor que no usarlo. O para que se inventaron? Sino pues a tirar código máquina y se acabo la disputa. Utilizar un lenguaje de alto nivel es casi de igual que usar un IDE ya que al final necesitaras de varias herramientas para que traduscan las sentencias al lenguaje del micro procesador que es al final el bruto (ya que ni el msimo entiende algo que no este en 0 y 1) que hace todo.

    Respondiendo la pregunta del artículo: SI debes utilizar un IDE. Cual usar?? Bueno ya eso es algo personal de cada desarrollador.

    Salu2

    • y que tiene que ver usar o no un IDE con los lenguajes de alto nivel? o sera que de pronto si no se usa un IDE no se programará en java o c++?

      • @paradix;) A ver colega, si usas el C++ nativo o el Java sin los beneficios de un IDE entonces de seguro estarás de acuerdo conmigo de que a programar en código máquina. Los IDE fuera de su caracter prepotente de obligar al desarrollador a utilizar patrones y esquemas que no le interesan resuelven muchas deficiencias que otros con anterioridad detectaron y que ya vienen implementadas en el IDE para que no se siga arrastrando con las deficiencias.

        Ejemplo bien claro:
        En C++ declarar e inicializar una variable es algo más que fácil sin embargo muchos opinan no utilizar el IDE Borland Builder C++ porque les genera muchos «linking error» pero cuando inspeccionas el código te das cuenta que intentan utilizar variables que nunca fueron ni declaradas ni inicializadas. Entonces el problema es del IDE o del programador ???

        Que ha veces el IDE nos entorpece el trabajo??? Eso pudiera ser. Pero nos hemos puesto a pensar que esa forma del IDE «obligarnos» a realizar el proceso es por algo que gente que gastó neuronas y tiempo determinaron que de la forma correcta es así??? 😉

        Salu2

        • No, no estoy de acuerdo contigo, un IDE te servira de mucho para programar en java o en C++ pero no es estrictamente necesario para eso. Mi criterio es que si dominas un lenguaje de programación, si lo dominas bien, entonces podrías programar sin usar un IDE.

          Estoy en contra de aquellos que dicen «no puedo programar sino tengo un IDE»

Los comentarios están cerrados.