Decir que un lenguaje es OO puro es nada mas ni nada menos que decir que el lenguaje lo es, y no de las posibilidades disponibles del propio lenguaje respecto de la orientación a objetos.
C++ es multiparadigma y por supuesto eso le impide ser OO puro, pero eso no quita que se puedan implementar perfectamente todos los conceptos relacionados a la POO. Esto lo aclaro porque entre lineas se puede entender que C++ corre con una especie de desventaja por no ser OO puro, y eso desde mi punto de vista es incorrecto.
Tomando el concepto que un lenguaje OO puro es mejor para aprender POO, entonces por que nadie aquí todavía menciono a SmallTalk o Ruby?
Si un factor primordial es la salida laboral rápida, yo te recomendaría C# siempre que vaya acorde a tus objetivos, ya que tiene una curva de aprendizaje mas amigable que el resto, pero la verdad es que C++ es la mejor transición si venís de C.
En cuanto a lo de si Java y C# son OO puros, la verdad es que si nos ponemos en detalle lo podemos discutir por un rato largo, pero me parece que seria marear mucho el tema principal.
Solo dejo esto:
Languages called "pure" OO languages, because everything in them is treated consistently as an object, from primitives such as characters and punctuation, all the way up to whole classes, prototypes, blocks, modules, etc. They were designed specifically to facilitate, even enforce, OO methods. Examples: Smalltalk,
Eiffel,
Ruby,
JADE.
Una buena alternativa a Java como primera experiencia es C#, que viene a ser una mejora de Java pero cerrado a sistemas de Microsoft.
Si te leyese Leyer
. C# no es ni una mejora ni nada similar, son dos lenguajes distintos con sus ventajas y desventajas, y de hecho también existen proyectos como
MonoSaludos!