Seeing how hard it is for (new) users to master the Eclipse IDE, I wanted to provide a kind of reward system for learning new tricks. Further I think promoting new features is an important topic that is not addressed thoroughly right now. To encourage users to extend their knowledge we provide experience points and badges, a purely virtual award for trying out new tricks.
Eclipse Skills provides a framework to gamify the learning experiuence of users for the Eclipse IDE and RCP applications. It will track the users progress and knowledge status. Skill points can be earned by fulfilling predefined tasks and progressing in using the features of the application. Storage and display of the current experience level of the user shall be provided.
I am proposing to introduce gamification elements to eclipse to educate and encourage users to explore more features of the IDE.
'Skills' (working title) will track certain user actions and provide skill points for dedicated actions. Eg for the first JDT refactoring using eclipse commands. Similar to rogue like games it will provide categories where users can advance by collecting XP. There will not be stats like charisma, health, strenght. Instead we will have Java, C++, Debugging, Refactoring or similar. Instead of quests there will be challenges and dedicated actions we ask from the user.
'Skills' will not provide a full featured set of given categories and challenges. Instead it provides a framework and extension points so users and interested projects can add their own. Further any progress should be stored to the user profile, preferrably to the online profile that gets shared over multiple eclipse instances.
Gamification might sound like nonsense at first, but the plan is to use it for educating developers to leverage hidden powers of the IDE and RCPs. I am working for several years on a modified version of the Eclipse IDE for customers. One of the hardest challenges is to educate users, to teach them how to efficiently use the IDE and to advertise new features.
With 'skills' we could push users by challenging them from time to time to try something new, learn a new shortcut, use an alternate way of launching code, find a new view that might come in handy... By monitoring progress we know quite well what users are already capable of and can effectively provide new challenges adapted to the skill level of the users. Combined with help and cheat sheets this could become a very efficient way of teaching users.
Further most programmers are still kids inside and love to be challenged.
As we plan to use an existing code base, a first look at the project can be taken here .
Eclipse is known to be very complex and not exactly beginner friendly. Such a system might guide them through the process from understanding to mastering the IDE.
As 'skills' does provide the framework, but not concrete tasks and challenges it needs close cooperation with other projects to become useful. Idea is to itroduce the project, stabilize the API and then push for the release train so other parties can build on top of it.
The initial code contribution was done as a master thesis on the university of Bonn, Germany. The codebase is fully available under EPL 1.0. I got in touch with the authors via email and they agreed that their code can be used as an initial contribution.
The code is fully available, yet there might be legal concerns regarding tracking provenance of the code. So there is a risk that parts of the initial contribution need to be rewritten.
Plan is to first bring the code to eclipse as soon as the legal team accepts it. Then start with refactoring to fit eclipse naming schemes. Get rid of currently supported challenges for special eclipse projects.
A first release of the API is planned for EOF 2020.
As soon as we have a working prototype, I want to announce this project on my blog and try to bring it to ECE next year. Further it might be an interesting topic for GSoC students. I hope to raise attention so other eclipse projects start to adopt the idea and contribute their tasks and challenges