You might be surprised, but most of the improvements are on Windows, so you wouldn't have seen them in action.I'm not a fan of IDEs. I grew up with the “edit-compile-run” cyle of development, and while I didn't always have a choice in the “compile” portion of things, I did in the “edit” portion, and over time became very picky about which editor I use. Because of that, whenever I did try an IDE, I invariably found the “edit” portion to be very painful, stuck in an editor that I wasn't used to; being forced to use an unfamiliar editor resulted in a vast loss of productivity and thus, I've never liked IDEs. So I stuck with the “edit-compile-run” cycle.
But the recent bout of programming I've done has made me wish for something better than the “edit-compile-run” cycle. And while IDEs have probably evolved since I last tried them in the late 80s, I don't think they've evolved enough to suit me.
The one feature of Cornerstone that still strikes me as innovative is the separation of variables (or in this case, fields and tables) from their name. One could change the name of a variable without having to edit every other occurrence of that name. That's a very powerful feature, but to implement it in an IDE, that IDE would have to have intimate knowledge of the computer language being used.
A few years ago, I cleaned up the code in mod_blog. I had a bunch of global variables used throughout the codebase, all starting with “g_” (such as
g_rssfile
) but they weren't variables in the traditional sense, they were more or less “run-time settable constants” (to the rest of the codebase, the declaration forg_rssfile
wasextern const char *const g_rssfile
). I decided that they needed a renaming to better reflect how I actually use them, and changed the majority of global variables to start with “c_”.Talk about pain.
You're talking about refactoring. Changing the variable name, function name or code to make it easier to understand what is going on. Many IDEs now have refactoring tools built in. You can change variable names and function names throughout your application by changing the actual code in one place. Java has multiple refactoring IDEs like Eclipse, Visual Studio has plugins for refactoring, but I'm not familiar enough with it to know them. Delphi has it built in with newer versions.
Another feature that I don't think any existing IDE has is revision control as part of the system. And like the editing portion (“I want my editor, not the crap one the IDE provides”), revision control is another area of contention (not only over say, CVS vs. SVN, but centralized vs. decentralized, file-based vs. content-based, commenting every change vs. commenting over a series of changes, etc.). But since I'm taking a “pie-in-the-sky” approach to IDEs, I'll include revision control from within it as well.
Almost all windows IDEs have support for version control systems built in. There are standard interfaces for IDEs to use to talk to a source control provider. The interface is built off of that of Microsoft Source Safe, but many other version control systems map to their functionality. For more advanced things you still need to go to the actual source control program, but check ins and check outs, branching and merging are all supported.
No comments:
Post a Comment