"It lets you easily use objects and OO concepts when they are the best approach, but it does not force you to use them when the particular problem is more functional (or even more procedural for many short, simple scripts.)"
I was disagreeing with the point that OO languages "force" you to use OO concepts. OO concept to me means encapsulation/inheritence/polymorphism. Java in particular does not force you to use any of these OO concepts. You do have to declare one class, but "class" in that sense is purely for scoping. You don't have to instantiate it or acknowledge its object-ness.
And my point is that while you are not forced to design an OO program, you are forced to use OO mechanics. Considering that other multiparadigm languages don't force this (C++, Python, Ruby, Perl, Objective C, Lisp), I think it's an important distinction.
Perhaps "OO Structure" or "OO Syntax" would have been a better choice of words. You can abuse java by declaring your class with a static main and then write things procedurally within that, but you have to have that class and its OO Structure.
In Python, that is not needed. Objects are there when they make sense(such as most gui design), but not required, even in structure or syntax, when they do not make sense.
"It lets you easily use objects and OO concepts when they are the best approach, but it does not force you to use them when the particular problem is more functional (or even more procedural for many short, simple scripts.)"
I was disagreeing with the point that OO languages "force" you to use OO concepts. OO concept to me means encapsulation/inheritence/polymorphism. Java in particular does not force you to use any of these OO concepts. You do have to declare one class, but "class" in that sense is purely for scoping. You don't have to instantiate it or acknowledge its object-ness.