Before I was a Java developer, I programmed in a wide variety of other languages on various platforms. I’ve programmed in COBOL and PL1 on MVS (z/OS) platforms. I’ve written REXX and APL on the VM environment. I’ve written machine language and C and C++ on various other platforms including OS/2 and flavours of Unix.
During that time, almost exclusively, I used text editors. XEdit and ISPF, for example. I’m a vi person, rather than an Emacs person. But I haven’t opened vi in a good, long time.
We use Eclipse almost exclusively, here at Intelliware. It is, in my opinion, an amazingly powerful IDE, and I would never go back to using text editors.
Some of my first experiences with IDEs weren’t all that great. The first IBM VisualAge for C++ environment, for example, was not a fun experience (possibly because the kinks hadn’t been worked out). Before Eclipse, we used VisualAge for Java, which (I must confess), I never really learned to love.
So I found it interesting reading a bunch of articles the other day talking about IDEs. Here’s a quotation from one of them:
As a Java shop, we have our choice of dozens of tools to produce our code, but our developers have opted for the humble text editor. Our developers use a wide variety of text editors within the team (UltraEdit-32, vi, and Emacs), but each developer basically sticks to the simple text file environment. Our team is highly productive and probably the best at hitting deadlines that I have ever managed, but when it comes to writing code, IDEs (integrated development environments) just leave them cold.
Later, the same article goes on to say:
…I asked the developers on my team why they had chosen not to use IDEs to do their work. The answer was pretty predictable: They thought the level of abstraction that visual IDEs brag about was more a detriment than a benefit. One of our developers compared building code in an IDE to using a WYSIWG editor to build Web pages ? doing HTML by hand results in cleaner pages, and you know exactly how they work when you’re done.
I understand this comment. I really do. I just don’t think it’s relevent. I think that those developers are complaining about an aspect of the IDEs that isn’t terribly interesting. Me, I like features like:
- code completion
- an editor that spots code errors as you type — not just syntax errors, but semantic errors as well.
Here’s a quotation from another article that references the article I started with:
It starts with the notion that sharp sticks and pointy rocks are somehow more productive than tools optimized for your job.
Now, this latter article is a bit more dismissive than I’d prefer. It also, then, decides to continue the argument to say that if you really want to be great, then program in Smalltalk or Ruby. And, hey, that’s a valid choice for some programmers. We’re an IT services shop, and we tend to want to work within an organization’s existing technology choices, and that usually means working with either Java or .Net
But I think part of what bothers me about the whole IDE versus non-IDE debate is that I feel I keep hearing this argument: “really good developers have learned how to be productive in a simple text editor, so if you need an IDE, you must not be a really good developer.” And I don’t think I could possibly disagree more with that statement.
I was at a JavaOne many years ago, where Tim O’Reilly (of O’Reilly books) was presenting. He said something that I’ve taken as a bit of a mantra since then:
The Web took off because it was fundamentally simple. You know, it really allowed, if you like, a lower class of individual to participate. You know, there were all these people who were not professional programmers who could still […] build what you could call an application on the Web.
So my point here is that the Web is evolving. The future is going to belong to the people who make it easiest to evolve, who make it easiest for people that you don’t know to participate and help you join in making the future.
Now, he was already over his allotted time when he said this, and I try to look beyond his suggestion of there being a “lower class of individual”, but I think he’s saying something true: that part of the discursive nature of the web is that it is opening up the IT world to people with new and different skills and backgrounds. And I think that’s a powerful thing, and I’m in favour of it.