Most of what has been said already covers it, but there are two things I want to add:
- Sponge was designed to work with Forge and mods, Bukkit was not, and the previous attempt, Cauldron, was always a bit hacky. The person who maintained Cauldron is a lead of Sponge now - so the experience is there as to what works and what doesn’t.
- Sponge, as a later API, is trying to learn from what was good and bad about Bukkit. Bukkit is showing its age - the Minecraft system has changed a lot (1.7 → 1.8 was a big change). Bukkit mirrored the implementation somewhat (so with things like integer IDs and damage value, which are going away in 1.13) which the Bukkit API may find hard to cope with, while Sponge tries to be a bit more decoupled from the implementation in order to make it easier to absorb changes in the Minecraft API.
The Sponge API may seem quite a steep learning curve at first, but it’s designed to be stable going forward. We do have good docs, thanks to the docs team, and we’re here to help too. So please reach out when you don’t understand something about the API.
Aside: There is a lot of stuff about the DMCA going around, if you search the forums, there have been many many discussions over it, none of which I wish to repeat again, but if you’re interested, it’s buried in the forums somewhere.