2010-01-03 15 views
29

Estoy tratando de averiguar la popularidad de Scala y cuántos usuarios de SO realmente lo usan en el lugar de trabajo?Scala, el java del futuro (?)

+7

Le sugiero que marque esta "wiki de la comunidad", de lo contrario hay una gran posibilidad de que se cierre como "subjetiva y argumentativa". –

Respuesta

6

Nadie tiene una bola de cristal, y alguien podría llegar a algo mejor (o algo peor con una potencia detrás de él) en cualquier momento.

Ha habido una gran cantidad de artículos, podcasts, etc. Aquí en SO, le sugiero que lea: https://stackoverflow.com/questions/33744/is-scala-the-next-big-thing

personalmente, creo que Scala es prometedor, pero puede fallar para atraer cada vez a la multitud. Gran parte del uso de producción de Java hoy gira en torno a J2EE y no veo a estas personas haciendo la transición. Para usuarios que no usan Java, los lenguajes más establecidos, como Python, pueden proporcionar todas las características funcionales que necesitan, incluso a costa de no utilizar la JVM.

+3

Trabajo en el desarrollo de Java EE y necesitamos un lenguaje mejor que Java. Simplemente no acudimos a Scala ni a Groovy debido a la falta de apoyo corporativo/comunitario (un "centro neurálgico" en sus palabras). Permanecer en JVM es imprescindible, ya que no podemos reemplazar fácilmente todo el código actual desarrollado en Java. En comparación con Scala, Python parece incompleto y está dirigido a las secuencias de comandos del sistema operativo. Probé con Jython, JRuby, Groovy y Scala, y la mejor integración de Java proviene de Groovy y Scala. Pero Groovy no se ve tan profesional como Scala y Java, debido a la falta de especificación formal. Así que solo espero que todos vayamos a Scala. – fernacolo

2

Me enteré de Scala hace unos meses, y estaba muy emocionado de ver "una Java mejor que Java" para la JVM. Scala soluciona varios problemas de Java con un código repetitivo molesto, agrega algo de programación funcional y soporte de programación concurrente. Tiene una buena (aunque no perfecta) compatibilidad con las bibliotecas de Java, por lo que todo ese código está disponible al instante. También es posible mezclar Scala con Java y posiblemente otros lenguajes JVM en el mismo proyecto.

Intenté aprender Lift (el framework web) y descubrí que no era lo suficientemente inteligente para manejarlo. La sintaxis de Scala es muy escueta y críptica en algunos lugares (donde Java es prolijo) y le lleva algo de tiempo acostumbrarse. Escribí algunos proyectos pequeños y funcionaron bien; pero proyectos más grandes no fueron divertidos con el soporte medio adecuado de los plugins de Eclipse disponibles en ese momento.

Personalmente, desistí de Scala y pasé a Clojure, que ofrece muchas de las mismas ventajas y es más (disculpe ser subjetivo aquí) "divertido" de programar.


Mi conclusión personal: Scala tiene un montón de características integradas, lo que eleva la curva de aprendizaje. Se siente como la complejidad de C++ con la sintaxis de Java y las construcciones FP de Ruby. Creo que será difícil persuadir a la industria de que Scala tiene ventajas significativas sobre Java, lo suficiente como para justificar los costos de las nuevas herramientas y la capacitación.

+0

Lo mismo aquí. Estaba entusiasmado con Scala (y ** tiene * mucho que entusiasmar), pero terminé mudándome a Clojure como mi "mejor opción" para trabajar. –

+0

¡Es bueno escuchar que no estoy solo por estar loco, o cuerdo! ;) –

4

Acabo de empezar a trabajar con Scala y estoy empezando a ver más interés en el ámbito financiero.

Ahora estoy obteniendo más personas/colegas que muestran interés en esto. Varias personas me han pedido que les mantenga al tanto de mi progreso. No vi el mismo nivel de interés en Groovy (u otros lenguajes JVM posteriores a Java).

Así que definitivamente es el lenguaje Java de jour, y creo que tiene más ímpetu que nunca antes en la arena de Java. Sin embargo, cómo se lleva esto adelante es una incógnita.

1

Escuché sobre Scala en una convención reciente (JavaEdge2009) y todos parecían bastante convencidos de que Scala es un gran lenguaje. La nota clave de la conferencia fue que el futuro de Java no es solo un nuevo lenguaje de programación JVM, sino que los lenguajes de programación SON el futuro de Java.Dado que JDK 7 tendrá soporte para lenguajes dinámicos incorporados, los profetas dicen que usted desarrollará en su propio idioma dentro de unos años (DSL - Lenguaje específico del dominio)

Desde el punto de vista práctico, he descargado El plugin de Scala Eclipse y me decepcionó. El hecho de que las importaciones automáticas no funcionen aún, trazó la línea para mí desde un lenguaje interesante hasta un lenguaje práctico. Aunque suene un poco quejumbroso, ser requerido como en los días antiguos para agregar manualmente las importaciones es demasiado para mí.

+2

Puede probar IntelliJ IDEA v9, Community Edition. Es gratis y el complemento Scala (opcional) (también gratuito) es mucho, mucho mejor que el de Eclipse. –

+0

Sí, el complemento Eclipse aún está en desarrollo. Sin embargo, eso no es culpa del lenguaje Scala. Solo hay muchos voluntarios calificados ... –

+2

No es realmente un problema de asignación de fallas tanto como un requisito para el uso productivo del idioma. –

48

¡He estado usando Scala durante un año en el trabajo (tecnología financiera) y no quisiera volver a Java! Las cosas que me preocupaban más al considerar inicialmente la migración fueron:

  • herramienta de soporte (? Lo son del IDE similares)
  • interoperabilidad con las bibliotecas de Java existentes y construir tecnologías (ant, Spring, las cosas internamente escrito)
  • Talent Pool (¿dónde puedo encontrar buenos desarrolladores Scala?)
  • Transición a tiempo (cuánto tiempo antes de que estoy escribiendo buena Scala?)

Encontré que el complemento scala de IDEA (para el ahora free v9 Community Edition) es excelente: no es tan bueno como el soporte de herramientas de Java, pero ciertamente lo suficientemente bueno para nuestras necesidades. Tiene refactorización y depuración básicas y gran resaltado de sintaxis. Mi experiencia con Eclipse ha sido extremadamente decepcionante: me hacen comprender que se espera una gran mejora para scala 2.8, pero he visto un Eclipse reciente, todas las noches y fue, francamente, horrible.

La interoperabilidad con Java es de primer nivel. No he tenido problemas en absoluto y sigo haciendo un uso intensivo de Spring y de nuestro sistema de construcción a medida (basado en hormigas). El grupo de desarrolladores es solo una consideración para una gran empresa con una rotación de personal de moderada a alta; no ha sido un problema para nosotros hasta el momento y los entrevistados han expresado interés en usar Scala de todos modos.

Quizás el mayor problema sea el tiempo de transición. He descubierto que son 2 semanas para poder escribir algo razonable, 3 meses para comenzar para realmente "obtenerlo" y 6 meses-1 año para comenzar a aprovechar los lados funcional y DSL de Scala. Entonces, ¿cuáles son las grandes ganancias para mí?

  1. La inferencia de tipos y co- y contra-varianza construido en (código es más legible e intuitiva - genéricos simplemente funciona, a diferencia de Java, donde puede ser extremadamente doloroso)
  2. estilo de programación funcional y cierres (código de es más fácil de leer y más rápido para escribir)
  3. La biblioteca actores concurrencia (simplifica enormemente la programación concurrente)

para concluir:

  • ¿Scala es bueno? - es fantástica
  • ¿Está lista para las propiedades de la empresa uso? - hay bastantes compaies que lo usan ahora, incluyendo Twitter, Sony y EDF
  • ¿Las ganancias valen la pena el costo de la adopción? Sí - absolutamente
+0

No anunciaría que Twitter lo usa ... no con la notoriedad que tiene Twitter. Sabía lo que Twitter Fail Whale fue años antes de que realmente crease una cuenta allí. – Powerlord

+1

La migración de Twitter de sus colas de mensajes de Ruby a Scala ocurrió en los últimos 18 meses, creo. Muy posiblemente, la migración scala se realizó para abordar los problemas con los que está familiarizado. ¡No soy un usuario de Twitter! –

+2

No tengo conocimiento directo de las circunstancias, pero la migración de Twitter a Scala fue para abordar los problemas de las ballenas fallidas, y Twitter posterior a la migración ahora tiene un mejor tiempo de actividad que Facebook, según algunos informes recientes. –

4

he estado programando en Java durante muchos años, y Haskell y OCaml durante los últimos dos años. Hace unos meses comencé a desarrollar un personal project en Scala, y es maravilloso. Un sistema de tipo real y todas las bibliotecas de soporte de Java.

La facilidad de mezclar Java y Scala significa que el idioma definitivamente tiene futuro. Los costos de adopción para un proyecto Java existente son muy bajos.

2

No estoy seguro si esta información ayuda, pero estoy creando un servidor de juegos en línea para una empresa de juegos exitosa y establecida, utilizando Scala y Project Darkstar.

Nuestro diseño se especifica para escalar de medio millón a diez millones de usuarios (gracias, Amazon EC2!), Y Scala me da confianza adicional en mi código por cinco razones: 1. Capturo más cosas en tiempo de compilación. 2. Es fácil hacer que gran parte de los datos de mi juego sean inmutables. 3. El código de nivel superior significa que es menos probable que obtenga un error de implementación trivial. 4. Un código más corto y simple me facilita la tarea de revisar y encontrar errores. Las conversiones implícitas son una gran parte de esto. 5. Cuanto más feliz estoy escribiendo el código (y Scala generalmente me hace feliz), el mejor trabajo que hago.

Scala no es una panacea, y tiene muchas verrugas (a saber, la falta de un gran soporte para herramientas), pero es, con mucho, el lenguaje más productivo que podría utilizar para este fin.

Mi única queja es que desearía poder compilar hasta C o ensamblador fuertemente macro, ya que las limitaciones de la JVM a menudo me molestan (borrado de tipo, falta de tipos de pila y matrices de objetos con valores por valor).

No creo que Scala sea tan popular todavía, la conversión de 2.8 está tristemente atrás y ha creado una grieta en la comunidad, y el soporte de herramientas simplemente no está allí. Pero si eres un codificador de vaqueros que no teme la teoría del tipo algebraico y la falta de autocompletar, es difícil equivocarse.

Si decide usarlo, hágase un gran favor y compre el libro de Odersky. Intenté por un tiempo codificar en Scala sin él, y era casi imposible hacer algo al estilo "scala" (no es que haya consenso al respecto).

Cuestiones relacionadas