Ruby and IDE

T

the_mindstorm

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://beust.com) and myself (http://themindstorms.blogspot.com) 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::.|
 
R

Richard Dale

the_mindstorm said:
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.
 
J

Johan Toki Persson

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.
 
L

Lothar Scholz

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://beust.com) and myself
t> (http://themindstorms.blogspot.com) 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.
 
A

Alex the_mindstorm Popescu

-----Original Message-----
From: Johan Toki Persson [mailto:[email protected]]
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.
 
R

Richard Dale

Alex said:
[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.
 
R

Rob .

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.org/ruby/

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.
 
T

Thomas Kirchner

--UlVJffcvxoiEqYs2
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

* On Apr 28 17:45 said:
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=
=20
a shot. The biggest sticking point for me is a good IDE would need to=20
have a vim text-editing part. Customizable key bindings or vi-like=20
behavior wouldn't be enough, it would need vim embedded. Until this is=20
accomplished, an environment just could not be productive for me - as=20
said in another thread, it's a life changing editor ;)
t> 3/ easy source code navigation (like go to declaration, implement=20
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=20
(after all, I've got my handy-dandy pickaxe, which is hard to beat). A=20
well-integrated resource for navigating full projects would be great, as=20
the solutions for vim aren't quite up to the level required, as far as=20
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=20
used IDEs in the past, this was exactly what I appreciated most. I think=
=20
it'd be possible to get some basic autocompletion, skipping some of the=20
more difficult dynamic elements, and most people would be happy, if not=20
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=20
think about it, is stability and speed. You should not be hampered by=20
your environment, whether through delays or crashes/bugs. When I tried=20
FreeRIDE a little while ago, it unfortunately couldn't pass this test. =20
The devs have made great progress, but it was still a bit slow and=20
unstable. (I should really give it another try now though, as they've=20
made new minor releases.)
Tom

--UlVJffcvxoiEqYs2
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCcN0w/rVdTqQq7OwRAvj4AJ9kYWpLDiOQPueT46fdKIaKKiGA+gCaAwY0
5DwRXpsYQZ1/BhMnSPvRjzQ=
=hrJ2
-----END PGP SIGNATURE-----

--UlVJffcvxoiEqYs2--
 
J

John Wells

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/jasperjedit), 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
 
J

Joost Diepenmaat

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.

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.
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.
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.
 
A

Austin Ziegler

Johan Toki Persson [mailto:[email protected] ]:
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
 
R

Rob .

John said:
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 choose to write Ruby support for jEdit because:

1) It seemed the quickest way for me to implement the features I
wanted. I was familiar with jEdit from prior work on the XSLT and
XMLIndenter plugins.

2) The eclipse interface hasn't appealed to me. I prefer the
simplicity of the side-dockable windows in IntelliJ IDEA and jEdit, to
Eclipse's constraining view/perspective approach. I use IDEA for Java
development and jEdit for everything else.

3) Politically I find jEdit's GPL licensing terms more palatable to
Eclipse's and RubyEclipse's CPL licensing. If I contribute many hours
of my personal time to writing an free software Ruby editor based
heavily on others free software efforts, I don't want to license that
work under terms that allow a corporation to take it and release it
commercially.

Note that the GPL and CPL licenses are incompatible. So I can't just
take code from the RubyEclipse project and neither can they take my
code, unless we reach a separate licensing agreement.

4) I tend to back the underdog, often because it's the best. (Perhaps
that's why I was attracted to Ruby not Python or Perl, REST not SOAP,
and Topic Maps not RDF).

Slava started writing jEdit when he was 15 years old. I prefer to back
projects started by people solving problems, not projects started by
corporations for profit (assuming IBM started Eclipse with a
profit-motive in mind). Vendors and consortium's often produce
bloated, overly complex specifications and software, in order to
extract oligopoly profits from markets through consulting/support
revenues and by putting up technical and legal barriers to entry.

I don't expect anyone to agree with me. Hopefully if I write something
good, you'll use it. Maybe someone will even be able to help me by
writing a debugger. ;-)

Cheers,
Rob
http://www.jedit.org/ruby/
 
P

Paul Hanchett

Richard said:
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.

Isn't the thing that makes code completion difficult the fact that most
Ruby tools don't have a proper notion of a "Project"? PHP has a similar
issue, but in Eclipse I can define a PHP project. It scans the source
and presto completion works and so does a lot of other great stuff!

I haven't done much Ruby coding yet, so I can't say whether the Ruby
support for Eclipse does the same.

(BTW, when I say "It's easy" I'm not claiming that I could do it. OK?
;-) )
 
J

Joe Van Dyk

Rob . said:

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.

In vim, I put the cursor over the method, hit ctrl-] and i'm taken to
where the method was defined. Thanks to my handy-dandy tags file!
 
R

Richard Dale

Paul said:
Isn't the thing that makes code completion difficult the fact that most
Ruby tools don't have a proper notion of a "Project"? PHP has a similar
issue, but in Eclipse I can define a PHP project. It scans the source
and presto completion works and so does a lot of other great stuff!
No, the problem is that often you can't tell the type of a ruby variable
until runtime (but can you do that for PHP either?). And we do discuss how
to attempt to solve the problem quite regularly on this list. For instance,
if I assign '@a = FooBar.new' and @a only gets assigned to in one place,
then maybe I can assume variable '@a' is a FooBar, but other times it isn't
so clear. I use that kind of hueristic for showing the type of a variable
in the KDevelop class browser, but it's by no means water tight. Unless
code completion is 100% reliable, it might well be more annoying than no
code completion at all.

KDevelop has the notion of a project, and it has code completion for C++ and
other languages - so all the infrastructure is there. But, but..
I haven't done much Ruby coding yet, so I can't say whether the Ruby
support for Eclipse does the same.
I don't think the Eclipse plugin does code completion, but it's nice to get
feedback on what the various tools do best and how they compare with each
other.
(BTW, when I say "It's easy" I'm not claiming that I could do it. OK?
;-) )
No problem, although actually I think you were wondering why we found it so
difficult..
 
B

Ben Giddings

I have never been able to
use Emacs decently (this is probably only my fault), FreeRIDE is not

See, that's the problem. When you *can* use Emacs or vi decently, the need
for an IDE doesn't really seem to be there.

Here's the deal. When you're writing software in language Foo you want:

* An editor that is very good at editing text
* An editor that understands Foo
* An environment that allows you to do all the other tasks (debug, run,
integrate, copy files, check files into source control, ...)

If you're writing software in languages Foo, Bar, Baz and Smeg, you want:

* An editor that is very good at editing text
* An editor that understands Foo, Bar, Baz and Smeg
* An environment that allows you to do all the other tasks (debug, run,
integrate, copy files, check files into source control, ...)
* Ideally only one editor, so you don't have to context-switch all the
time, remembering that Ctrl-X is "exit" in one and "prefix-X" in the other

Emacs and vi are astounding at editing text. I doubt there's anything out
there that can do more. They also happen to have some pretty good support
for a whole lot of different languages.

Emacs is also very good at letting you do other tasks. I don't think
people use vi this way, they just use the commandline, but the commandline
is also very good at letting you do other tasks.

What does a typical IDE give you? It gives you an editor that isn't quite
as good as Emacs or vi at editing text. It gives you an environment that
is extremely good at managing a small subset of other tasks, but only the
ones the IDE designers anticipated, and it gives you extremely good
support for a small subset of languages.

If you take the time to learn Emacs and vi, you won't always have an editor
that is amazing at Foo, but you'll always have an excellent text editor,
and often one that is pretty good at Foo.

If there were an editor that was better than Emacs at editing Ruby code,
and as good as Emacs at everything else I use Emacs for... then I'd
switch. But switching to an editor that is slightly better for Ruby, but
not nearly as good at everything else just doesn't make sense to me.

Ben
 
L

Lothar Scholz

Hello Richard,

RD> No, the problem is that often you can't tell the type of a ruby variable
RD> until runtime (but can you do that for PHP either?). And we do discuss how

Almost all PHP projects i know are functional. So you don't have a
problem with code completition - just show all variables and functions
or simply the ones with the given prefix. In the few cases where there
is a $self-> reference they run into the same problems, but PHP code
is much easier structured so your mentioned heuristic and a few more
work very well.

Does the KDevelop class browser really show all available methods ?
Rubys scoping rules with includes of modules (global, local) are
very complex, is this really handled ? If so - then even as a
competitor - i must show deep respect.

If not then it is much easier, but remember that most people want to use code
insight/autocomplete as a reference and a help to learn the API.
Then it is maybe more confusing to show something incomplete and
errornous. I observe my competitors very well (here i mostly mean Wing-IDE for
Python) and even while there system is very sophisticated i hear a lot
of comments that it is confusing.

Thats why my in current plans it had a lower priority. But i come to the
conclusion that this is far more wanted then i expected. So i will implement
my interpretation of a good code insight system very soon.
I have now changed my schedule in a way that in 3 3 month i hope i
can come up with something but as i wrote before it will look and
behave a little bit different...
 
R

Richard Dale

Lothar said:
Hello Richard,

RD> No, the problem is that often you can't tell the type of a ruby
variable RD> until runtime (but can you do that for PHP either?). And we
do discuss how

Almost all PHP projects i know are functional. So you don't have a
problem with code completition - just show all variables and functions
or simply the ones with the given prefix. In the few cases where there
is a $self-> reference they run into the same problems, but PHP code
is much easier structured so your mentioned heuristic and a few more
work very well.

Does the KDevelop class browser really show all available methods ?
Rubys scoping rules with includes of modules (global, local) are
very complex, is this really handled ?

No, the KDevelop class browser isn't very clever at all, just some regular
expression matching. I'd like the next version to use the ruby bison
grammar and tokeniser.
If so - then even as a
competitor - i must show deep respect.
I don't see you as a competitor, as I've been mainly working on the QtRuby
and Korundum bindings, and have spent only a couple of months or so on
KDevelop ruby support. If Arachno was a killer development environment for
those apis I would be very pleased. For instance, I mailed you the other
month about the debugger conventions that QtRuby uses, in case you wanted
to make some minor changes to the Arachno debugger to handle QtRuby.
If not then it is much easier, but remember that most people want to use
code insight/autocomplete as a reference and a help to learn the API.
Then it is maybe more confusing to show something incomplete and
errornous. I observe my competitors very well (here i mostly mean Wing-IDE
for Python) and even while there system is very sophisticated i hear a lot
of comments that it is confusing.

Thats why my in current plans it had a lower priority. But i come to the
conclusion that this is far more wanted then i expected. So i will
implement my interpretation of a good code insight system very soon.
I have now changed my schedule in a way that in 3 3 month i hope i
can come up with something but as i wrote before it will look and
behave a little bit different...
Yes, I've never felt that code completion is a killer feature either, along
with it being difficult to implement for ruby. Fast access to the api docs
is more important because just knowing the name of a method via code
completion probably won't be sufficient to know how to use it.
 
L

Lothar Scholz

Hello Ben,

BG> Emacs and vi are astounding at editing text. I doubt there's anything out
BG> there that can do more. They also happen to have some pretty good support
BG> for a whole lot of different languages.

As a 10 year hardcore emacs user (and with my academic background in
user ergonomie) i think you are very wrong with this opinion.
Both are a little bit outdated and in many points there are now better
solutions.

Tomorrow i have to wait a few hours at the airport for my connect flight, maybe i'm
then in the right mood to participate in this religous war. Just to
set the first argument: Emacs is good text operating system, but it
lacks a good editor.
 
T

tsuraan

Isn't the thing that makes code completion difficult the fact that
most Ruby tools don't have a proper notion of a "Project"? PHP has a
similar issue, but in Eclipse I can define a PHP project. It scans
the source and presto completion works and so does a lot of other
great stuff!

Not sure what a "project" is in this context, but I think the real
problem is that quite a few ruby libraries are rather dynamic: have a
look at soap4r and the recently launched classifier library. When you
use those, the methods that you're using most don't exist until
runtime; especially with soap it would be very difficult to do code
completion properly. I'm also a Ruby newby, so I can't say how common
runtime method additions are, but from what I've seen they are rather
popular, and they make code completion nearly impossible.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,072
Latest member
trafficcone

Latest Threads

Top