Disclaimer: I will refer to Bukkit and Spigot and being the same thing, While it is technically incorrect, in this context, the differences are irrelevant. The server platform Bukkit has been working as a stable server platform for the past couple of years, and has been able to maintain stability between Minecraft versions fairly well. But with that being said I think it is about time we look into new and better alternatives, or start creating a update and more optimized version of Bukkit, to slowly shift towards an improved environment. Surely Bukkit has been the to-go choice for Minecraft servers for many years, and for good reasons. But to me Bukkit seems like a project that is becoming increasingly outdated, with core functionality that cannot be updated without breaking older plugins. The developers Another obvious issue (to me at least) surrounding Bukkit, is its developer community and the people who frequent it. This is not necessarily directed at the people who are developing the Bukkit platform, but rather the people developing plugin using Bukkit API. Throughout my relatively short time around here on SpigotMC, I consistently see an obvious lack of knowledge of the Java language, causing a lot of unnecessary questions, and sometimes even scenarios of people straight up asking for code, even when a valid solution has been given. Don't get me wrong, everybody starts somewhere, but starting somewhere that requires prior knowledge of dependent subject is not a good place to start. But I honestly think the amount of unknowledgeable people is really hurting the development part of the Bukkit community. Standardized libraries & handling Note: When I refer to libraries, that also includes various utilities, APIs, and frameworks. While this does not appear to me as a problem in particular, the process of adding libraries seems to be a quite cumbersome, and often also impractical. A lot of plugins are not entirely standalone, and requires other plugins or libraries to function. That is all fair and square, but the problem arises when the dependency need to be distributed. You will often find people who shade the dependencies into their plugin JAR, this sometimes even include the dependent plugins. This may not be a big problem, but it is bad practice, and it would make a lot more sense to be able to add designated resources, that can also be shared among other plugins dependent on the same resource. It would however also have to be integrated with the plugin system, in such a way you can easily set up dependency for these resources, and not only plugins. Along with this, I think adding standardized APIs for common tasks, which are officially supported and recommend by Bukkit/Spigot could be a good idea, if implemented in a proper and moderate manner. I can see pros with this idea, but just as many cons. The idea of a standardized permission management system, which has been thoroughly designed and implemented, to me seems like a good idea, and it would make it easier for developer to create compatible plugins, since there is only one central API they have to implement, rather than implementing support for multiple different permission management system. Now this is just an example, and a rather bad one to be honest, since the Player#hasPermission renders some of this obsolete, but my point still stands. Another thing that I'd also like to see introduced, would be a system to encourage plugin developers to implement more flexibility in their, by providing an easy and standardized system to allow their plugin(s) to seamlessly accept and handle plugin extensions. I know a lot of APIs and plugin our there could definitely benefit from a feature such as thing, as it would also provide more control of the plugin for the end user. The event system Throughout my time developing clients and various other project, I've worked with a couple of different event systems. However my general experience with Bukkit's is displeasing, and I find the syntax odd, and a bit confusing to work with. I won't to in-depth with all of the things that I think could be improved with the event system. However, I'll make an incomprehensive list of some things that can be done to improved the speed of the system system, preventing duplicated code in the event implementations, and suggestions to improved the ease of use. Changed the name of the priorities - they're confusing and unclear, especially if you don't read the JavaDoc The EventHandler#ignoreCancelled is also slightly confusing and unclear, if you don't read the JavaDoc Create a abstract Cancellable event implementation to prevent a lot of events with duplicated code Remove the Listener interface - it's completely obsolete, and serves no legitimate purpose by the looks of it Create a centralized event and listener management class, instead of event handling their own listeners I do not understand why do register event listeners through the plugin management classes Utilize the Flyweight pattern to minimize the instantiation load. (Only for safe/synchronized events) Various small adjustments to improve the overall speed of the event system. (can be at least twice as fact) These suggestions are from a rough look at the portion in the Bukkit API, and I could easily keep going for longer before moving only the portion in the CraftBukkit implementation. Generally what I'm saying is, since the event system is such a crucial part of the platform, it would greatly benefit both server owners, and developers to implement some of the suggestions. I'm not trying to trash it, I just think there are a couple of things that could - and should be improved. My conclusion Now of course this isn't a full review of what I think is good, and what I think is bad about Bukkit. This thread is most meant to highlight a few of the things I've like added or updated in Bukkit, and the whole community could benefit from, so it is going to appear to be more negative than positive. I think the same concept that applies to PayPal, also applies to Bukkit - It isn't popular because of the service, it's popular because of its large userbase. But that's just my opinion, and comparing PayPal to Bukkit is not a fair or reasonable comparison. All in all, Bukkit is a functional server platform, with a large verity of plugins for server owners to easily create a server, with the features they want. However, I think Bukkit suffers a from being an outdated platform, with no ability to update, without breaking old plugins, and requiring current plugin developers to update their plugins. Some of the things I've suggest can indeed be updated and improved, but some core functionality is beyond what Bukkit can do, without break backwards compatibility, and outside the scope of Spigot. Ask me any question regarding any of my opinions on anything related to Bukkit, and I'll try answer it the best to my abilities.