Creo que actualmente los tres principales contendientes son: Nim, D y Rust . Están en un empate estadístico en términos de rendimiento, pero difieren en varios otros méritos:
- Nim : es mi alternativa favorita de C ++. Ofrece la sintaxis más concisa y legible de las tres (especialmente para las personas acostumbradas a Python), y produce los binarios más magros.
También es uno de los lenguajes de programación más portátiles (no está casado con ningún back-end específico como LLVM, puede ejecutarse en cualquier plataforma que tenga ANSI C, JavaScript o PHP). Otra cosa que me gusta de Nim es que tiene el mayor grado de simplicidad de licencia: todos los componentes principales y casi todos los módulos tienen licencia MIT.
La desventaja de Nim es que aún no ha alcanzado el hito de la versión 1.0, y tiene una popularidad menor que los otros dos contendientes.
- Dlang : tiene muchas de las mismas virtudes que Nim, pero con una sintaxis tipo C.
Creo que D tiene características de metaprogramación menos sofisticadas que Nim, y se queda corto en términos de algunas características, aunque personas razonables podrían estar en desacuerdo. D ha existido durante mucho tiempo, pero su popularidad se ha mantenido estable durante los últimos años, mientras que los otros dos contendientes tienen un mayor impulso de crecimiento.
- Rust : un lenguaje diseñado con más énfasis en la seguridad de la memoria manual que la recolección de basura, es de nivel algo inferior y tiene una sintaxis más detallada.
De los tres, Rust parece estar progresando más en la sustitución de C / C ++ como el lenguaje para implementar núcleos y otros componentes del sistema operativo de nivel inferior (por ejemplo, Redox OS).
Aquí hay algunos contendientes populares que NO creo que hagan un reemplazo viable de C / C ++:
- Swift: un lenguaje decente, pero no llega a los tres contendientes principales mencionados anteriormente. Indica puntos de referencia muy por debajo de Rust, y por lo tanto probablemente también por debajo de Nim y Dlang. Se basa en LLVM, que es menos portátil que poder usar cualquier compilador ANSI C con Nim (incluidos innumerables OS oscuros y arquitecturas de CPU). La licencia también está más gravada que Nim.
- Go: un lenguaje muy desequilibrado que ofrece un rendimiento mucho más pobre, archivos binarios muy gruesos y una sintaxis más torpe que el top 3. Fue diseñado para rascarse una picazón en una estética de diseño minimalista (ridículamente más allá del punto de impracticabilidad), tiempo de compilación rápido ( lo que importa cada vez menos a medida que las CPU y la compilación basada en la nube se vuelven más rápidas) y la concurrencia: falla en todo lo demás.
- Java, C #, etc. – casado con máquinas virtuales; mucho más detallado con menor rendimiento que los tres contendientes.
- Delphi, Pascal, Ada: la disminución de la popularidad, la falta de una implementación con licencia permisiva, la sintaxis muy detallada, se han reemplazado en todos los sentidos.
- Haskell, ML, etc. – la programación funcional es un nicho de investigación que solo una pequeña fracción de personas aprecia y no es muy práctico en muchos dominios problemáticos con los que trata C / C ++.
- Erlang, Elixir, Chapel – especializado, malo en muchas cosas.
- Julia: se centró en algunas cosas específicas, e incluso construir ejecutables independientes no es una de ellas.
- Crystal, Pony, Beast, Haxe, etc., etc., etc., casi tan oscuro como Nim, pero en mi humilde opinión, menos brillante y menos probable que tenga éxito.
- Todos los lenguajes de script, por razones obvias.