Puedo decir que realmente amo Scala pero ahora me gustaría saber las características que no puede vivir sin trabajar con Scala. ¿Qué hay de Scala 2.8?¿Cuáles son las mejores características de Scala?
Respuesta
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.
+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. –
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
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.
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.
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 ;-)
- 1. ¿Cuáles son las características ocultas de Maven2?
- 2. ¿Cuáles son las características de un MBean JMX bien diseñado
- 3. Índices MySQL: ¿cuáles son las mejores prácticas?
- 4. ¿Cuáles son las mejores características/más estables de la biblioteca de cierre de Google
- 5. ¿Cuáles son las mejores características de un marco de capa de datos para aplicaciones WPF/MVVM?
- 6. ¿Cuáles son las mejores alternativas a Lucene?
- 7. ¿Cuáles son las mejores características de Ruby on Rails, por qué elegir?
- 8. ¿Cuáles son las características de un token OAuth?
- 9. ¿Cuáles son las características de ANTLR que XText no proporciona?
- 10. ¿Cuáles son las características del código de spaghetti?
- 11. ¿Cuáles son las características de fuente predeterminadas en Android?
- 12. ¿Cuáles son las características propuestas más útiles de C1X?
- 13. ¿Cuáles son las características/beneficios clave de RIA Services?
- 14. ASP.NET-MVC 2 RC Las mejores características
- 15. ¿Cuáles son las mejores estrategias para usar múltiples bibliotecas AJAX?
- 16. ¿Cuáles son algunas características útiles de TextMate?
- 17. ¿Cuáles son las nuevas características en Eclipse Helios?
- 18. ¿Cuáles son las características más abusadas en Visual Studio/C#?
- 19. ¿Qué significa stream? ¿Cuáles son sus características?
- 20. ¿Cuáles son los mejores usos de las tiendas de documentos?
- 21. ¿Cuáles son las mejores formas de bloquear aplicaciones de Android?
- 22. CSS3 - ¿Cuáles son las mejores prácticas de rendimiento?
- 23. ¿Cuáles son las mejores bibliotecas/utilidades/extensiones de javascript array?
- 24. ¿Cuáles son las mejores prácticas para repositorios de horno?
- 25. ¿Cuáles son los mejores componentes de Boost?
- 26. ¿Cuáles son las mejores prácticas para usar Z2 Availability Zones?
- 27. nhibernate: ¿cuáles son las mejores prácticas para implementar la igualdad?
- 28. MVC3 y EF Data first: ¿cuáles son las mejores prácticas?
- 29. ¿Cuáles son las mejores soluciones livianas para arrastrar y soltar?
- 30. ¿Cuáles son las mejores prácticas para diseñar esquemas XML?
debería ser wiki de la comunidad. – missingfaktor
Lo siento por esto. ¡Cambié esto para ser wiki de la comunidad! –