Main parent object
I've seen in a few projects already (vlc, Qt, all object oriented languages, etc) that have a main object, i.e. java has Object, Qt has QObject, Python has Object, libVLC has vlc_object_t, and so on.
So my question is, is it good practice (design pattern) to do stuff like this? If I develop some kind of library/framework, should I do the same?
Why is it actually done that way?
Re: Main parent object
Many languages which advertise themselves as "object oriented" organise their type system around the notion of a class. (So they might better be described as "class oriented") By "type" I mean the sort of thing that an object is: the sort of behaviour and state that it has.
And there is usually some notion of "inheritance" whereby some type (class) is defined as also having all the behaviour and state of some other class (its parent). In Java classes have just one parent, or immediate superclass. Tracing this notion of inheritance back from a given class it is good to have a "stopping point" so that it is well defined just what behaviour and state that class is inheriting. I don't think it is necessary but most languages of this sort trace the ancestry of any given class back to a common ancestor shared by all classes. This allows all classes to share some common behaviour that the programmer can rely on (like the toString() method in Java), and, by convention, it is called Object.
This is not the sort of "pattern" that the programmer need worry about (or attempt to emulate): it's just a given for languages of this sort.