-
Notifications
You must be signed in to change notification settings - Fork 15
Philosophy
As developers we love tools. Tools improve our productivity. Or do they? As a growing frustration in tools growing completely out of proportion the OpenIDE project was born. It all started as a result of the AutoTest.Net and ContinuousTests projects. They are continuous testing tools for .Net meaning as files are saved build and testing happens in the background. At this point any text editor would give you the quick feedback loop that you need as a professional developer. However this is not enough. There are features in IDE's we simply cannot live without. I'm talking about type search, quick navigation, simple refactoring and so on. OpenIDE will provide you with a minimum of features required to be productive.
Code quality is of high importance to be able to maintain written software. Trade offs has to be made on how to approach this through an IDE. As a result more effort should be put into being able to work efficiently with healthy code bases opposed to easily being able to write and maintain code bases of low code quality.
Some tools are very easy to get started with. Meaning as soon as you go into the tool you can easily understand exactly where to click and what relates to what else. This requires that the tool is "in your face" with all it's features. It needs to be optimized for exploring to discover features. This is the perfect approach for tools you rarely use. You do not want to sit down and learn such tools. Instead when you use them you want it to be easy to explore your way into how to use them.
Tools like development IDE's are tools used on a daily basis. For these kind of tools the "stay out of my way" approach works a lot better. They will take some time to grasp but when experienced with them they will increase productivity. You will be in control of the tool and not the other way around. Just look at tools like Emacs, vim and git. A first time vim user won't even be able to figure out how to exit the application. As soon as anyone learns the tool productivity increases drastically. The features are there but you need to know where they are to use them. In this way you can have the tool bend at your will and every feature will be no more than a click away.
Developers creates small tools on a daily basis to help solve everyday problems. Some of those tools represents special needs for managing code. A development environment needs to be easily scriptable so that the developer can throw together small scripts solving tedious tasks in no time.
As a developer you write code. And you will write code in several languages. The language should not dictate what development environment to use. Every developer has their favorite editor. Still every time we want to develop code in some language we get thrown into an IDE specific to that language. A better solution would be to have the IDE support your favorite editor. In this way jumping between languages would feel much more natural. Also the threshold for adopting a new language would be lowered.
To sum up the philosophy behind OpenIDE: Simplicity, Flexibility and Productivity.
PS! Simple is not easy