I'm quite familiar with Views but for others, especially page, panel and mini panel introduced by the module, Panels. Can anyone provide some simple but elegant description between them?
Views are used to create lists of things.
One difficulty with Views, is that when used on their own, views tend to become fairly static. Let's say that you have a view that lists "Friends of user X". In your view, you must know define where to find user X. This will mostly be either a contextual filter, possibly using a relationship, but whatever configuration you have, it becomes a static part of the view. This leads us to Pages.
Pages provide the rest of your site with
Context. Continuing on the example above, a Page can figure out how to find user X at run-time, and then feed that as an argument to other components, such as the friend view. This means you can re-use the same view, and all the rules that go with it, on both the same page more than once, but also across pages, and having it base it's results on different users every time.
If you want to show the browsing users friends, and my best friends friends, on the same page, you tell the current
Page about those two contexts, use the same View twice, and give each instance of that View, a different context as argument.
A page on it's own however, doesn't have a visible interface, neither back- nor front-end, which is were Panels comes in.
Panels Provides a GUI on top of Panels, allowing you to configure Page manager, as well as adding further functionality to Pages, such as render caching.
Mini Panels Essentially embeds an "small" Panel rendering into another Panel. You can think of it as a very intelligent version of a block, capable of defining layouts, requiring parameters, and more.
Views: It is used to create custom queries. If you want to make a list of particular type of content, view is suitable.
Page: Page that you can use to create static pages. If you want to create a custom static page, for example like About us page. That page my be not reside in any particular content type or anything, but you just want to create a static page. Pages are using panels to alter the contents inside it.
Panels: Panels are using to define a custom layout for a particular page. Means, for example your theme have basic structure firstsidebar|Main content but you need one rightsidebar region only for a particular page. Then panels are useful. In panels you can define custom layout for a particular page. And you can assign block or any contenets to the various regions of that page without writing any single line of code by using panels, here you can see how we can use panels for altering node layout.