Trying to understand if types imply OO and vice versa.
Questions:
What exactly is a type ?
Can a class in ruby be called a 'type'.
In javascript, the native functions/objects like Array,String,Function ... Are they types ?
Is a C struct a type ?
How is it that a language can be typed even when it doesn't support OO ? For e.g. Haskell. Is it that types in such langs are "data" types without behavior(methods) in objects/classes in OOPL ? What are the significant differences in types between langs that have types but no OO and langs that support OO.
If classes/objects are types, doesn't OO imply types ?
Can you have a type system without the typical hierarchies seen in OO langs ?
Since clojure supports type hints, can it be called typed in some sense? it is not statically typed.
Do the words 'untyped' and 'dynamically typed' mean the same thing ?