Object-oriented programming language is now part of basic education. However I think, in few tens years, the object oriented programming languages will be simpler by eliminating unnecessary compexity. Currently young people need to battle with those unnecessary complexity before enjoying the programming itself.
Object-oriented is great because it help encapusulation and reuse of codes. They are the essence. However the current implementation of languages looks to me too complex. For instance, JAVA “wrapper” is a make-sense-alignent between the low level basic data types and the object concept. I can understand a historical reason (compatibility) and its superfical merits (automatic converson methods and use of MAX\MIN_VALUE constant). However I can hardly recognize its value really because those superficial merits can be supported by basic type too.