He visto preguntas sobre IDE aquí - Which is the best IDE for Scala development? y What is the current state of tooling for Scala?, pero he tenido experiencias mixtas con IDEs. En este momento, estoy usando el IDE de Eclipse con la opción de actualización automática del espacio de trabajo, y Kate de KDE 4 como mi editor de texto. Éstos son algunos de los problemas que me gustaría resolver:¿Cuál es el mejor sistema de compilación de Scala?
- usar mi propio editor IDE son muy orientado a todo el mundo el uso de sus componentes. Me gusta más Kate, pero el sistema de actualización es muy molesto (no utiliza inotify, sino un intervalo de sondeo de 10 segundos). La razón por la que no uso el editor de texto incorporado es porque las funcionalidades de autocompletar interrumpidas hacen que el IDE se cuelgue por unos 10 segundos.
- reconstruir solo archivos modificados El sistema de compilación Eclipse está roto. No sabe cuándo reconstruir clases. Me encuentro casi medio del tiempo yendo a project-> clean. Peor aún, parece que incluso después de que haya terminado de construir mi proyecto, unos minutos más tarde aparecerá un extraño error (edit - estos errores parecen ser cosas que se resolvieron previamente con un proyecto> clean, pero luego vuelven arriba...). Por último, la configuración de "Preferencias/Continuar inicio si el proyecto contiene errores" para "solicitar" parece no tener ningún efecto para los proyectos de Scala (es decir, siempre se inicia incluso si hay errores).
- personalización de compilación Puedo usar el lanzamiento "nocturno", pero querré modificar y usar mis propias compilaciones de Scala, no el compilador integrado en el complemento del IDE. También sería bueno pasar [por ejemplo]
-Xprint:jvm
al compilador (para imprimir el código reducido). - compilación rápida Aunque Eclipse no siempre se compila correctamente, parece ágil, incluso más que
fsc
.
Miré a Ant y Maven, aunque todavía no he empleado (también necesitaré pasar tiempo resolviendo los números 3 y 4). Quería ver si alguien tiene otras sugerencias antes de pasar tiempo trabajando en un sistema de compilación subóptimo. ¡Gracias por adelantado!
ACTUALIZACIÓN - Ahora estoy usando Maven, pasando un proyecto como un complemento del compilador. Parece lo suficientemente rápido; No estoy seguro de qué tipo de almacenamiento en caché de tarros hace Maven. Un repositorio actual para Scala 2.8.0 está disponible [link]. Los arquetipos son geniales, y el soporte multiplataforma parece muy bueno. Sin embargo, sobre problemas de compilación, no estoy seguro de si fsc está realmente arreglado, o si mi proyecto es lo suficientemente estable (por ejemplo, los nombres de las clases no cambian). Ejecutarlo manualmente no me molesta demasiado. Si desea ver un ejemplo, siéntase libre de navegar por los archivos pom.xml que estoy usando [github].
ACTUALIZACIÓN 2 - a partir de los puntos de referencia que he visto, Daniel Spiewak es el derecho del más rápido que Maven que Buildr (y, si uno está haciendo cambios incrementales, 10 segundos de latencia de Maven pone molesto), por lo que si se puede elaborar un compatibles crear archivo, entonces probablemente valga la pena ...
La pregunta debe cambiarse a "¿Cuál es el mejor sistema de compilación de Scala [para estos requisitos estrechos]". Los criterios que usted da hacen que la pregunta de sondeo general sea muy específica para sus preferencias individuales. Supongo que mi queja es que estás agachado en el mejor título para la pregunta de propósito general. Afortunadamente, algunas de las respuestas son de propósito general. – toolbear
Como esta es una pregunta "¿qué es lo mejor ...?", ¿Podría agregar la etiqueta [subjetiva]? No tratando de ser idiota, honesto;) – toolbear
añadido tag subjetivo. en re. "¿Cuál es el mejor sistema de compilación de Scala [para estos requisitos estrechos]"? No creo que estos sean requisitos estrictos. Cualquier buen sistema de compilación debe ser rápido, modular (independiente de los IDEs si es necesario) y permitir que se utilicen las opciones subyacentes (en este caso, para el compilador de Scala). Agregar criterios asegura que los respondedores consideren las características importantes, en lugar de sugerir el compilador más simple que funcione para ellos. – gatoatigrado