title: Export class vs. export function for creation
body: <p>I notice some libraries expose a function to user for creating instance, while some other expose a class directly. For example, <strong>Vue.js</strong> uses <code>new Vue(...)</code> to create a new instance, and <strong>Express.js</strong> uses <code>express()</code> to initialize. Currently I am writing a libary for my company, and I cannot decide which one I should choose. What are the pros and cons of these two design style? And what should I prefer to use?</p>