2010-04-01 37 views

Respuesta

13

Si tuviera que volver a Java, esto es lo que más extrañaría: cierres, funciones de orden superior, coincidencia de patrones, clases de casos y énfasis en la inmutabilidad.

He estado en 2.8 por un tiempo. Si tuviera que volver a 2.7, lo principal que extrañaría es la consistencia, la limpieza y la riqueza de la API de 2.8 colecciones. Es mejor que las 2.7 cosas. Pero también extrañaría los argumentos nombrados y predeterminados.

+2

+1. Estaba revisando las colecciones de Java el otro día, y me sobrecogió la sensación de que fue intencionalmente diseñado para ser el peor API que haya existido. –

+4

Daniel, creo que tienes que echar un vistazo a las clases de colección de MFC;). Creo que las colecciones de Java no son tan malas, considerando que no hay funciones anónimas en Java. – Alexey

11

La inferencia tipo ahorra mucho tipeo inútil. map y foreach y similares en las colecciones son geniales, especialmente en combinación con los iteradores de latencia predeterminada y la sintaxis de la función realmente sencilla.

Pero, como alguien que hace mucha informática científica, lo que más extrañaría es poder escribir código de alto rendimiento, envolverlo en clases eficientes y luego usar mapas y operadores matemáticos (+, *, lo que sea) para manipular esos constructos de alto nivel de la manera en que realmente pienso sobre ellos.

En cuanto a 2.8 frente a 2.7, la mejora es bastante gradual desde mi punto de vista. Es un poco mejor en muchas áreas; hay poco que señalar y decir: "¡Oh, vaya!". Espero que la nueva anotación especializada me ayude mucho, pero todavía no la he visto plenamente en acción en la biblioteca, por lo que no estoy juzgando.

8

Creo que no es una característica, pero la concisión que Scala logra es lo que más me gusta.

Esto, por supuesto, solo es posible debido a la inferencia de tipos, cierres, un gran sistema de tipos, etc. Simplemente no creo que pueda dividirlo en una o dos características. Trabajan juntos y el resultado, código conciso, es lo que yo llamaría la característica asesina.

10

Me gusta escribir en Scala. Esa es la función # 1 en mi libro :)

puedo simplemente seguir adelante con lo que quiero en lugar de bailar a través de aros de Java:

  • val/var significa que no tengo que escribir el tipo dos veces
  • cierres significa que no tengo que escribir un montón de interfaces de anónimos y se puede volver a utilizar mucho más código
  • parámetros con nombre significa que no tenga que recordar la posición de cada argumento - ideal para la lectura y la escritura
  • Las clases de casos significan que obtengo String e iguales gratis ... hace depuración ¡mucho más fácil!
  • Una API decente para las colecciones (por ejemplo, mapa, doble) significa que yo puedo decir lo que quiero hacer en vez de bailar el baile iteración

En cuanto a 2,8 vs 2,7 ... Sólo he siempre realmente pasó tiempo de calidad con 2.8 ;-)

Cuestiones relacionadas