10-21-2013, 06:12 PM
(This post was last modified: 10-21-2013, 06:13 PM by redstonewarrior.)
1. Not particularly. Most servers don't have skilled enough staff members to actually develop in a java environment. A python project environment is significantly easier to learn and manage than a java project environment, or any other compiled system for that matter. As far as the VM goes, all calls are resolved at init time, so the language is irrelevant.
2. You're missing the real bottleneck, but I'll answer with this: All things we script with this are snort one-shot events that are not executed repeatedly. Execution rarely happens, and quite frankly, this is not the bottleneck on minecraft servers. In this case, the wasted cycles are absolutely irrelevant to the server's performance. I think there's a nice quote about wasting the CPU's time, not the developers'.
3. It kinda does, not to mention ease of both development and modification. For most any decently sized problem, python's source will be much much shorter.
4. Languages of this type are completely interoperable without any cost of speed, provided the various concepts are handled correctly. You could write a javascript plugin and, provided a decent compiler/interpreter (rhino?), it would work just fine. The ideas behind the languages are shared once you move above C++, and there are no structural elements of bukkit that make java plugins more efficient. (You could make a C# one.) You could argue that there are optimizations in the JVM for java generated bytecode, but this is irrelevant to the task at hand (and small.)
You do have one decent point: It's a little slower (Python isn't great with that.) That is why for any events that are executed constantly, such as movement, physics, and generators, we have a tiny java plugin which then calls python when needed (currently just the generators, we'll add a physics thing if we add in command block support.)
On the whole, I disagree with your points and your leanings. From experience as an admin, python plugins are much more staff-friendly and maintainable, in addition to sufficiently speedy.
2. You're missing the real bottleneck, but I'll answer with this: All things we script with this are snort one-shot events that are not executed repeatedly. Execution rarely happens, and quite frankly, this is not the bottleneck on minecraft servers. In this case, the wasted cycles are absolutely irrelevant to the server's performance. I think there's a nice quote about wasting the CPU's time, not the developers'.
3. It kinda does, not to mention ease of both development and modification. For most any decently sized problem, python's source will be much much shorter.
4. Languages of this type are completely interoperable without any cost of speed, provided the various concepts are handled correctly. You could write a javascript plugin and, provided a decent compiler/interpreter (rhino?), it would work just fine. The ideas behind the languages are shared once you move above C++, and there are no structural elements of bukkit that make java plugins more efficient. (You could make a C# one.) You could argue that there are optimizations in the JVM for java generated bytecode, but this is irrelevant to the task at hand (and small.)
You do have one decent point: It's a little slower (Python isn't great with that.) That is why for any events that are executed constantly, such as movement, physics, and generators, we have a tiny java plugin which then calls python when needed (currently just the generators, we'll add a physics thing if we add in command block support.)
On the whole, I disagree with your points and your leanings. From experience as an admin, python plugins are much more staff-friendly and maintainable, in addition to sufficiently speedy.