This will most likely fall into the "Oh, man, why did I hit send?" category for me, but what the hell. There have been a number of posts recently, both in this group, on blogs (See Jim Priest's http://www.thecrumb.com/2008/04/02/the-semi-annual-cfeclipse-sucks-po... ), and in the Aptana Jira on the state of CFEclipse. The folks carrying on the conversations are smart, dedicated, respected members of the CF Community.
I rarely get involved in these kinds of talks, for these reasons: 1) who cares what I think. really. By nature I don't like to opine in public 2) I don't have anything new to add that these fine folks haven't said already. But I've read a few things recently that made me actually want to say something on the topic, because it is one I care deeply about since I spend most of my working day in this IDE.
What got me thinking:
1) Jim's post, mentioned above. I've probably come across it half a dozen times since he posted it. I've wondered how many other people read it and said "eh, whatever.". What I really wondered is how many people in the CF Community would be willing to either a) lend their java skills to cfeclipse or b) learn enough java to contribute in some manner. This then got me thinking about why people contribute to open source in general. This got me thinking why other java programmers in the community don't contribute to the highest-profile java project there is in the cf community (cfeclipse)
2) Shortly after reading jim's post the last time, I stumbled on this (no idea how): http://www.returnundefined.com/2008/02/i-guess-donating-code-isnt-eno.... It's a great read, very short. Lots of great cussing. And a situation I've not yet run into with mxunit but which I'm sure will happen some day.
First, I have to say that I've wanted to contribute to CFEclipse for some time now. I started learning Eclipse RCP back in June 07. Since then, I've put out a pretty good first-timer plugin, and I had a great time learning how to do it. In fact, it's probably been the most fun I've had programming in a long time. Not "couple of friends, bottle of Dalwhinnie 15, box of Cohibas at the nudie bar" fun. Not "driving down the highway at 180 in my new Ferrari" fun. More like "I can't believe I just did 300 pullups" fun. "I can't believe I climbed up that perfectly good mountain and all i got were these stinkin' bloody fingers" fun. The kind of thrill you get when you've done something really hard that you've never done before and didn't know you had in you kind of fun. Remember when you first started programming, or even when you first started with CF, and you were up till 2 AM b/c you were so jacked up about putting out this rad site for you and your buddies to keep in touch on? Or you made an online newsletter your grandma could use? Or when you first heard of Ajax and you were so stoked about your new whizbang effects thingamajiggie that pulsed 30 soap feeds and bound to some div and had a loading mask and all that? Well, it was like that.
I've looked at the cfeclipse code. A lot. Many times. But I've always resisted contributing. Lots of reasons, at least initially. The biggest one is time. If you've never done open source, you have no idea how much time it can eat up. It can be like another full time job. This is why I commend mark drew so mightily for what he's done. Back in 2005, I tried cfeclipse probably 2 or 3 different times. Each time, I went back to Studio and used Eclipse just for java. When I used it for CF, it just crashed all the damn time. I credit mark for making it stable... stable enough that the majority of developers in our IT dept. use it where i work. That's no small feat, considering the people who don't use it use VI and TextPad. But my reasons for continuing to not contribute have changed somewhat, and those posts mentioned above kind of crystallized it for me. Then, they got me thinking bigger picture about the state of cfeclipse right now, where it's headed, what IDE I'll be using in 2 years, etc.
This brings me to these two questions: Why don't I contribute? and What does CFEclipse need to thrive (survive?)?
1) Why don't I contribute. I don't know if any of you remember this, but one of CF's great coders, Matt Liotta, worked for a time on an Eclipse-based IDE for CF. It was named Helium if I remember correctly. There was this little horse race, and eventually Helium threw in the towel and conceded to CFEclipse. At least, I think Matt Liotta was involved in that. Anyway, here's a great talent... talent which would be unbelievably helpful for CFEclipse. I bring this up because I want to say that folk like matt have their reasons for staying out of the fray, known only to them. What I'm putting here are my own reasons and noone else's.
Now, then: I've already mentioned time. That feeds into this second one, and into which Adam's post factors further. He says in one paragraph that he'd prefer to see CF's java developers contribute to an open source IDE as opposed to Blue Dragon. But then, down in a comment, he writes this: "@All - Regarding a comprehensive IDE, I completely agree and Adobe hears ya. Keep your eyes out for more information on Centaur coming soon. (aka ColdFusion 9)". Whither the dichotomy? I love to code, but I'm no dummy. I sure as hell wouldn't want to give hours and hours of my time to CFEclipse only to have Adobe come out with CFBuilder a year from now, knowing full well that it would relegate CFEclipse and the work I've done to a dying niche. Please remember: this is all free work, but it's not a matter of money. It's a matter of time. Folk who've contributed lots of time to open source will understand this tradeoff. It's abstract to most people. In concrete terms, it's this: All those times your little 4 year old says "Daddy will you play with me?" and you say "Not right now honey" because you just gotta get this one little thing in for the project... that's the kind of thing you do. No, it's not all the time. But it's sometimes. For people like me who work a full time job for a company that would have no motivation to donate developer time to an OSS project, the only time you get for this stuff is nights and weekends. So the least you hope for is that the project lives and breathes, at least for some time, and that you help people in your community kick ass. It's volunteerism and it's quite rewarding. Nonetheless, smart people bet on winners. I wouldn't invest my money in Joe's Goodtime Pharmacy if I knew Walmart was considering putting in another store 2 blocks away, because I'd never get my money back. Reading Adam's comment was icing on the "Don't waste your time, go out and play with the kids" cake.
Now, I'm going to be accused (rightfully so) of taking that quote out of context, of parsing language and reading tea leaves and all that. You're right. I am. Still, let's look at some of the other recent factors that heretofore haven't affected CFEclipse much, at least not directly, but which dovetail with Adam's language. These are reasons why you see (In jim's terms) Semi-Annual "Why CFEclipse sucks" posts but not really any "Where's CFEclipse headed?" granola-and-sunshine posts. Because by and large CFEclipse is the only worthwhile open source IDE for CF if you want other enterprisey functionality in a single IDE. The eclipse ecosystem is unbelievable. Just astonishing. The reason I ditched CFStudio was certainly not because CFEclipse had so many killer apps. It's that it finally got to a point where it didn't crash every day, it had good-enough code hinting, and they brought in ctrl-j snippets. Seriously, that's about all I use. That and the methods view. And when it finally got good enough for every day use, I knew I could take advantage of the real reason for switching to eclipse for CF, which was all the other stuff you get with other eclipse plugins: good-enough source control integration, killer searching, ant, projects (I hate the cfstudio filesystem view of the world), working sets, etc. Add mylar/mylyn on top of that.... good stuff. Anyway, the other editors right now are either way too old, are Dreamweaver (kind of sucky for coding I think, but great for design), or are simple text editors. So my point is that cfeclipse doesn't have much competition. Now, to bring this around to Adam's post about IDEs and CF9: To me, FlexBuilder 3 shows adobe is quite serious about the IDE game, at least in some contexts. Clearly, they've got eclipse RCP talent and an unbelievably deep bench. I look at flexbuilder 3, and I look at CFEclipse, and I think "they could build an eclipse-based ColdFusion IDE in 3 months". that'd be a for a working, usable alpha. With one fell swoop, they could render CFEclipse unnecessary (except maybe the frameworks explorer and snipex). that fell swoop would be a sub-300 IDE. Well, maybe sub-200.
You'd be perfectly right to think "What benefit would they have in putting out a payware IDE?". I agree. One: to make money. that's the obvious reason; however, big companies can tolerate a loss leader and this could be one, especially one where the loss is minimal. I'm no actuarial genius, though, so I really don't want to speak about stuff I don't know jack about, so I'll shut up on that. Now here is where I get in trouble. What if, just what if, it would make sense for Adobe to not be terribly excited about the BD open sourcing? How do you counter that? Make CF itself free? Hell no. No way. So far, the company line has been to ignore it. Well,
...
> -----Original Message----- > From: Marc Esher [mailto:marc.es...@gmail.com]
Whew. That wore me out! :)
> Eclipse-based IDE for CF. It was named Helium if I remember correctly. > There was this little horse race, and eventually Helium threw in the
I do remember this and often wondered what happened to it... From what I can remember CFEclipse simply had more features - but it's been so long ago... And I don't know why they decided to develop something new instead of contributing to CFEclipse... http://blog.daemon.com.au/archives/000270.html
> a world-class CF IDE that, whooooops, only supports official CF > syntax. Oh, and make it free. And the killer: tout its "seemless,
This is what really scares me now... Adobe could really crush OpenBD (and the other CFML engines) by doing some kind of free "ColdFusion only" IDE. IMO though this would really SUCK.
> A) I agree with John. CFEclipse needs a team, a "board" if you will. I > am absolutely not saying it should be designed by committee. I'm
Agreed. Maybe something like the recent OpenBD "steering committee".
> Now... I've seen Denny post a fair amount on this group, but he seems > to go largely ignored for his cfeclipse contributions. I do not know > the back story on that. It's not my business, really. But it does look
I don't know what the story here is either. Maybe Mark and/or Denny could shed some light on this?
> C) If Adobe isn't going to build their own IDE, then a wonderful way > they could contribute would be to provide training for the people who > do want to lend a hand to cfeclipse development. I'm not saying fly 10
I like this idea - Adobe and NewAtlanta could both afford to do this. It could be like Google's "Summer of Code"...
> D) A Plan. A Roadmap. I think John is spot on here. And Jim's > recreating the adobe survey so that he could get data on what's > important to people is a good step (assuming that feedback is taken to > heart and not, as a dude named "Stewart" in the aptana jira claims,
Yep! I'm collecting data so it's there for anyone!
> are the goals of a single person at the top (apple?). There's gotta be > a vision of where this thing is going. Clearly, community members are > asking for more. > Finally, if the discussions on the directions of cfeclipse stay at the > level of "it's about mark, it's not about mark", then that's not good. > If cfeclipse is going to be "about" anything, it's gotta be the users.
Well I think this small novel shows we're slowly progressing. Discussion is good. I'm trying to drum up conversation and you took the bull by the horns :)
A month ago I was for the Aptana merge - just because there was the potential to get Mark some much needed help and I think the Aptana folks are fairly cool. But they have a business to run and I could see them looking at the viability of whatever they did to make money.
With the OpenBD announcement my view has shifted I think. Now I think we need to look at a "CFML Editor" vs. a "ColdFusion Editor". For OpenBD (and the others) to thrive (as you pointed out earlier) they will need an IDE that supports ALL vendors.
So now I think:
1) We need a steering committee - Mark, some folks from Adobe, Smith, Railo and NewAtlanta and the CF community 2) Come up with a 'base', free, CFML editor - I think CFEclipse fits this nicely 3) Fix the bugs and issues that currently exist in CFE (developers either provided by or trained by vendors above) 4) Individual vendors could contribute plugins that extend the base functionality for their specific platform
If Mark is reading this I'd love to hear his opinions? Does this seem like a feasible way to move forward? I would be happy to maybe contact the OpenBD folks and see how they went about setting up their committee since they recently did this.
2) I would hate to see CFEclipse be burned by anything else, but it would still be a viable project even with a Adobe IDE. There have been other IDE's out (even Rob Rohan did one!) and people will use the tool they like more for whatever reason. There are still people that use CFStudio and are happy about it. So I dont think it would die, besides, variety is the spice of life! :D
> 2) What does CFEclipse need to thrive.
> A) I agree with John. CFEclipse needs a team, a "board" if you will. I > am absolutely not saying it should be designed by committee. I'm > saying I think there's no way Mark can keep this IDE moving full speed > ahead as a single entity, and the last 6 months have been proof of > that. He'd captain the ship, no doubt. Good projects generally have a > single "designer", maybe 2. That wouldn't change. What changes is the > extra momentum. I don't care about the open sourcing of BD at all (not > yet, anyway). But I'll tell you what got my attention: putting adam > haskell, sean corfield, mike brunt, and other rock stars on that > steering committee. If nothing else, that's momentum. It's commitment. > It's wind in the sails. CFEclipse needs that kind of wind to move > forward.
3) I totally agree, and as you might notice, I bill myself as Lead Developer, not project lead or anything like that. People from the project left for their own reasons and I am just the Lead (or rather last) Developer. I think despite previous failures in this point, I would love to see a board and to be honest, more help (Jim has done some EXCELLENT work on the site, which I didnt have time for, and I shall buy him a beer or three next time I see him!)
> B) Actually, this is like A, part 2: An official "guide" person. A > scrum master. A Champion. An evangelist,
Alright... I fall for it.. I shall add that to my roles :)
> And unless the beer at mark's house > is a hell of a lot better than what we have here,
Its not bad... mainly Jack Daniels really...
> aint' no way one man > can do it all.
Not after too many of the JD's I cant...
> It needs his leadership and his guidance. His > oversight. But it would do this project well to escape the feeling > that it is his project and noone else's.
Gentlemen, its YOUR project, its open source for a reason. to be honest, I need to give Denny commit access and then we need a process so that every ticket is tested by someone before it can be closed. That kind of organization in the project is needed, with more than my pair of eyes doing it.
Its great to see activity in the Trac site, with people closing tickets when they are obviously fixed (I imported a whole bunch of issues from the tigris site that are still knocking around). This takes a great load of my mind at any rate.
> C) If Adobe isn't going to build their own IDE, then a wonderful way > they could contribute would be to provide training for the people who > do want to lend a hand to cfeclipse development.
I will try and do a few of these, but so far, when I have mentioned it in some circles, I have had very little response on this. Also, the source code for CFEclipse does *MY* head in sometimes, since its not as neat as it could be and there are 1000's of classes about which could be removed (I did some of that this weekend) or re-written
> D) A Plan. A Roadmap. I think John is spot on here.
Agreed... lf course, we need resource to work to that milestone.
> E) A Playground.
Well, ok... this is easy enough to setup. of course, the only problem here is that Simeon manages the trac server etc, but I am sure I can knock up a branch if you want one :) and for the wiki, well its there! :D
> Finally, if the discussions on the directions of cfeclipse stay at the > level of "it's about mark, it's not about mark", then that's not good. > If cfeclipse is going to be "about" anything, it's gotta be the users.
Yeah, forget about Dre(w)! You guys contribute! I have too many irons in the fire :) But of course, there are many ways which the project can go, a lot of paths it can travel, if we have a couple of developers then that is much more fun!
To be honest, I dont understand all the code neither :)
> -----Original Message----- > From: Mark Drew [mailto:mark.d...@gmail.com] > some EXCELLENT work on the site, which I didnt have time for, and I > shall buy him a beer or three next time I see him!)
Mmmmmmmmmmmmmmmmmmmmmmmm. Beeeeeeeeeeeeer.
> > B) Actually, this is like A, part 2: An official "guide" person. A > > scrum master. A Champion. An evangelist, > Alright... I fall for it.. I shall add that to my roles :)
Mark - what I'd like to do is check out the survey results and compare that to the open bugs/feature requests and see if there is any alignment there - then publish a 'todo' list on the wiki:
1) This is super easy 2) This is easy 3) This is hard but doable 4) I need help with this 5) Freakin impossible!!
That way we can get an idea of what needs to be done, and who can do it. Maybe someone is out there who does know basic Java stuff but is intimidated - we can point them to the "This is super easy" list... Denny and yourself could possibly tag team on the rest... Maybe you have an hour of free time - you could tackle a few easy items...
> That kind of organization in the project is needed, with more > than my > pair of eyes doing it.
Agreed and I'm here to help in any way I can :)
> in some circles, I have had very little response on this. Also, the > source code for CFEclipse does *MY* head in sometimes, since its not > as neat as it could be and there are 1000's of classes about which > could be removed (I did some of that this weekend) or re-written
That might be something else worthwhile to add to the list - what needs to be trashed, re-written, etc.
> > E) A Playground. > Well, ok... this is easy enough to setup. of course, the only > problem > here is that Simeon manages the trac server etc, but I am sure I can > knock up a branch if you want one :) > and for the wiki, well its there! :D
I like this idea - but I'd hate for it to interfere with main development. Maybe if there is interest in this we can setup a location for the source - and let people have at that with the disclaimer that it's bleeding edge. If something worthwhile comes out of that - then we could pull that code back into the core.
> To be honest, I dont understand all the code neither :)
We're all doomed :)
I'd like to get more feedback on a steering committee. I may contact the OpenBD folks to see how they are organizing things - it seems in many ways we have similar products and goals...
- We have a fairly mature code base - We want control over the code but with community input - We want to keep things open-source
And I may contact some of the vendors (Adobe, NewAtlanta) and see if there is any kind of interest there for an 'open' CFML IDE. I probably won't get much out of any of them but it's worth a shot.
I have contributed to CFEclipse in the past (I used to have committer status a couple of years ago) and am very interested in doing so again. I can't take a leadership role, but can tackle specific issues. Part of what has prevented me from doing so recently is that I don't feel a clear sense of direction, of what would be most valuable (that I am capable of doing). I think some of the efforts you describe (steering committe, road map, etc.) would be very helpful in resolving this.
The other obstacle is that the code is very different than it was when I worked on it before, and I haven't had the time to dig in and figure out what's extraneous (as Mark Drew described) and where to jump in. The SVN structure is less clear to me now (What pieces do I need to check out in order to properly build the plugin? How do I need to configure project references/dependencies/etc. in Eclipse to get it working locally?).
If we could get some clarification on these things, it would make it a lot easier for me to jump back in.
> -----Original Message----- > From: Christopher Bradford [mailto:cbgrasshop...@gmail.com]
> what has prevented me from doing so recently is that I don't feel a > clear sense of direction, of what would be most valuable (that I am > capable of doing). I think some of the efforts you describe (steering > committe, road map, etc.) would be very helpful in resolving this.
Chris - my goal with all this is to come up with some kind of list so that developers like yourself can get started easier... As I said - if we can break it down by difficulty, time, need, etc - I think it will be much easier to tackle.
> in. The SVN > structure is less clear to me now (What pieces do I need to > check out in > order to properly build the plugin? How do I need to > configure project > references/dependencies/etc. in Eclipse to get it working locally?).
Can you take a look at the "CFEclipse Developer Topics" section on the wiki and let me know if that covers what you need or if we need to add additional instructions?? If something is missing I can work with Mark to get that information added.
Now that I'm done with the CFEclipse site I do want to spend some time overhauling the wiki and one thing I'd like to do is make the developer section more prominent...
> If we could get some clarification on these things, it would > make it a > lot easier for me to jump back in.
Thanks for the feedback! That's exactly the kind of stuff we need to hear so we can address the issues. I you are having issues - I'm sure others are as well.