2010-07-21 33 views
5

Esto puede ser demasiado obstinado, pero lo que estoy tratando de entender es por qué algunas empresas exigen el uso de un IDE. En la universidad, todo lo que usaba era vim, aunque en ocasiones usaba netbeans para usar con Java. Netbeans fue agradable porque completó el código y tenía algunas plantillas agradables para la configuración de algunos de los servicios más extraños que probé.¿Por qué usar un IDE?

Ahora que mis amigos están trabajando en grandes compañías, me dicen que deben usar eclipse o visual studio, pero nadie puede dar una buena razón para ello.

¿Puede alguien explicarme por qué las empresas obligan a sus desarrolladores a entornos de desarrollo restringido?

+1

si tiene un IDE que sea tan productivo o más que lo que sea la compañía usando como estándar, entonces no puedo ver por qué no puedes usarlo. En general se trata de productividad. Usted es el desarrollador, usted es responsable de su trabajo, si lo hace bien y no afecta a los demás mediante el uso de lo que desee para la codificación, entonces debería estar bien – roundcrisis

+0

¿Por qué no utilizar un IDE? Existe para hacer que el desarrollo sea más rápido, [con suerte] para aliviar las tareas mundanas necesarias ... –

+4

Algunos lenguajes se basan en la compatibilidad con IDE. C# y Java son lo suficientemente detallados que escribirlos sin un IDE es un dolor, incluso con un buen editor. – mquander

Respuesta

3

Si eres bueno en el uso de vim y sabes todo lo que hay que saber al respecto, entonces no hay razón para cambiar a un IDE. Dicho esto, muchos IDEs tendrán muchas características útiles que vienen de serie. Mantener una instalación de Eclipse es mucho más fácil que mantener una instalación de Vim con los complementos X, Y y Z para simular las mismas capacidades.

  • IntelliSense es increíblemente útil. Me doy cuenta de que vim tiene todo tipo de autocompletado, pero no me da una lista de métodos sobrecargados y sugerencias de argumentos.
  • Varios paneles para proporcionar jerarquías/esquemas de clases, referencia de API, salida de consola, etc. pueden proporcionarle más información de la que está disponible en solo varios buffers de texto. Sí, sé que tienes la ventana de quickfix, pero a veces simplemente no es suficiente.
  • Compilar mientras escribe. Esto no funciona para C++, pero es muy bueno en Java y C#. Tan pronto como escriba una línea, recibiré comentarios sobre la corrección. No soy lo suficientemente arrogante como un programador para asumir que no hago errores de sintaxis o errores de tipo, o se olvide de tener un try/catch, o ... (la lista sigue)

Y la mayor parte importante de todos ...

  • Depuradores integrados. Haga doble clic para establecer un punto de interrupción, haga clic con el botón secundario en una variable para configurar un reloj, tenga un panel separado para cambiar los valores sobre la marcha, manejo de excepción detallada , todo dentro del mismo programa.

Me encanta vim, y lo usaré para cosas simples, o cuando quiero ejecutar una macro, o estoy atascado con el código C. Pero para tareas más complicadas, encenderé Eclipse/Visual Studio/Wing.

+2

Además de TODO para depuradores integrados. Simplemente no hay nada que mejore la productividad del programador más que eso. –

+0

+1 para la depuración integrada. Paso una gran parte de mi día depurando. – Steve

+0

Los depuradores integrados * interactivos * de IMO son la ventaja más significativa de los IDE, pero VIM sí tiene esta capacidad por medio de PyClewn http://pyclewn.sourceforge.net/. Aunque la interfaz de usuario de depuradores IDE tiende a ser más fácil de trabajar con más de cosas simples. Lamentablemente, mi trabajo diario requiere que trabaje en un sistema que no admite la depuración interactiva, eliminando de manera efectiva cualquier ventaja de IDE sobre VIM para mí. (Mientras todavía requieren el uso de un IDE, que tiene un rendimiento inferior en su infraestructura de TI que VIM). – Giel

2

Los desarrolladores suficientemente malos son muy asistidos por la adopción de un IDE configurado apropiadamente. Se necesita mucho tiempo extra para ayudar a cada copo de nieve a través de su propio entorno de desarrollo personalizado; si alguien no tiene las herramientas para mantener su propio entorno de desarrollo de forma independiente, se vuelve muy costoso apoyarlos.

Las tiendas de TI corporativas son muy malas para diferenciar entre desarrolladores "suficientemente malos" y "suficientemente buenos". Entonces solo hacen que todos hagan lo mismo.

Descargo de responsabilidad: Yo uso Eclipse y me encanta.

+0

Esto se resuelve fácilmente teniendo un entorno estándar, pero permitiendo que las personas (no silenciosamente, sin ocultar) usen y configuren/usen su propio IDE si desean ... –

5

Porque las empresas se estandarizan en las herramientas, así como en las plataformas: si la elección de las herramientas entra en conflicto con sus estándares, puede objetar, usar silenciosamente la herramienta o usar la herramienta requerida.

Los tres son válidos; siempre que su alternativa no cause problemas a otros miembros del equipo, y siempre que tenga un argumento válido para hacer (no solo quejarse).

Por ejemplo: desarrollo en Visual Studio 2008 según lo requiera el trabajo, pero uso VS2010 siempre que sea posible. Las soluciones/proyectos que se guardaron en 2010 no se pueden abrir en 2008 sin algunos ajustes manuales, por lo que no puedo usar la herramienta que prefiero porque podría causar fricción para otros desarrolladores. También estamos obligados a producir código de acuerdo con los estándares documentados que se aplican por Resharper y StyleCop. Si cambiara a un IDE diferente, tendría más dificultades para garantizar que el código que producía cumplía con nuestros estándares.

+1

Consulte esta herramienta para cambiar versiones de soluciones/proyectos de 2008 a 2010 y viceversa. Lo uso todo el tiempo para poder usar VS 2010 día a día. La única advertencia que me he encontrado es cuando tienes que agregar/eliminar archivos de la solución, mejor usar 2008 para hacerlo. Por lo general, solo revierto todos los archivos de solución/proyecto antes de registrarme, y luego uso la herramienta para volver a encontrarlos en 2010. Aquí está el enlace: http://stevedunns.blogspot.com/2010/02/tool-to-switch-project-files-between.html –

2

Teóricamente, disminuiría la cantidad de capacitación necesaria para que un desarrollador inexperto aborde los problemas de un IDE en particular si todo el equipo usa esa herramienta.

De todos modos, la mayoría de las principales compañías no fuerzan a los desarrolladores usar algún IDE específica por ahora ...

Estoy de acuerdo con esta última forma de pensar: Usted no necesita su equipo para dominar un particular herramienta, tener conocimiento del equipo en muchos mejorará su probabilidad de conocer mejores formas de resolver un problema particular.

1

La misma razón utilizamos un martillo para clavar cosas en lugar de rocas. Es una mejor herramienta.

Ahora, si está preguntando por qué se ve obligado a utilizar un IDE específico sobre otro, ese es un tema diferente.

Un lugar que utiliza .NET usará Visual Studio el 99% del tiempo, al menos eso es lo que he visto. Y no he encontrado nada que sea mejor que Visual Studio para escribir aplicaciones .NET.

2

Para mí, uso Visual Studio con ReSharper. No puedo ser tan productivo (en .Net) sin él. Al menos, nadie me ha mostrado una manera de ser más productivo ... Vim, eso es genial.Puede ejecutar Vim dentro de Visual Studio + R # y obtener todas las delicadezas que proporciona el IDE, como navegación de código, finalización de código y refactorización.

+0

ReSharper está escrito por JetBrains, las mismas personas que nos dan IntelliJ. – duffymo

1

Características como estas no están disponibles en vim:

  1. refactoración
  2. depuradores integrados
  3. Conocer su base de código como un todo integrado (por ejemplo, cambiar una aplicación Java nombre de clase; haga que el cambio se refleje en una configuración Spring XML)
  4. Poder ejecutar un servidor de aplicaciones directamente dentro del IDE para que pueda implementar y depurar su código.

Esas son las razones por las que elijo IntelliJ. Podría volver a los palos y huesos, pero sería mucho menos productivo.

+0

Vim ha completado el código. He usado la finalización automática de vim al hacer la programación en C y Java. –

+0

Entonces, si estuviera utilizando Spring JAR en su código, ¿podría ayudarle con esos tan fácilmente como lo hizo con los paquetes JDK? IntelliJ lo hace con cada JAR que traigo a mi proyecto. También se puede conectar al código fuente para que sea legible cuando paso con el depurador. ¿Puede VI hacer eso? – duffymo

+1

Vim puede usar 'omnicompleto', es el equivalente de terminación de código, que es (posiblemente) mejor que la finalización del código IDE convencional. Intellisense también puede ser pirateado en Vim para que funcione en algunos idiomas (C#, Java). – buru

0

http://xkcd.com/378/

programadores de verdad el uso de las mejores herramientas disponibles para hacer el trabajo. Algunas compañías tienen licencias para herramientas, pero no hay nada que indique que no pueda licenciar/usar otro IDE y luego tener el otro IDE abierto para copiar/pegar lo que ha hecho en su IDE local.

1

Hay mucho más de la finalización de código en un IDE:

  • instalaciones de depuración
  • validación XML
  • de gestión de servidores
  • importación automática
  • comprobación de sintaxis
  • modelado gráfico
  • soporte de tecnología popular gías como Hibernate, TestNG o primavera
  • la integración de la gestión de código fuente
  • indexación de los nombres de archivo para apertura rápida
  • seguimiento "enlaces" en el código: implementación, declaración
  • integración de control de código fuente
  • búsqueda para las clases o métodos
  • de formato de código
  • proceso de monitoreo
  • un clic en el botón/depuración/construcción
  • método/variables/campo/... cambiar el nombre de

etc

nada que ver con la incompetencia de los programadores. Cualquiera sería MUCHO menos productivo usando vim para desarrollar una gran aplicación Java EE.

+0

¿Es esta una respuesta a por qué debería usar un IDE? ¿Por qué debería usar un IDE en particular? – user381261

1

¿Qué tan grande fueron sus proyectos en la universidad? ¿Un par de clases en un par de archivos? ¿O más bien un par de cientos de clases en un par de cientos de archivos?

Hoy tuve el "honor" de mirar un archivo en un proyecto bastante grande donde el programador optó por usar vi (yes vi, not vim) y una compilación de compilación de línea de comandos hecha a mano (no make).El archivo contiene una función que abarca aproximadamente 900 líneas con una serie de construcciones if-else-if-else (¡porque de esa manera tienes todo tu código en un solo lugar!). Macho-Programador en su máxima expresión.

6

IDE vs Notepad He escrito el código en muchos IDEs diferentes y, ocasionalmente, en el bloc de notas. Es posible que te guste el bloc de notas, pero en algún momento utilizar el bloc de notas es un sabatoge industrial, como contratar a un jardinero que aparece con una cuchara en lugar de una pala y un dedal en lugar de un cubo. (Pero quien sabe, quizás el más hermoso jardín se puede hacer con una cuchara y un dedal, pero seguro que no va a ser rápido)

IDE A vs IDE B Algunos de IDE tienen características del equipo y de gestión . Por ejemplo, en Visual Studio, hay una pantalla que encuentra todas las líneas TODO: en el código fuente. Esto permite un flujo de trabajo diferente que puede existir o no en otros IDEs. Lo mismo vale para la integración de control de código fuente, el análisis de código estático, etc.

IDE de edad vs IDE nuevos grandes organizaciones son difíciles de cambiar. No es realmente un problema relacionado con la programación.

+0

Buena analogía, "jardinero que aparece con una cuchara en lugar de una pala y un dedal en lugar de un cubo" – Bill

0

La pregunta es un poco abierta, tal vez usted puede hacer que la comunidad wiki ...

Como usted señala, el IDE puede ser útil, o incluso una debe tener, para algunas operaciones, como la refactorización , o incluso explorar proyectos: uso Eclipse en mi trabajo, en proyectos Java, y me resulta muy útil obtener una lista de todas las instancias del uso de un método público o una clase en un proyecto. Probablemente, aprecio poder cambiarle el nombre desde donde está definido y tener todas estas ocurrencias automáticamente actualizadas.
El hecho de que tengo el JavaDoc mostrado al pasar el ratón sobre un nombre es muy bueno también. Como autocompletar, saltar a un nombre de clase, etc.
Y, por supuesto, instalaciones de depuración ...

¡Ahora, el uso de Eclipse no es obligatorio en nuestra tienda! Hace algunos años, algunas personas usaban Delphi IDE (se olvidó su nombre), probé NetBeans, etc. Pero creo que de facto estandarizado en Eclipse, pero fue una evolución natural en lugar de una política de la empresa. Y que a menudo sólo los archivos abiertos en un editor de texto cuando necesitamos una actualización rápida ...

1

bien hay muy buenas razones para hacer cumplir un conjunto de herramientas particular dentro de un entorno de producción:

  • empresas quieren estandarizar todo para que si un empleado se va, pueda reemplazar a esa persona con un mínimo esfuerzo.

  • IDEs comerciales proporcionan un entorno lo suficientemente complejo como para admitir una única interfaz para una variedad de necesidades de desarrollo y que admite varios niveles de acceso a código. Por ejemplo, el desarrollador, los mismos programadores (diseñadores de gráficos, etc.) y los redactores de documentos podrían usar el mismo conjunto de archivos.

  • Combine esto con control de versiones integrado y administración de código sin la necesidad de que alguien aprenda un sistema de control de versiones en particular, de repente los IDE comienzan a verse más bonitos y agradables.

  • También agiliza el mantenimiento de los sistemas de compilación en un entorno multi-homed.

  • IDEs son más fáciles de dar tutoriales por teléfono o video, y probablemente vienen con los.

etc. etc. y así sucesivamente.

La toma de decisiones empresariales detrás de la aplicación de un entorno estandarizado va más allá de la preferencia de un programador único o para el caso, tal vez, la comprensión del equipo de programación.

1

El uso de un IDE ayuda a un empleado a trabajar con grandes proyectos con una formación mínima. Aprenda algunos combos de teclas, y trabajará cómodamente con proyectos de miles de archivos en Eclipse, IDE maneja la mayor parte del trabajo para usted bajo el capó. Solo imagínense cuántos años de aprendizaje se necesitan para sentirse cómodos desarrollando proyectos de este tipo en Vim.

Además, con un IDE es fácil soportar estándares de codificación comunes en todo el equipo: simplemente establezca un par de opciones y un IDE le obligará a escribir código de manera estandarizada.

Además, IDE da algunas ventajas adicionales como herramientas de refactorización (especialmente bueno en Eclipse), depuración integrada (especialmente bueno en Visual Studio), IntelliSense, pruebas de unidad integrada, sistema de control de versiones integrado etc.

Las ventajas y las desventajas de usar un IDE también dependen en gran medida de la plataforma de desarrollo. Algunas plataformas están orientadas al uso de IDEs, otras no. Como regla general, debe usar IDE para Java y desarrollo de .Net (a menos que esté extremadamente avanzado); no deberías usar IDE para el desarrollo de ruby, python, perl, LISP, etc. (a menos que seas extremadamente nuevo en estos lenguajes y frameworks asociados).

1

Como dije antes, la pregunta sobre el uso de un IDE es fundamentalmente la productividad.Sin embargo, hay algunas preguntas que la empresa debe considerar al elegir un IDE específico. que incluye:

  • la cultura de la empresa
  • uso Estandarizar de la herramienta, por lo que es accesible para todos los desarrolladores. Eso facilita el entrenamiento, reduce los costos y mejora la velocidad de la curva de aprendizaje.
  • Requisitos del contrato específico. Como ejemplo, hay algunos paquetes de desarrollo que son totalmente compatibles (es decir, complementos) por algún IDE y no por otros. Entonces, si está trabajando con el contrato de soporte, querrá trabajar con el IDE soportado. Un ejemplo concreto es cuando trabajas con sistemas operativos no comunes como VxWorks, donde puedes trabajar con Workbench (que realmente es un eclipse con muchos complementos específicos para eclipse).
  • política de la empresa (y también incluyo la restricción de presupuesto de la compañía)
  • La documentación relativa al IDE
  • Comunidad (Un fuerte uno puede aportar y desarrollar aún más el IDE y ayudarle con sus dudas)
  • Base instalada (nadie quiere ser el único humano que use ese IDE en el mundo)
  • Asistencia de fabricantes (un IDE a punto de descontinuarse probablemente no sea una buena opción)
  • Requisitos del IDE. (es decir, multiplataforma o requisitos de hardware que son incompatibles con algunas máquinas de la empresa)

Por supuesto, hay mucho más. Sin embargo, creo que esta breve lista te ayuda a ver que hay algunas decisiones que no son tan fáciles de tomar, cuando estamos hablando de dinero y algunas compañías más grandes.

Y si comienza a usar su propio IDE, piense qué desastre tendrá cuando otro desarrollador comience a realizar mantenimiento en su código. ¿Cómo crees que se firmará la aplicación en el administrador de versiones? Ahora piense en una compañía con más de 30 desarrolladores cada uno que use su propio IDE (cada uno con sus propios archivos de configuración, versión y todo eso) ...