Revisé rápidamente el tutorial y la referencia del idioma, y aquí está mi opinión:
- Tiene una sintaxis simple pero familiar. Muchas de las repeticiones se han ido. Esa interfaz de paso de mensajes se cambia a llamadas de función con sintaxis C.
- Tiene soporte incorporado para Opcional y evitará la desreferencia de puntero nulo en la mayoría de los casos.
- Puede hacer coincidir cualquier cosa en las cláusulas Switch / Case.
- Las funciones y los cierres son de primera clase: funciones y cierres
- Casos de coincidencia de patrones y enumeración (algo muy similar a las “clases de casos” en Scala).
- Extensiones a tipos existentes. Lo encontré muy similar a las clases implícitas de Scala: protocolos y extensiones
- Admite genéricos con requisitos (es decir, conceptos de C ++). Es una pena que los conceptos de C ++ aún no estén allí.
- Tiene subíndices, que básicamente anula el operador []: Subíndices
- No hay un tipo de conversión implícito.
- Tiene propiedades perezosas.