Packages are like change sets but without the constraint that states that organizations should all be children of the same production organization.
This means that change sets are not available on Developer Edition organizations, whereas packages are, and that we can only deploy metadata that is isolated from the destination organization's configuration (packages can be used by ISVs to provide AppExchange general porpoise apps, that's why a package can't be aware of what's already on your organization).
For more information about the ISV partner program, take a look at Trailhead at https://trailhead.salesforce.com/content/learn/trails/isv_developer_beginner. Packages can also be used to release basic libraries of metadata (such as common formulas, Apex classes, and validation rules) that consultants commonly use on their projects...