[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

-----BEGIN PGP SIGNED MESSAGE-----

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

David Alan Black <dblack@candle.superlink.net> writes:

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:6845] Re: Refactoring Browser.

From: John Carter <john@...>
Date: 2000-12-06 08:26:53 UTC
List: ruby-talk #6845
On Wed, 6 Dec 2000, Conrad Schneiker wrote:

> John Carter writes:
> 
> # Is there someone somewhere developing a Ruby refactoring browser?
> 
> Then there was the issue of whether Tk was a tolerable GUI choice for 
> something that would hopefully grow into a full-fledged industrial-strengh 
> IDE.

Hmm. The joys of wxWindows aside, I have a couple of hard earned rules
of programming life...
 * Never write a sort routine, you'll never get it as smart as the gnu
   qsort.
 * Never check for an error condition you don't know how to handle.
 * Never write an editor. (A lot of the glueyist of gui's would magically
   vanish if people held to that one...)

I would tack it onto Emacs. Let Emacs be the IDE, its _very_ good at that.  
And let the RRB (Ruby Refactoring Browser) handle the parsing, treewalking
scanning, structure display, transforming, rewriting etc. etc. There is an
interesting thread going that mentioned a perl/elisp tie up.  

Of course, displaying the inheritance tree etc. etc. you can do in
wxWindows, and when you go "click-edit that" it merely tells emacs to open
that file at that position!

> By the way, what specific capabilities should a Ruby *refractoring* 
> browser (minimally, maximally) have?

I will admit that I know Perl/C++/Actor/Scheme/... far better than Ruby.
Developing an RRB appealed to me because one always makes a bit of a muck
of the first big app one does in a new language. I always have this strong
urge to go back and redo it once I have done it. Thus giving me an
immediate, intense and cross-meta levels use for the RRB... :-)

Capabilities....
1. Find/list all invocations of method X of class Y.
2. Rename all invocations.
3. Find/list all instance variables.
4. Find/Highlight all references to certain local variables.
5. Extract method - Highlight a region, invoke extract method, RRB
displays the "hair" thats stopping it. ("Hair" = data and control
dependencies that prevent an "extract method".) Or if nothing prevents it,
extracts and names method, and drops a invocation where method was.

I even think one could in a limited but useful sense automate the
selection of regions to extract. eg.
  * Highlight nested blocks of the dependency structure.
  * Search for largest regions of code that are duplicate after
    squashing whitespace replacing all identifiers and
    all numbers by TOKEN. eg.
    a = b + 1 becomes TOKEN=TOKEN+TOKEN
    fred=tom+dick becomes TOKEN=TOKEN+TOKEN 
    Thus we have a candidate, a bad candidate admittedly, 
    for extracting method harry(a,b,c) {a=b+c}

Most refactorings seem to have at there heart "Extract method". If one
could just do that well, coupled with an Ruby sensitive (globally
across all files in app) "query replace" you are more than halfway
there.

YAGNI! I'm willing to bet if you look at the actual usage patterns of the
Smalltalk RB, you would find that you get 80% there by having :-
a) A Language sensitive global search.
b) A Language sensitive global query search & replace.
c) An extract method tool.

From that good sound basis one can build on.

(OK, I have _never_ used the Smalltalk RB so I may very well be
talking total rubbish, but I have refactored by hand (before I had a
nice politically correct name to apply to the activity) very many C++
/ Perl / ... programs. You will be amazed at how much refactoring I
can do with Emacs Macros and a clever wee perl script that allows me
to do very rapid perl regex searches on all 2000+ C++ files in the system
I work on.) (Hint: Use Emacs "compile" command and 
"grep -nE 'regex' *.c* *.h*" then hits show up as "compile errors".
Hit "enter" on the "error" and Emacs takes you there...)

Warning: There is quite a lot hiding under the term "language
sensitive search". 

John Carter

Work Email : john@netsys.co.za Private email : cyent@mweb.co.za 
Yell Phone : 083-543-6915      Phone         : 27-12-348-4246

Carter's Compass...

   I know I'm on the right track when by deleting code I'm adding
   functionality.
                  





In This Thread