Timothy Goddard wrote:
M. Edward (Ed) Borasky wrote:
My own answers are probably expected:
1. It must know everything there is to know about the syntax and
semantics of the language, in this case Ruby.
Syntax highlighting already exists in many editors. I use Kate, which
is actually used as the editor component in the KDevelop IDE. This is
about the most you can do with Ruby for the same reasons why
refactoring is so difficult.
I've played a bit with KDevelop. If I'm hacking on a huge, mixed-language open source project, it's probably what I'd use. But I don't do a lot of that. I suspect when all the smoke clears, though, the same gotchas that caused David Vallner to displace Eclipse with IDEA would apply to KDevelop for really big projects.
Also, my stipulation of mandated coding standards was intended to "help" the IDE get around some of the "it's the most you can do, given the nature of Ruby" excuses.
2. It must not allow us to write programs that violate the coding
standards, and must help us via code generation wherever possible.
If you're typing repetitive Ruby code then you're doing something
wrong. Ruby can generate code for you at runtime using metaprogramming
techniques. E.g.:
[snip]
This is only a small example of the power of Ruby. You can create
methods to generate any code you can dream up at runtime. Unfortunately
with this level of flexibility and the rather relaxed syntax used by
the language it is nearly impossible to automatically police coding
standards. Ruby is a language for humans, not computers and only a
human can properly understand it without actually running it.
Nonsense! A human can not possibly understand arbitrary Ruby code without running it, any more than a Ruby interpreter can solve the halting problem. A human *programmer* can only *hope* to understand what the coder's *intention* was for the code to do, even if he or she wrote said code!
3. This is a biggie -- I want to spend my time developing the *product*
using the IDE, *not* enhancing the IDE itself! That pretty much rules
out the Squeak IDE. 
Squeak tries to do things it shouldn't. When programming I want a set
of useful tools, not an operating system. In the same way, a full blown
IDE is usually overkill for Ruby code. A set of folders and policies
written in English is often the best way of managing Ruby code.
I realize now that my third requirement also rules out Forth. That strengthens my belief it should be there.
However, the situation I described also rules out a simple set of folders and written policies. You haven't even included a version control system!
To paraphrase somebody, "God must have loved version control systems -- He made so many of them." 
So ... right now my "Ruby IDE" is a Linux desktop (Windowmaker, if that matters), with a bunch of XTerms running vim (with Ruby syntax highlighting), an XTerm running irb, a Firefox window, an Acroread window and of course rake, rspec and soon hoe, ZenTest and some other tools. Version control is either CVS or SVN. It works fine for the little things I do, although one of the projects I'm working on is probably too big for that. But then, that project *is* in a very real sense an IDE. 
But the thought that any of this magic has to work on Windows is accompanied mostly by expletives and prayer. 
···
--
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/
If God had meant for carrots to be eaten cooked, He would have given rabbits fire.
--
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/
If God had meant for carrots to be eaten cooked, He would have given rabbits fire.