Ser dependiente de IDE. ¿Cómo me puede hacer daño?

27

Soy un desarrollador altamente dependiente de IDE (NetBeans y Eclipse, ya que soy un desarrollador de JAVA). Puedo codificar correctamente si tengo un IDE. Puedo confiar mucho en eso para el desarrollo, la depuración y la implementación. Pero sin IDE no puedo hacer nada. Puede codificar un programa simple de hello world o algún arreglo simple de UI, pero necesito un IDE para hacer cosas complejas o codificación larga de cosas más simples.

¿Crees que me perjudica? Algunos programadores que tienen más de 6 años de experiencia en desarrollo creen firmemente que puede ser dañino, pero creo que si puedo hacer algunas cosas complejas de manera rápida y adecuada, ¿por qué debería utilizar las herramientas de línea de comandos y el bloc de notas para realizar una tarea que requiere mucho tiempo cuando Los IDE tienen un clic de botón para hacer esto?

Prasham
fuente
29
No voy a agregar esto como respuesta, pero ser un desarrollador Java (solo) es lo que puede hacerte daño, y mucho. Aprenda un idioma real, no se convierta simplemente en otro mono de código entre millones usando Java solo porque es más barato usar programadores malos. ¿Por favor?
Lacrymology
55
Esta es una pregunta fascinante para mí; Nunca he programado en otra cosa que no sea Emacs o Vi. Como consecuencia, no tengo idea de lo que te da un IDE del que podrías llegar a depender.
kasterma
8
@kasterma Déjame ver: ayuda de código, herramientas de refactorización, esquema de código, depuración, depuración paramterizada, seguimiento de pila, observación de parámetros, estructuración de soluciones, rad, intellisense, fragmentos de código, asistencia de compilación y error de compilación, cumplimiento de estándares, plantillas de inicio rápido, sintaxis resaltando y mucho más ;-)
Syg
2
Creo que @Lacrymology se acerca a otro punto: Java depende de IDE. Intente aprender un idioma donde la mayoría de los codificadores no usen un IDE, como Python, Scheme o Common Lisp; eso te dará una nueva habilidad y te mantendrá fuera del IDE a veces.
JasonFruit
77
@Lacrymology: Java no depende de IDE y es uno de los lenguajes más populares. Me parece impactante que no pienses que es lo suficientemente "real".
Josh K

Respuestas:

15

Como han dicho otros, está bien ser más rápido en su IDE que sin él, ese es el punto. Poder utilizar herramientas complejas correctamente para aumentar su productividad es una habilidad importante.

Sin embargo, la dependencia excesiva de los IDE puede causar problemas. Las habilidades y el conocimiento que ya no ejercitas se desvanecerán, y tu comprensión de algunos aspectos puede ser superficial. Un ejemplo clásico es compilar y ejecutar en la línea de comandos: casi cada vez que hago esto, me sale algo mal (generalmente relacionado con la ruta de clase), porque el 99% del tiempo dejo que Eclipse lo haga por mí.

Esto no solo te afecta cuando estás fuera del IDE: si tu conocimiento de las complejidades que el IDE te está ocultando es superficial, entonces cuando sale mal (y saldrá mal, en algún momento) encontrarás Es mucho más difícil de arreglar.

Manejo esto de dos maneras:

  1. Aprenda nuevas herramientas en su forma más básica. Por ejemplo, cambié de SVN a Mercurial, pero comencé con el cliente de línea de comandos en lugar del complemento Eclipse. Esto hizo que mi comprensión de lo que sucedía fuera mucho más profunda, lo que significaba que sabía lo que estaba sucediendo mal y cómo solucionarlo cuando el IDE arrojó errores.

  2. Practica tus habilidades básicas de codificación en la línea de comandos. Un buen lugar para hacer esto es CodingBat, donde no se resalta la sintaxis, no hay corchetes, no hay subrayados rojos, nada. Sin embargo, ¡no olvides practicar también esas habilidades de línea de comandos java y javac! (Y cualquier otro apropiado para su flujo de trabajo; para mí, esto también incluiría hg y ant)

Por último, no te preocupes demasiado por eso. Es poco probable que tenga que hacer un gran trabajo sin NetBeans o Eclipse, por lo que mientras sea capaz de codificar sin ellos y entienda lo que el IDE está haciendo por usted, no importa que usted ' es más lento o comete más errores sin él.

ZoFreX
fuente
2
Como pasatiempo, pasar el tiempo y las células cerebrales en conocer los detalles de bajo nivel es divertido. Comercialmente, pierde mucho valor. Ese es el tiempo que mejor se dedica a aprender el negocio y luego a implementarlo con la eficiencia adicional que ofrece el IDE.
Brian Knoblauch
CodingBat tiene resaltado de sintaxis ahora.
masterxilo
29

No. Creo que es al revés en realidad. El IDE elimina la necesidad de que conozca un marco de memoria (a través de intellisense) y simplifica tareas aburridas / repetitivas / complejas (depuración, implementación), cosas que realmente no le interesan. Esto le permite enfocarse en resolver el problema comercial en cuestión. Conocer e IDE y conocerlo bien realmente puede ayudarlo a escribir código mantenible más rápido.

Y, por supuesto, ser desarrollador no se trata solo de eso. La experiencia que tiene como desarrollador le ayuda a aplicar la solución correcta a un problema que se cruza en su camino. Creo que esa es la verdadera habilidad.

Syg
fuente
2
+1 para intellisense! Siento pena por las personas cuando las veo escribir cada personaje en un programa cuando intellisense lo acelerará tanto.
David
8
Eso se llama autocompletar para el resto de nosotros :)
mhitza
44
@David: Me duele ver a las personas escribir dos caracteres y luego esperar medio segundo a que aparezca el autocompletado y preguntarles qué quieren decir realmente. Luego se transferirán al mouse y se desplazarán por las selecciones disponibles hasta que finalmente hagan clic en una de ellas. No, el autocompletado no es un regalo del cielo ni es realmente útil. Es una herramienta de los perezosos.
Josh K
1
@ Josh K: Eso es cierto. El autocompletado puede empeorar los malos programadores, pero también puede ayudar a que los buenos programadores sean más eficientes. :)
David
2
@ Josh Pero, ¿seguramente hay más para intellisense / autocompletar que terminar el nombre de su método? ¿Qué hay de las descripciones de métodos en línea (qué hace y qué parámetros toma), sobrecargas de métodos disponibles, acceso a fragmentos de código, información sobre qué métodos puede anular, etc. Le resulta realmente útil, nada que ver con ser perezoso ...
Syg
24

No, no te hace "daño". Por supuesto, debe comprender cómo funcionan las cosas sin un IDE (es decir, debe comprender el proceso básico de compilación, etc.) pero no seamos masoquistas al respecto ... si un IDE lo hace más productivo que no usar uno, entonces ¿por qué no lo haría? t usted?

Dean Harding
fuente
17

Ser dependiente de IDE tiene los siguientes riesgos:

  • terminas creando una compilación de software que requiere un IDE y una versión específicos.
  • obliga a otras personas de su equipo a usar ese IDE para construir el sistema.
  • no puede automatizar fácilmente la creación de su software.
  • no tienes idea de cuáles son tus dependencias de software.

Así que asegúrese de poder construir su software desde la línea de comandos también. Por ejemplo, en Java use maven o ant. Luego mitigas los riesgos anteriores.

Otros riesgos de dependencia IDE:

  • el IDE marca errores y advertencias en su código y le brinda soluciones rápidas. Esto puede no ser apropiado, tal vez haya un problema de diseño o requisitos en juego.
  • olvidas los conceptos básicos: debes conocer los conceptos básicos de tu idioma elegido para poder dominarlo y poder transmitir tu competencia en las entrevistas.
  • terminas atascado en un arenero IDE, temeroso de probar algo nuevo o algo que no sea compatible con tu IDE. Por ejemplo, su IDE puede tener funciones bastante amplias para buscar y reemplazar. Pero estos no son nada en comparación con el poder y la velocidad de las herramientas de línea de comandos como grep y sed. Es posible que no realice el desarrollo de Android porque su IDE elegido (por ejemplo, netbeans) no lo admite bien.
  • algunos IDE no pueden manejar archivos grandes, por ejemplo, intente abrir un archivo de salida de servidor grande en eclipse. Tarda una eternidad y / o se queda sin memoria.
Conor
fuente
3
Estoy de acuerdo con sus puntos, pero no creo que aborde la pregunta real. El autor de la pregunta no solo depende de Netbeans, por ejemplo. Si él / ella lo fuera, entonces todos estos puntos podrían ser ciertos, pero la pregunta, según tengo entendido, era simplemente usar un IDE en general en lugar de un editor de texto básico y la línea de comando.
jzd
2
Las referencias a instancias de IDE en mi respuesta son solo ejemplos de cómo la dependencia de IDE puede ser riesgosa. No estoy señalando específicamente netbeans o eclipse.
Conor
Utilizo Netbeans en el trabajo, pero escribí todos mis scripts Ant a mano para que cualquiera pueda construir el proyecto sin necesidad de Netbeans. Me gustan las funciones del editor y navegar fácilmente por el código, pero hago todo lo posible para mantenerlo IDE independiente.
jonescb
9

No hay nada de malo en ser más productivo con su conjunto de herramientas elegido. Pero si no puedes trabajar sin él, sospecharía mucho de tu conocimiento interno.

No abandones el IDE; pero de vez en cuando intente hacer un par de clases 'fáciles' con solo un editor y documentación en un navegador.

Recuerde que incluso más rápido que las mejores herramientas es no tener que usarlas.

Javier
fuente
No me detengo ni me quedo boquiabierto (en un 40% de los casos) si no tengo un IDE, pero mi velocidad se reducirá drásticamente si no tengo un IDE. Para hacer una tarea de diez minutos con IDE, pasé un día entero con el bloc de notas y Java cuando mi ide se bloqueó.
Prasham el
bueno, el bloc de notas está bajando demasiado. pruebe el editor de un programador, como notepad ++. Piense en ello como un ejercicio: no es divertido, pero lo hace mejor si lo hace con regularidad.
Javier
4

Pero sin IDE no puedo hacer nada.

Necesito un IDE para hacer cosas complejas o una larga codificación de cosas más simples.

Puedes arreglar eso, ya sabes.

Realmente podrías aprender el lenguaje y el marco.

Nada te detiene.

A menos, por supuesto, que presumas de depender del IDE.

¿Por qué debería utilizar el bloc de notas y las herramientas de línea de comandos para realizar una tarea que requiere mucho tiempo cuando los IDE hacen clic en un botón para hacer esto?

No está relacionado. "Stick to notepad" no tiene ninguna relación con "sin IDE no puedo hacer nada". No hacer nada en el bloc de notas no es como pegarse en el bloc de notas. Cual es

S.Lott
fuente
3

No eres tan "dependiente", ya que tus dos IDEs son de código abierto, por lo que no desaparecerán ni se "mejorarán" accidentalmente hasta el punto de ser inutilizables. Y el idioma de su elección no le deja ninguna opción: depende de miles de millones de bibliotecas, y es estúpido tratar de recordar todas esas cosas sin importancia cuando hay un IDE para ayudarlo. Java es prolijo, detallado y no puede ser productivo sin herramientas inteligentes que aprovechen la verbosidad redundante.

SK-logic
fuente
¿diría lo mismo para otro idioma? (Estoy pensando en PHP en mi caso) pero no estoy seguro de que sea un buen consejo como regla general. JAVA podría ser una excepción aquí, sin embargo
Quamis
1
Yo diría lo mismo para C #, también puede ser para PHP. Cualquier combinación de un idioma y un dominio problemático en el que deba utilizar un gran conjunto de bibliotecas diversas requerirá herramientas inteligentes. Algunos lenguajes son lo suficientemente potentes y expresivos como para ser utilizables sin numerosas bibliotecas, y puede codificar cosas simples sin IDE. Algunos idiomas necesitan asistencia siempre, incluso para las cosas más simples. Cuando codifico en Lisp, estoy bien con emacs o incluso un CLI REPL. Cuando codifico en C # o Java, no haré nada sin un IDE decente (msvs o eclipse).
SK-logic
pero, ¿no debería la necesidad de "intellisense" o "diseñador de formularios" ser una alerta para los miembros de objetos mal organizados (o nombrados)? He observado que las personas que usan mucho intellisense tienden a usar nombres más largos y más detallados para objetos / funciones / variables, lo que hace que estos nombres sean más difíciles de recordar en primer lugar. ¿Debo entender que este es un buen hábito también?
Quamis
Quamis: ¿No es al revés? Tener que escribir te hace elegir nombres cortos que no describen la clase / método tan bien como lo haría un nombre largo.
DistantEcho
@Niphra: sí, y personalmente me gustan más los nombres más cortos :), en mi opinión, hace que el código sea más fácil de leer ... si el método hace algo que no se puede describir de manera breve, entonces sí, un nombre más largo es aceptable, pero yo Estoy tratando de mantenerlo breve, básicamente, y no veo nada malo en ello.
Quamis
3

Creo que el daño de la dependencia excesiva en un IDE entra en juego cuando confías sin pensar en los asistentes para generar código para ti. Tanto NetBeans como Eclipse son bastante ligeros sobre eso, lo cual es algo bueno de la OMI. Otro daño sería si solo conoces un IDE y no puedes usar otros. Algunas compañías tienen políticas que dictan lo que usará. Para bien o para mal, es lo que es.

Yo diría que si un IDE no lo hace más productivo, no vale la pena. Por ejemplo, soy el más productivo con JetBrains IDEA, pero Eclipse ha recorrido un largo camino y puedo ser bastante productivo con eso. Eclipse también se ha adaptado para una amplia gama de usos, lo cual es un doble beneficio. Si bien puedo moverme en VIM, o en algún otro editor de texto, hay otras características que encuentro irremplazables en la mayoría de los IDE actuales, como el soporte de refactorización.

Berin Loritsch
fuente
2

No creo que te estés haciendo ningún favor. De acuerdo, está utilizando Eclipse, que está disponible gratuitamente y se ejecuta en cualquier lugar donde tenga una JVM. Pero me he encontrado con situaciones en las que tuve que conectarme remotamente a otra máquina a través de una sesión de terminal sin servidor X, lo que significa que tuve que usar un editor de texto sin formato como vi y construir en la línea de comandos. También trabajo en un entorno donde la red de desarrollo está físicamente aislada del resto del mundo, y todas las transferencias entre ella y la red pública se realizan a través de medios físicos. La única razón por la que tenemos Eclipse en esa red es porque primero pasó por varias capas de aprobación.

Me corté los dientes en C y Fortran 77 en un entorno de línea de comandos (VAX / VMS), por lo que la idea de necesitar un IDE es algo sospechosa. Sin embargo, esos son pequeños lenguajes en comparación con la bestia que es Java; dado que necesita una carretilla elevadora para llevar el último libro de Java Nutshell, puedo ver cómo tener el IDE disponible hace la vida mucho más fácil.

John Bode
fuente
2

Realmente no puede "lastimarte", pero ganarías si también estás familiarizado con hacer cosas sin el IDE. No tengas miedo de expandir tu horizonte.

Recuerde que la mayoría de las herramientas de desarrollo se escriben primero como herramientas de línea de comandos. Los IDE son ideas posteriores, lo cual está bien. Por otro lado, a menudo encontrarás algunos "interruptores de línea de comando de gemas ocultas" o "trucos avanzados" que nunca podrás descubrir si mantienes el punto y haces clic.

Entonces, para responder la pregunta "¿Cómo puede dañarme?" Creo que te haría daño cuando te apegas tanto que crees que todas las herramientas de línea de comandos serán más lentas que hacer clic en los botones, hasta el punto de evitar aprender las herramientas de línea de comandos (que son los orígenes).

Es como aprender ensamblador como programador: muy pocos de nosotros escribimos ensamblaje a mano hoy, pero creo que los que entienden ensamblador son mejores programadores en cualquier idioma que estén usando.

kizzx2
fuente
2

Ser dependiente de la computadora ya es bastante dañino. Siempre programo en un lomo con una gran tableta de piedra y un martillo. El código tarda un tiempo en romperse, pero cuando termina un método particularmente grande, generalmente come algo. Allí trato de ser independiente del supermercado y ese tipo de cosas, así que cultivo todo mi trigo en casa y solo como eso. Por supuesto, los proveedores de semillas de trigo y agua me han enganchado, haciéndome pensar que no hay forma de salir de este ciclo de dependencia.

En serio: si <disclaimer>usas un IDE y </disclaimer>te encuentras sin un IDE y DEBES programar, simplemente debes considerar que el juego ha terminado y

  1. Llame a TI o
  2. Solucione el problema usted mismo si es TI

No solo no deberías programar sin las herramientas que consideres necesarias, sino que tampoco puedes usar pasta de dientes como pasta térmica.

Dan Rosenstark
fuente
1

Ser dependiente de IDE puede no necesariamente dañarlo, pero poder operar sin su entorno de elección es una habilidad vital.

Los IDE pueden evitar que aprenda 'pequeñas cosas' que generalmente son insignificantes y pueden ayudarlo a hacer el trabajo más rápido porque evita la escritura / calderería inútil. También puede solucionar problemas a medida que ocurren, por ejemplo, escribir mal una función.

Mi regla personal al aprender cualquier idioma / marco / etc. es aprenderlo primero por las malas. Luego, una vez que lo domine, caí, me he ganado el derecho de hacerlo de la manera más fácil. La cuestión es que, si no conoce algunos de los pequeños detalles, cuando su alcantarilla comience a arrojar basura del fregadero de la cocina, será SOL. Si sabe cuáles son las operaciones subyacentes que podrían ser una causa potencial, es probable que pueda solucionar el problema o evitar que ocurra por completo.


fuente
0

Probemos un buen editor de texto, por ejemplo, PSPad para MS-Windows (freeware), TextMate para Mac OS X, Geany para GNU Desktop (opensource) o Kate para KDE (opensource).

MultiEdit4.0 para MS-DOS ha cambiado mi vida hace varios años, desde entonces soy muy sensible para los editores de texto.

ern0
fuente