Sunday, July 31, 2005

I've been thinking about this for some time.

I've been using eclipse for a few years now, and by-and-large, I like it a lot.

But one thing drives me crazy, and that is the limitations of the templating functions. First, I like to have my classes set up a certain way, and I have used a basic class template for myself for years, since the early '90s in my C++ days. I have the copyright notice at the top, and all classes have sections for constants, variables, and different types of functions. My class templates have the section heading comments already made, and I start each class the same way. I jerry-rigged eclipse's new class template to be close to this, but there isn't enough flexibility in the way you can define it to generate the class, so I stuck all my comments underneath and you have to delete eclipse's class body every time you start, or you have to copy and paste the generated methods when you start from an interface. It would be nice if eclipse just did the right thing.

Second, as far as I can tell, you can't edit your own template variables in any way I can figure out. I don't like "i" as an index variable in a for loop - I use "ndx." I want to be able to edit the template variables so I can use my own favorite names for them and not have to keep changing the eclipse-generated ones, or jerry-rig it again by not using template variables at all and simply hard-coding the names I like.

The eclipse books I've been reading promise that developers should be able to improve eclipse by changing things they don't like. This template trouble seems exactly what these books are talking about. So, I'm gonna give it a try and see what happens. I have no idea if I'll actually be successful at this, there are a thousand things that can go wrong. I will try to record whatever happens faithfully, whether it exposes my shortcomings or somebody else's or not.

It's hard to get up the energy to start a project like this. The problems with eclipse aren't so bad and I've been a boiled frog for so long about them. Aside from that, we developers generally want to develop. I don't work for IBM, so can't get somebody to pay me and give me time at my day job to fix the feature of my heart's desire. I don't have insider connections (at least not much, see below), and for the most part, I'd rather use eclipse to do my work or fun projects rather than monkeying with it.

Admittedly, I work for BEA (Sr. Development Manager of WebLogic Workshop, if you must know) and coincidentally, we are re-writing Workshop as a set of eclipse plug-ins. So people who work with me on my team spend a lot of time developing eclipse plug-ins and struggling with torturously difficult eclipse builds and the like. So, I do have more eclipse development swimming in front of my face than the average bear, but I don't get to do any of it. There's a team at BEA that is working on becoming eclipse committers, headed up by my colleague and good friend Dr. Tim Wagner, and they are making their first contribution presently.

Perhaps this is why I finally pushed myself over the edge to get going on this project. Or perhaps it's because of the call for speakers for eclipse-con next year. I had the thought that if I learned some interesting things in this quest, they could add up to make a good presentation.

OK - rules, I've only got so much time to spend on stuff like this between day job and family. My other fun coding projects have to be suspended for a while. (I am making a poker analysis website, and have some really cool analysis optimizations to try out as soon as I get through with this...) As for beleagured hobbies - well - I won't go lower than one poker tourney a week, and no skipping workouts. There is just so much more in life to do than fix your development tools - perhaps why nobody's fixed this already. If I'm lucky I can put in a few hours a week, and if progress isn't fast enough with that, well, that's the way it goes...

Before I forget, the most important rule - I promise not to avail myself of support from eclipse-savvy BEA-ites, including technical support, ins with committers, etc... unless I'm really stuck. This will be considered a failing of my meager abilities and of the eclipse process, and much wailing and tearing of clothes will ensue in this blog. I will try to go in the front door like everybody else, and see what comes of it.

Onwards to getting started....


Post a Comment

<< Home