IDEA is OpenSource now
IntelliJ's IDEA 9 has an OpenSource community edition that is freely available for Windows, MacOS and Linux. It has got tons of features, even in the free edition. Most stuff that's not in the free Community Version isn't stuff I'd use for private programs. IDEA - in any version - has got Git support, best Java support out there, nice GUI builders, JUnit support, and a neat debugger. Things it lacks are some Emacs features I'm accustomed with. But the unique project structure lets us use any editor we want in order to perform the following workflow:
Active editing in short
- Prototype a solution. Syntactically incorrect, just put the stuff into the file without being nagged that it won't compile. Develop your thought, supported with Emacs' semantic completion modes and search functions.
- Implement it concretely. Correct the syntax stuff with IDEA's nice (Java) coding support. Render supporting graphical overviews and UML diagrams on the fly.
This separation between prototyping ideas and thoughts with an external editor (that does exactly what you expect and looks exactly like you want) and implementing concretely with a powerful IDE is "Active Editing". At least I don't think in Java code. So I need a layer between my idea of the program-flow and the implementation issues.
Emacs has got tons of very neat plugins supporting the editing experience with auto-completion, auto-suggestion. That is semantically aware, but normally it doesn't use the JVM runtime backend to perform these completion suggestions. That's where IDEA comes in very handy, because it compiles (like many other IDEs) and has a very sophisticated (Java) auto-indention.
The workflow
Reveal your file within your system through IDEA. On Windows there's a pendant (plugin) for the Explorer.
Open the revealed file within your editor of choice. Afterwards save it. Neither close the editor nor IDEA at any point.
If you bring IDEA into foreground again it'll automatically actualize the file and mark the issues.
Use the graphical navigator plugin to gain an overview in no time about what the project structure is about.
Use plugins to search through snippet repositories in order to support your concretization:
Use an editor as an external tool. Take a look at the parameters. You could use /usr/bin/aquamacs if you installed it. Anyhow...
It's simply taking advantage from the world of editors and the world of IDEs combining it into one single workflow. I think the separation between concretization and simply prototyping the necessary programming tasks is supporting productivity.
I suppose that isn't too unique: I see many people wasting time to fix stupid syntax errors while they should simply ignore it and create a basic program structure. Often that stuff is getting deleted over and over again, getting replaced and restructured... because it doesn't fit. And it can't!
But it's natural to be a perfectionist in software development and to want to have everything fixed and in order.
- Surely you can deactivate the runtime code-checks and stuff. But why not take advantage of that? You can switch between the tools as often as you want. That's way faster than going into the preferences every time.
Never!
Never expect wonders. There's no wonder-IDE that's got all the competences. There're helpful sets of development procedures and strategies. But they all need skill. I think Emacs and IDEA require some coding experience. Beginners might overload IDEA with hundreds of plugins and lack Emacs skills at the same time. ;) I have had that. It's simply a matter of time until you're able to save time with this coding-strategy. I think it's very pragmatic. But at the same not for beginners.
Have fun,
wishi



Post new comment