[Ironruby-core] Wondering how many will go with C#, after IronRuby arrives

Curt Hagenlocher curth at microsoft.com
Wed Jun 18 12:42:30 EDT 2008


From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ryan Belcher

> I've never worked on an IDE before, but the topic of how you
> implement Intellisense for Ruby has always interested me.  I
> imagine it must be 100x harder to do it for Ruby than for C++
> (or maybe just use 100x more processing power).  But I'm
> thinking that the DLR must make such things much easier.  Is
> that the case?

This is really a language-specific parsing issue and is therefore outside the realm of the DLR.

The most basic approach for Intellisense is to extract the information from the ASTs, which I imagine is all that C# or VB have to do.  The next is to take the ASTs and transform them by removing the "dangerous" parts.  Then, you could actually run the simplified ASTs and introspect on the resulting object.  This can be made increasingly "complete" by removing less and less stuff -- at greater and greater risk of creating a program that won't run to completion or will have undesirable side effects.

To put this another way, I may need to run "initialize" in order for my object to express the proper methods -- but the code in "initialize" could well overwrite the OS for all I know.

Any class that depends on method_missing (in Ruby) or __getattr__ (in Python) for method implementation is going to be problematic for Intellisense.  And Rails' ActiveRecord is one of the most pathological cases I can imagine.

--
Curt Hagenlocher
curth at microsoft.com


More information about the Ironruby-core mailing list