Hoy me desarrollo en una computadora bastante compleja, tiene múltiples núcleos, unidades SSD y demás. Aún así, la mayoría de las veces estoy programando que la computadora no hace nada. Cuando necesito compilar y ejecutar / implementar un proyecto un tanto complejo, en el mejor de los casos todavía me toma un par de segundos. ¿Por qué? Ahora que vivimos más y más en la "era del instante", ¿por qué no puedo presionar F5 en Visual Studio e iniciar / implementar mi aplicación al instante?
Puede que un par de segundos no suene tan mal, pero sigue siendo la fricción cognitiva y el tiempo lo que se suma, y francamente hace que la programación sea menos divertida. Entonces, ¿cómo podría ser la compilación instantánea?
Bueno, las personas tienden a editar archivos en diferentes ensamblajes, ¿qué pasaría si Visual Studio / The IDE compilara constantemente y construyera todo lo que modificara en cualquier momento que pudiera ser apropiado? Diablos, si querían avanzar realmente, podrían hacer una compilación por clase. Es posible que la compilación no funcione, pero no podría hacer nada en silencio (excepto agregar mensajes de error a la ventana de error).
Seguramente la computadora de hoy podría dedicar uno o dos núcleos a esta tarea, y si alguien lo encontrara molesto, podría deshabilitarse por opción. Sé que probablemente haya miles de problemas técnicos y algunas instantáneas sofisticadas que tendrían que resolverse para que esto sea fluido y práctico, pero seguro que haría que la programación sea más fluida.
¿Hay alguna razón práctica por la que este escenario no sea posible? ¿Sería demasiado el desgaste de escribir continuamente binarios? ¿No se pueden mantener los ensamblados en la memoria hasta que se implementen / ejecuten?
fuente
Respuestas:
Eclipse hace compilación y construcción automática. Es posible que desee ver cómo lo hacen. Es de código abierto. Creo que se compila cada vez que guarda un archivo.
fuente
¿Alguna vez has pensado en cuántas pulsaciones de teclas haces antes de que un archivo llegue a un estado que pueda compilarse? En serio, mira lo que sucedería si intentas compilar class f, class fo, class foo, etc. ¿Cuándo quieres que el IDE te diga que arregles un error tipográfico en lugar de dejar que uno termine de escribir? Me preguntaría qué tan bien has pensado esto al crear algo desde cero, ya que es donde realmente puedo ver que esto es bastante doloroso.
fuente
Visual Studio no ha dado la facilidad de compilación automatice. Pero sí, algunos IDE como Eclipse hacen la compilación automática cuando guardas cualquier archivo. Espero que en futuras versiones de Visual Studio Microsoft agregue esta característica.
fuente
Adivina qué ... si estás usando un IDE moderno que te da advertencias, está haciendo una compilación en segundo plano. Así es como se sabe que esos elementos no se compilarán tal como están.
fuente
Siempre puede dividir un proyecto en componentes precompilados. Prefiero mi computadora compila en comando. La fricción cognitiva de un hombre es el tiempo de otro hombre para reflexionar y tomar café.
fuente
Si usa Visual Studio y desarrolla en c # o VB Reshaper puede hacerlo por usted. http://www.jetbrains.com/resharper/ Ahorro mucho tiempo al conocer todos los lugares donde mis cambios en una interfaz rompen el código sin tener que volver a compilar manualmente.
(También creo que Resharper es la mierda por muchas otras razones también).
fuente
No sé, me gusta tener que compilar cosas. Es como si yo manejara mi código y le dijera a la computadora: " ¡Ja! ¡Vamos a ver que rechazas ESTO! "
Luego recibo un error de compilación, corríjalo, luego, " ¡Ja! ¡Ahora veamos que rechazas ESTO! "
Luego se compila y tomo un poco de café. Se siente bien. :)
fuente
Nota: Esto está tomado de mi experiencia con Netbeans (Java), por lo que podría no aplicarse a Visual Studio
TMK esto se hace en segundo plano cuando comienzas a editar el archivo. A menos que el IDE conozca cada error de compilación y cómo detectarlo, asumiría que compila la clase en segundo plano y luego informa cualquier error.
El problema es cuando quieres construir todo tu proyecto. A veces supongo que no todos los errores pueden detectarse con esta compilación "en vivo", por lo que simplemente reconstruye todo. También podría ser que la clase compilada en vivo contiene información adicional que necesita el IDE pero que no debe distribuirse en un binario.
fuente