Extensions - Concept
Before starting the development of a new extension, there are some things you should know.
What makes the extensions great and what to avoid
Many applications(such as Firefox and Eclipse) became very popular due to their capacities of supporting Extensions.
They became popular because people were glad that they could get pieces of code that would improve the application is very specific areas.
Last but not least, people loved the freedom provided by extensions.
So here are three tips:
- Make sure the extension improves G-java.
- Don’t make an extension with “everything”. When it is possible, split different core parts into smaller parts.
- Don’t forget freedom.
1. and 3. should exclude annoying publicity toolbars which are useless and hard to remove.
The importance of making something unique
Making something that is not unique is completely useless and eventually attempts to split the community.
Furthermore, the competition might make people add more and more stuff to their extensions until they end up breaking 2. and eventually breaking 1. as well.
Besides, how useful can it be to repeat someone’s work?
The importance of making something stable
Having an unstable extension can be very annoying:
- It can cause error under some circumstances, destroying people’s freedom to do that(see 3.)
- If the extension does not work, it is useless(see 1.)
The importance of keeping the extensions updated
It is very annoying to have an extension with obsolete methods or an extension which simply doesn’t work under new versions:
- Newer versions usually have lots of performance/security/features improvements. Encouraging people to use older versions will violate 1.
- Obsolete methods usually mean bugs and lack of performance (see “The importance of making something stable” and 1.)
- Obsolete methods can be removed in newer versions (see the other topics of “The importance of keeping the extensions updated”)
The importance of making something legal
Illegal content will be removed.
- Removed content will never be useful (see 1.)
- People with the extension will lose the freedom to do what they want with their games(see 3.)
- Illegal content can be punished by law.
The importance of distributing your extension
Extensions should never be “Personal” or “Locally distributed”. They should always be “Public” unless they are experimental. But even if they are experimental, they can be used for educational purposes:
- A non-Public extension isn’t useful for the community (see 1.)
- A non-Public extension doesn’t give most users the freedom to use it (see 3.)
The importance of making your extension open-source
Not all extensions must be open-source, but that is highly recommended:
- Closed-source extensions don’t give people the freedom to learn with it. The educational purpose is also useful.(see 1. and 3.)
- Closed-source extensions don’t allow people to detect possible problems with it, making the extension more vulnerable to the problems in “The importance of keeping the extensions updated”.