[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby and IDE

Alexandru Popescu

4/28/2005 7:25:00 AM

Hi!

I expect that this topic to have been discussed way to many times on the ml, so I would like to
excuse me for re-opening it.

I am doing Java development for quite a while (since 98) and lately with all the news around Ruby I
have started lookin' in. I see a lot of movement around, many great ideas and a lot of efforts going
in.

But, there is one 'little' aspect that bugs me. Imo, the tools around a language will take it from a
'niche' and transform it to an 'big success'. While I see a lot of nice ideas put into different
type framework, I cannot see any big effort going to an IDE.
I am seeing some of them around:
- Ruby support in vim
- Ruby support in Emacs
- Mondrian Ruby IDE
- FreeRIDE
- Arachno Ruby (I feel this is the only one going to the right direction ;-)),

but none of them are at a level comparable with real IDEs (being them IDEs for Java, Python,
C/C++/C#, etc). I am wondering why aren't the Ruby community considering this an important aspect?

[intermezzo]
A few months ago Cedric Beust (http:/...) and myself (http://themindstorms.bl...) have
launched a new unit-integration testing framework. We had good reviews right from the start, but
after launching an Eclipse plugin, the feedback was just 'great'.
[/intermezzo]

I have run through different Ruby books and currently I wanted to start looking more deeply. As my
time doesn't allow me too much research, I 'gems' installed a few simple distros just to look at 'em
and see Ruby at work. But working with vim (and I did a lot of Java dev, back in time) seems to me
deprecate (sorry, I don't want to start a flame - it is just an opinion). I have never been able to
use Emacs decently (this is probably only my fault), FreeRIDE is not there for me and only Arachno
seems promising to me (not an affiliate of Arachno ;-) - unfortunately commercial product and I
don't thing any guy starting with Ruby will jump to buy it, even if this would be great for Mr.
Lothar Scholz).

What I would like to see:
1/ project management
2/ integrated documentation (API documentation)
3/ easy source code navigation (like go to declaration, implement this method, etc)
4/ autocompletion
5/ probably many others I don't remember now.

I would like to find out your opinion on this matter, from the point of more experienced Ruby
developers.

tia,
--:alex |.::the_mindstorm::.|



78 Answers

Richard Dale

4/28/2005 8:42:00 AM

0

the_mindstorm wrote:

> But, there is one 'little' aspect that bugs me. Imo, the tools around a
> language will take it from a 'niche' and transform it to an 'big success'.
> While I see a lot of nice ideas put into different type framework, I
> cannot see any big effort going to an IDE. I am seeing some of them
> around: - Ruby support in vim
> - Ruby support in Emacs
> - Mondrian Ruby IDE
> - FreeRIDE
> - Arachno Ruby (I feel this is the only one going to the right direction
> ;-)),
Have a look at Eclipse with the ruby plugin, or KDevelop 3.2 as well.
Perhaps there should be a ruby IDE/dev tools FAQ.

Toki

4/28/2005 8:44:00 AM

0

We're not a craving bunch. Hacking in such a wonderful language is good
enough. :-)
No seriously, I dont't have the slightest. I guess the average rubyist
are quite satisfied with either vim or emacs.

Lothar Scholz

4/28/2005 8:45:00 AM

0

Hello the_mindstorm,


t> but none of them are at a level comparable with real IDEs
t> (being them IDEs for Java, Python,
t> C/C++/C#, etc). I am wondering why aren't the Ruby community
t> considering this an important aspect?

No they do not. I'm really surprised how hostile some ruby developers
are against IDE's and tool support. Especially some of the well known
oldtimers here in the group. Even when you point them to the benefits
in other IDE's, for example in the smalltalk area you get disgusting
comments. Until now the community is still very dominated by
technical geeks which is not a good thing.

One of the problems with writting an IDE is that it takes an enourmous
amount of time. You must expect 5 years minimum and Ruby is a new
language, at least in the western part of this world.

t> [intermezzo]
t> A few months ago Cedric Beust (http:/...) and myself
t> (http://themindstorms.bl...) have
t> launched a new unit-integration testing framework. We had good
t> reviews right from the start, but
t> after launching an Eclipse plugin, the feedback was just 'great'.
t> [/intermezzo]

Same here.

t> use Emacs decently (this is probably only my fault), FreeRIDE
t> is not there for me and only Arachno
t> seems promising to me (not an affiliate of Arachno ;-) -
t> unfortunately commercial product and I
t> don't thing any guy starting with Ruby will jump to buy it,

Right i don't expect this either. Even when i see that the price is
not higher then a usual game and ruby is much more fun in the long
run.

t> 1/ project management
Is done in Aracho.

t> 2/ integrated documentation (API documentation)
Difficult with the current state of Ruby. We still lack a good
documentation standard. RDoc is one step but it misses so much
and is unclear in many others. The huge problem is that there is no
official API to the internal database, even the Seven-Click Installer
installs it wrong - the answer i got aobut this was:
Yes you are right, but it works. Yes it works but it is not good
if you want to build tools and other infrastructure on top of it.
This shows the whole state of the community at the moment and the
resulting problems.

t> 3/ easy source code navigation (like go to declaration, implement this method, etc)
Time consuming, just because you must build a complete repository of
all accessible items. This must be robust and fast to search and the
whole concept does not work well with normal file level editors like
vi and emacs.

t> 4/ autocompletion
Difficult in a dynamic language like ruby. We discussed this to death
in the past. Please use google.

t> 5/ probably many others I don't remember now.
Many many others. And everybody has its own preference, some only want
a debugger but there they want the best one, for others a profiler would
be the most important and there are people who would not accept anything
if it does not look like a Smalltalk image.
And many people are asking about support for rails, they don't have
concrete ideas, they just want to see something for rails. Not easy
for someone like me.


--
Best regards, emailto: scholz at scriptolutions dot com
Lothar Scholz http://www.ru...
CTO Scriptolutions Ruby, PHP, Python IDE 's




Alexandru Popescu

4/28/2005 9:22:00 AM

0

>-----Original Message-----
>From: Johan Toki Persson [mailto:tokikenshi@gmail.com]
>Sent: Thursday, April 28, 2005 10:49 AM
>To: ruby-talk ML
>Subject: Re: Ruby and IDE
>
>We're not a craving bunch. Hacking in such a wonderful
>language is good enough. :-) No seriously, I dont't have the
>slightest. I guess the average rubyist are quite satisfied
>with either vim or emacs.
>
>

My current project (Java) size: aprox.2000 classes. I don't think this is nice manageable in a vim
environment (and remember I've been there ;-)).

I have seen this "vim or emacs is enough behavior", and I interpret it much like a: "hey if you are
not an elite to use vim/emacs, you have not the right to use xxx" (programming language for elites),
and this is _completely_ wrong. Imo this support is mandatory (I can give you lots of examples about
nice technologies/ideas that remained little - maybe even are dead now - because of the lack of tool
support).

I really believe (and I am sure almost all of you accept this ;-) ) that an IDE is helping a lot the
development of real world projects and it brings a lot of efficiency to experienced developers, but
is also helping beginners to become proficient.

Again, I will ask you to forgive my vehement position and I want to underline that I am not writing
this to start flames.

[Answer to Lothar:]
I am really enjoying Arachno and I intent to buy a license soon (even if .... - this will be a
personal mail ;-).

I am not saying that those features are easy/hard to support, as I am not an expert in programming
languages and also not an IDE guru developer. All I know is that even if the effort is big, the
reward will be bigger. I haven't mentioned features that are not available for example in Smalltalk.
Afaik Ruby is around since 2000, so the 5 years are gone ;-).

[Answer to Richard:]
- tried that too. Unfortunately, its offerings are the same as in other specified tools.



Richard Dale

4/28/2005 9:23:00 AM

0

Alex the_mindstorm Popescu wrote:

> [Answer to Richard:]
> - tried that too. Unfortunately, its offerings are the same as in other
> specified tools.
I'm not sure what you mean here, which features in KDevelop were lacking?
Code completion isn't easy to do in ruby, but apart from that it has most
things on your list. I haven't used Eclipse, but I'd be interested in a
review of that for ruby development, such as how the debugger compares with
the other IDEs and so on.

Rob .

4/28/2005 12:18:00 PM

0

Method auto-completion for the core Ruby types will be in the next
release of the Ruby Editor Plugin for jEdit, hopefully out in the next
week. A documentation window will show next to the method list popup,
so this will be a great tool for those new to Ruby. Alex, Ruby Editor
Plugin pentru jEdit e cel mai bun*!
http://www.jedit...

What's missing from the Ruby IDE space is an editor let's you
manipulate Ruby at the syntax level. For Java, modern IDEs let me
think in terms like "method complete", "find declaration", "find
usages", "extract variable", "rename member", "extract method",
"change method signature", "go to last edit", "go to last location",
etc. jEdit's Ruby Editor Plugin is evolving into this style of IDE.

Not having to think about the more low-level textual manipulations
frees your mind to make syntactical ones; obviously important in a
verbose language like Java, but also of value to large-scale Ruby
development projects.

Cheers,
Rob

*Am lucrat pentru optspre luni in Timisoara. Stiu un pic Romaneste.



Thomas Kirchner

4/28/2005 12:55:00 PM

0

* On Apr 28 17:45, Lothar Scholz (ruby-talk@ruby-lang.org) wrote:
> No they do not. I'm really surprised how hostile some ruby developers
> are against IDE's and tool support. Especially some of the well known
> oldtimers here in the group. Even when you point them to the benefits
> in other IDE's, for example in the smalltalk area you get disgusting
> comments. Until now the community is still very dominated by
> technical geeks which is not a good thing.

Just to chime in my opinion... I'm not "hostile" to IDEs, I've given them
a shot. The biggest sticking point for me is a good IDE would need to
have a vim text-editing part. Customizable key bindings or vi-like
behavior wouldn't be enough, it would need vim embedded. Until this is
accomplished, an environment just could not be productive for me - as
said in another thread, it's a life changing editor ;)

> t> 3/ easy source code navigation (like go to declaration, implement
> this method, etc)
> Time consuming, just because you must build a complete repository of
> all accessible items. This must be robust and fast to search and the
> whole concept does not work well with normal file level editors like
> vi and emacs.

Integrated documentation would be nice, but this would be even better
(after all, I've got my handy-dandy pickaxe, which is hard to beat). A
well-integrated resource for navigating full projects would be great, as
the solutions for vim aren't quite up to the level required, as far as
I've seen.

> t> 4/ autocompletion
> Difficult in a dynamic language like ruby. We discussed this to death
> in the past. Please use google.

Obviously, this is incredibly difficult for ruby. However, when I've
used IDEs in the past, this was exactly what I appreciated most. I think
it'd be possible to get some basic autocompletion, skipping some of the
more difficult dynamic elements, and most people would be happy, if not
content.

> t> 5/ probably many others I don't remember now.
> Many many others. And everybody has its own preference, some only want
> a debugger but there they want the best one, for others a profiler would
> be the most important and there are people who would not accept anything
> if it does not look like a Smalltalk image.

I think the most important feature(s) for me, and many others when they
think about it, is stability and speed. You should not be hampered by
your environment, whether through delays or crashes/bugs. When I tried
FreeRIDE a little while ago, it unfortunately couldn't pass this test.
The devs have made great progress, but it was still a bit slow and
unstable. (I should really give it another try now though, as they've
made new minor releases.)
Tom

John Wells

4/28/2005 1:03:00 PM

0

Rob . said:
> What's missing from the Ruby IDE space is an editor let's you
> manipulate Ruby at the syntax level. For Java, modern IDEs let me
> think in terms like "method complete", "find declaration", "find
> usages", "extract variable", "rename member", "extract method",
> "change method signature", "go to last edit", "go to last location",
> etc. jEdit's Ruby Editor Plugin is evolving into this style of IDE.

AMEN! Everything you've mentioned above makes Eclipse such a powerful
boon to our Java development. For example, I can highlight any method or
field and hit F3 and instantly be taken to where that entity was declared,
in *any* included file. This is POWER.

Regarding Lothar's comment about this being time consuming...it's time
well spent. I've seen other IDEs for other languages handle this by
building a database of all includes on first run or on project creation,
and then giving the user the ability of rebuilding this database at will.
I'm happy to waste some time building and rebuilding this type of database
to gain these features. Please consider supporting the features Rob
mentions in ArachnoRuby...I've been very pleased with my evaluation so far
but the lack of these is a show stopper when considering an IDE purchase,
if that IDE doesn't endeavor to support them.

In reply to Rob, I'm curious why you've opted to go the jEdit route and to
not get involved with the RubyEclipse plugin. I'm a long time jEdit user
(have contributed a plugin as well:
http://sourceillustrated.com/j...), but Eclipse IMHO has many of
the necessary scaffolding for the features you mentioned before already
there, while jEdit can be more of a pain to assemble just the right
plugins, etc. I personally would love to see more of a community effort
in regards to Ruby for Eclipse. jEdit is nice as an editor with IDE-like
features, but Eclipse is truly an IDE in every sense of the word.

Just my two cents.

Thanks,
John



Joost Diepenmaat

4/28/2005 1:53:00 PM

0

On Thu, Apr 28, 2005 at 09:55:04PM +0900, Thomas Kirchner wrote:
> * On Apr 28 17:45, Lothar Scholz (ruby-talk@ruby-lang.org) wrote:
> > No they do not. I'm really surprised how hostile some ruby developers
> > are against IDE's and tool support.

My main problem with IDE's is that they take up too much resources
(screen, memory and time) - and I haven't seen one that offers
significant benefits for dynamic languages. I occasionally use eclipse
for java refactoring jobs (moving classes, conversion of method
signatures etc), but:

1. you can't do perfect static analysis on a dynamic languge, so providing
all the cool stuff that eclipse provides for java is much more difficult
or impossible to do correctly for ruby.

2. there is far less boiler-plate code in ruby and perl, so I don't
need it as much.

> > Until now the community is still very dominated by
> > technical geeks which is not a good thing.

Since I am a technical geek, even though I'm new to Ruby, I don't mind
this at all :-)

> Just to chime in my opinion... I'm not "hostile" to IDEs, I've given them
> a shot. The biggest sticking point for me is a good IDE would need to
> have a vim text-editing part. Customizable key bindings or vi-like
> behavior wouldn't be enough, it would need vim embedded. Until this is
> accomplished, an environment just could not be productive for me - as
> said in another thread, it's a life changing editor ;)

Plugging in vim would help, yeah.

> > t> 4/ autocompletion
> > Difficult in a dynamic language like ruby. We discussed this to death
> > in the past. Please use google.
>
> Obviously, this is incredibly difficult for ruby. However, when I've
> used IDEs in the past, this was exactly what I appreciated most. I think
> it'd be possible to get some basic autocompletion, skipping some of the
> more difficult dynamic elements, and most people would be happy, if not
> content.

To do this correctly (for some values of correct), you'd probably have to
introspect the running code. I gather that some SmallTalks do this -
I've never used smalltalk but it appears to me that this is very different
way of programming than I'm used to - like building programs in an
interactive shell.

> > t> 5/ probably many others I don't remember now.
> > Many many others. And everybody has its own preference, some only want
> > a debugger but there they want the best one, for others a profiler would
> > be the most important and there are people who would not accept anything
> > if it does not look like a Smalltalk image.
>
> I think the most important feature(s) for me, and many others when they
> think about it, is stability and speed.

Yup. Any editor that can't keep up with my typing speed / menu selection is
too slow. Anything that isn't rock-stable isn't worth using.

Joost.



Austin Ziegler

4/28/2005 2:37:00 PM

0

On 4/28/05, Alex the_mindstorm Popescu <the_mindstorm@evolva.ro> wrote:
>> Johan Toki Persson [mailto:tokikenshi@gmail.com ]:
>> We're not a craving bunch. Hacking in such a wonderful language
>> is good enough. :-) No seriously, I dont't have the slightest. I
>> guess the average rubyist are quite satisfied with either vim or
>> emacs.
> My current project (Java) size: aprox.2000 classes. I don't think
> this is nice manageable in a vim environment (and remember I've
> been there ;-)).

I'm working on a relatively large project in Ruby -- PDF::Writer.
This is not a small project in Ruby; it has between 40 and 60
classes and represents about six months continuous work. It also
uses a few other classes that I've refactored out.

ActionMailer (part of Rails) is similar -- it looks to be about 40
classes. (There's a lot of files that are 10k or less in
ActionMailer.)

I think that part of the reason that a lot of people are happy --
satisfied, even -- with vim and emacs for Ruby (and Rails)
development is that there's a lot *less* code.

How many of your 2000 classes are *useful* classes that do real
work? How many of your 2000 classes are necessary because of the
nightmare that is Java enterprise application programming? (When I
looked at "Code Generation in Action", I was amazed at how many
classes had to be generated for a single table/view combination.)

If, as I suspect, there's a 1:4 useful:framework ratio, then you're
talking about 400 classes that do real work. In PDF::Writer,
although I've got 40 - 60 classes (in about 35 files), I am working
mostly in -- get this -- three files. How many files do you work in
mostly? If your percentages are similar, then you're probably
working with about 35 files.

In a C++ project that I am doing at work, there's a similar ratio.
At any given time, I'm working with between three and fifteen files.
I will use the VisualStudio environment for code completion and a
few project-centric searches (it's a bit smarter than a text search
that I do on Windows, but equally smart to a good find-grep search
that I do on our Unix ports), and for integrated debugging, but
that's about it. I do 95% of my code editing in vim.

Interesting SLOCCount stats for PDF::Writer:
Total SLOC : 5,980
Person-Years Estimate (COCOMO) : 1.31 (15.69 months)
Schedule Estimate (COCOMO) : 0.59 (7.12 months)
Estimated Developers: : 2.21
Estimated Cost: : $ 176,676

> I have seen this "vim or emacs is enough behavior", and I
> interpret it much like a: "hey if you are not an elite to use
> vim/emacs, you have not the right to use xxx" (programming
> language for elites), and this is _completely_ wrong. Imo this
> support is mandatory (I can give you lots of examples about nice
> technologies/ideas that remained little - maybe even are dead now
> - because of the lack of tool support).

Then you are interpreting this incorrectly, at least for Ruby. You
can use any editor to work with Ruby. There is some support for Ruby
in the major cross-language IDEs, but Ruby is a notoriously
difficult language to provide full IDE capabilities for.

> I really believe (and I am sure almost all of you accept this ;-)
> ) that an IDE is helping a lot the development of real world
> projects and it brings a lot of efficiency to experienced
> developers, but is also helping beginners to become proficient.

Mmmm. I don't necessarily agree. An IDE can help, certainly, with
things that are difficult to remember often. An IDE can also provide
an environment for bad code. In the Java world, an IDE is almost
certainly necessary to deal with the idiocies behind the library
design. In the MS world, an IDE is almost certainly necessary to
deal with the massive API set (and some of the idiocies behind the
library design).

In Ruby, I think that an IDE is much less necessary and useful. Code
completion is very unlikely to be possible on a Ruby IDE, at least
inasmuch as developers have come to expect with IDEs for statically
typed languages.

Can you point me to a Python IDE or three? I'd like to look at them
to see if they come close to what VisualStudio can do, even, for
C++.

-austin
--
Austin Ziegler * halostatue@gmail.com
* Alternate: austin@halostatue.ca