Why is there no Smalltalk-like IDE for Ruby?

I posted this to comp.lang.ruby and comp.lang.smalltalk, and my blog.
I will likely get destroyed, but it will be worth it if at least one
nugget of information helps the Ruby IDE makers.

Hi all –

I shout my question to the entire Ruby + Smalltalk community: Smalltalk
has had amazing IDEs for decades, why not Ruby? Smalltalkers, Ruby
needs your help!

I’m hoping to start a centralized discussion about this topic, since my
searches have only turned up scattered comments.

Ruby should have IDE support approaching Smalltalk’s based on the
following gross generalization: Ruby and Smalltalk are pretty much the
same. Yes, I know there are many differences, and not trying to
provoke a Ruby vs. Smalltalk cage-match, but based on language features
and constructs, they are very similar.

What is holding Ruby back? How has Smalltalk overcome the issues?
What can Ruby tool builders (such as the RadRails folks and, hopefully,
me) learn from the Smalltalk IDE builders? Reasons I’ve heard for
Ruby’s lack of tool support include:

  • Ruby is not a compiled language
  • Ruby does not execute in a VM or run-time
  • Ruby is a loosely-typed language and has blocks, etc.
  • Nobody really cares enough about a Ruby IDE to make one
  • vi is all you need!

Regarding the compiled language and VM arguments: what about Ruby’s
irb? Regarding loose typing, blocks, etc: Smalltalk has these! I
don’t pretend to understand all of the issues, but I want to learn.
Unless there is something I simply don’t “get”, it seems that the Ruby
community does not care or see the benefit of real tool support, which
leads me to believe that (again) the Smalltalk community is not very
interested in Ruby.

I’ve only been working with Ruby for 8 months after 7 years of Java,
but I almost feel like a Smalltalker by association, having worked
with, and for, Old Dudes Who Know Smalltalk (yes, I said it) my entire
career. I’ve stepped back into the stone age regarding IDE support
after using VisualAge for Java, Eclipse, and InilliJ IDEA. No
refactoring, no fast debugger support, not even
code-completion/suggestion. To the current tools, Ruby is text to
colorize. Smalltalkers, you’ve cracked this nut years ago, help us
understand how to do it again in Ruby!

– Joe

I posted this to comp.lang.ruby and comp.lang.smalltalk, and my blog.
I will likely get destroyed, but it will be worth it if at least one
nugget of information helps the Ruby IDE makers.


Hi all –

I shout my question to the entire Ruby + Smalltalk community: Smalltalk
has had amazing IDEs for decades, why not Ruby? Smalltalkers, Ruby
needs your help!

I’m hoping to start a centralized discussion about this topic, since my
searches have only turned up scattered comments.

Ruby should have IDE support approaching Smalltalk’s based on the
following gross generalization: Ruby and Smalltalk are pretty much the
same. Yes, I know there are many differences, and not trying to
provoke a Ruby vs. Smalltalk cage-match, but based on language features
and constructs, they are very similar.

What is holding Ruby back? How has Smalltalk overcome the issues?
What can Ruby tool builders (such as the RadRails folks and, hopefully,
me) learn from the Smalltalk IDE builders? Reasons I’ve heard for
Ruby’s lack of tool support include:

  • Ruby is not a compiled language
  • Ruby does not execute in a VM or run-time
  • Ruby is a loosely-typed language and has blocks, etc.
  • Nobody really cares enough about a Ruby IDE to make one
  • vi is all you need!

Regarding the compiled language and VM arguments: what about Ruby’s
irb? Regarding loose typing, blocks, etc: Smalltalk has these! I
don’t pretend to understand all of the issues, but I want to learn.
Unless there is something I simply don’t “get”, it seems that the Ruby
community does not care or see the benefit of real tool support, which
leads me to believe that (again) the Smalltalk community is not very
interested in Ruby.

I’ve only been working with Ruby for 8 months after 7 years of Java,
but I almost feel like a Smalltalker by association, having worked
with, and for, Old Dudes Who Know Smalltalk (yes, I said it) my entire
career. I’ve stepped back into the stone age regarding IDE support
after using VisualAge for Java, Eclipse, and InilliJ IDEA. No
refactoring, no fast debugger support, not even
code-completion/suggestion. To the current tools, Ruby is text to
colorize. Smalltalkers, you’ve cracked this nut years ago, help us
understand how to do it again in Ruby!

– Joe

Joseph M. wrote:

I posted this to comp.lang.ruby and comp.lang.smalltalk, and my blog.

Hi Joseph. I replied to your question on comp.lang.ruby so I won’t
repeat what I said here. Instead I’ll pick up on a different point…

I’ve stepped back into the stone age regarding IDE support
after using VisualAge for Java, Eclipse, and InilliJ IDEA.

I am in total agreement. In my view many programmers - particularly
those working with Open Source and web-development languages, not
confined to Ruby, but also including the likes of PHP and Python - place
too little importance on a fully integrated development environment.
Sure, you can code everything in Notepad if you wish. But the coding
itself is not the big problem. Maintaining the code is where the
heartache really begins.

I am still in awe of Smalltalk (circa 1980) even now. Here we are, 26
years later, and other languages are still only in the process of
catching up with the innovations introduced by Smalltalk all that time
ago…

Even in Visual Studio, there still isn’t a comparable class browser
(that is, one that can be used both for hierarchy navigation and
coding). Nor is there the same level of interactivity (mark and evaluate
being one of my favourite Smalltalk features). That said, there are good
IDEs around - Visual Studio and Borland Developer Studio being the ones
I most often use.

No refactoring, no fast debugger support, not even
code-completion/suggestion. To the current tools, Ruby is text to
colorize.

There is no reason why these features canot be added to a Ruby IDE.
There are a few projects on the go aimed at providing better editing and
debugging for Ruby. These include RadRails, Arachno, Komodo, RideMe and
the project in which I am involved - Ruby In Steel.

Ruby is unlikely, in its current form, to be as tightly integrated into
an IDE as Smalltalk - but then, few languages are. You can, however,
look forward to IDEs that have code completion, debugging and so on. I
can’t tell you what other people are working on. What I can say is that
fast debugging is a priority of our project (look for this later in
the year) - and you might not be too surprised to know that we also have
a few Smalltalk-like goodies which we plan to add later :slight_smile:

Not everyone, of course, likes the Smalltalk way of working. I think,
however, there are now a few interesting Ruby projects under development
and at least one or two of them may eventually mature into something
approaching the kind of environment that you are looking for…

best wishes
Huw C.

http://www.sapphiresteel.com
Ruby P.ming In Visual Studio 2005

On 6/24/06, Joseph M. [email protected] wrote:

Hi Huw –

Thank you for your two responses; both were excellent and insightful.
I agree that many, if not most, developers have no idea how an IDE
could change how they develop and maintain code. And as you know I’m
very excited about Steel and the promise of fast Ruby debugging (we’ve
talked about it before :slight_smile: ).

Just curious…do you have to purchase the full Visual Studio to use
SaphireSteel? What’s the cheapest route to go for those of us who
don’t currently own a licensed copy of VS?

Thanks,
JB

Joseph M. wrote:

  • vi is all you need!

Yeah, something like that. Or vim7, the vim-ruby project files, gnu
screen and your favourite snack. Maybe a rails plugin if you’re the
type.
Getting it all done without a mouse is incredibly satisfying.

Hi Huw –

Thank you for your two responses; both were excellent and insightful.
I agree that many, if not most, developers have no idea how an IDE
could change how they develop and maintain code. And as you know I’m
very excited about Steel and the promise of fast Ruby debugging (we’ve
talked about it before :slight_smile: ).

Keep up the good work, and thank you for using your ample Smalltalk
knowledge to develop a Ruby IDE!

– Joe

On 24-jun-2006, at 22:20, Joseph M. wrote:

To the current tools, Ruby is text to
colorize. Smalltalkers, you’ve cracked this nut years ago, help us
understand how to do it again in Ruby!

Frankly the only 2 things I am missing are (in no particular order):

  • the ability to inspect the code of any part of the program
    dynamically without plowing through the source
  • have a good class/method browser

The latter should be not that difficult to implement in proper
tooling, but I guess we will never get the former.

Komodo has a good class/method browser

J B wrote:

Just curious…do you have to purchase the full Visual Studio to use
SaphireSteel? What’s the cheapest route to go for those of us who
don’t currently own a licensed copy of VS?

I’m afraid we do not support the free Express editions of VS. We would
if we could but Microsoft has not enabled the plugin capabilities of
those versions so we have been unable to support them. Ruby In Steel
requires a minimum of Visual Studio 2005 Standard Edition. The full
price of this edition is $299 but if you shop around you may get it for
about $160. If you are a student, MS does an academic price which brings
it down to $50 or less.

best wishes
Huw C.
http://www.sapphiresteel.com

I’m afraid we do not support the free Express editions of VS. We would
if we could but Microsoft has not enabled the plugin capabilities of
those versions so we have been unable to support them. Ruby In Steel
requires a minimum of Visual Studio 2005 Standard Edition. The full
price of this edition is $299

add to that Windows XP Professional, which $189? $249? i admire your
efforts, i guess you dont mind committing to a niche of niches, with the
$500 outlay and microsoft requirement eliminating probably 80% then 95%
on top of that potential developers.

heres two Ruby IDE’s, written in ruby. as far as i can tell both are
free and cross-platform:

http://freeride.rubyforge.org/

http://www.mondrian-ide.com/

add mongrel and ruby-gtk2mozembed and youve got a nifty full-stack
ide/client/server rolled into one…

carmen wrote:

i guess you dont mind committing to a niche of niches …

Windows has been called many things but I’ve never heard it called
“niche” before. As someone who has come to Ruby and Rails from a Windows
and Visual Studio background, I was surprised by the primitive nature of
the tools available. Eclipse with the RadRails plugin is ok but rather
slow (14 secs to start up compard with 2 for VS) - I assume because it’s
written in Java. RIDE-ME looks promising but still has a way to go.

It’s great to see some competition in the IDE field for Ruby. If
Sapphire in Steel can match what the free tools do and add the other
advantages of VS, no doubt the free tools will have to catch up, which
will be good for everyone. Also, corporates may find it easier to adopt
Ruby and Rails if it doesn’t mean a completely new toolset.

Julian

On 6/25/06, Julian G. [email protected] wrote:

Windows has been called many things but I’ve never heard it called
“niche” before. As someone who has come to Ruby and Rails from a Windows
and Visual Studio background, I was surprised by the primitive nature of
the tools available. Eclipse with the RadRails plugin is ok but rather
slow (14 secs to start up compard with 2 for VS) - I assume because it’s
written in Java. RIDE-ME looks promising but still has a way to go.

Ruby does not have much in the area of IDE. But for web development
like in Rails that really does not but me. A Ruby IDE is all needed
for normal Ruby. But I just don’t see how a typical IDE can help my in
developing RoR applications. I don’t see a IDE like Visual Studio
offering me anything that I need that TextMate does not offer. Things
like breakpoints and other debugging tools are absolutely vital for
desktop development but I find them useless when developing web
software.

The 3 develpment tools I use are iTerm, TextMate and the TextMate
plugin for Rails. And I have found that when trying some of the IDE’s
out there that I am loosing a lot more than i gain. So there is more
sophisticated autocomplete in those tools. That has honestly not been
my problem with TM.

However getting something more like the Smalltalk IDE. That is a whole
different issue.

I don’t mean to offend in any way, but I think the argument about Tools
is completely ridiculous, considering the rates that we as developers
should be making. In MANY other industries (let’s say construction) the
cost of the tools required to startup a new business are many factors
greater than our own. I can go out and buy a Powerbook and a license of
TextMate for less than 5% of my yearly income. For that kind of
low-overhead, it’s really hard to even argue about the development
environment costs. The greatest single cost in any of our endeavors is
human time. Not even when it’s time for deployment can hardware costs,
bandwidth, etc. come close to the costs of the right people.

Rails is the tool that exactly appeals to this problem, it allows you
to get the cruft out of the way when starting on an application. And
Ruby is a great language that keeps us happy when we go far beyond
scaffolding and what Active Record provides for us.

It’s the mentality of these “corporates” that Rails is in a battle
against. The lean-mean “agile” way of doing things vs. corporate bloat,
big consulting firms, and industrial-like scalability.

We care about using the right tools, which is why you will find many
productive programmers in the Rails camp, using a MacBook.


Timothy J.
www.foundinteractive.com

<…

But I just don’t see how a typical IDE can help my in
developing RoR applications. I don’t see a IDE like Visual Studio
offering me anything that I need that TextMate does not offer. Things
like breakpoints and other debugging tools are absolutely vital for
desktop development but I find them useless when developing web
software.
<…>

Exactly. I do believe one may need to have VS for coding in ASP.NET,
but for RoR - Textmate is good enough. You don’t get so much overhead
that you’d
need sophisticated IDE to handle it.

Regards,
Rimantas

http://rimantas.com/

I’m interested to hear you say that. Why do you find debugging (and an IDE) useless
for web development?

i think two things: rails code is very concise, so eclipse/VS-ish
syntactic-generation/intellisense gunk isnt necessitated, aside from the
basic snippets/tab-completions…

and its not THAT hard to page between vim/textmate/notepad and firefox.

of course it could be improved. whenever an error occurs, id like a text
editor to slide down from the top of the screen with the insertion point
at the erroneous line, and another pane to slide up from the bottom with
./script/breakpointer attached to the current request instance. in
development mode, every page/partial has a small set of icons, to do
things like reset state, edit the source, etc.

one thing id like to see is full Ruby control over mozilla’s DOM tree.
right now it can only do a few things like embed a Gecko window and feed
it a url… it would certainly make the aforementioned ‘Rails IDE’
simpler implementation-wise…
;;

On 6/25/06, Huw C. [email protected] wrote:

I’m interested to hear you say that. Why do you find debugging useless
for web development? Is it because you feel that the nature of web
development itself does not benefit from debugging or because the
debugging tools presently available aren’t sufficiently powerful for the
task?

Well…

For example. When an error occurs I get the location of that error.
Since I am using the TM plugin I can just click that error and TM
opens up the right file and the correct line. I just don’t need
anything more. And I feel like offering more is likely to complicate
things. Sure sometimes I might want more but that is an exception
rather than the rule. And ultimately by the end of the day I will have
saved a lot of time by just manually working through the exceptions
rather than having something I don’t need for every single error. I
just simply have never been in a situation where I would have
benefited by having the ability to dissect my code using breakpointers
and variable watchers.

Lets face it. Almost all errors that we do in Ruby are single line
errors because of either spelling or wrong parameters. And almost all
our errors are usually corrected without us having to backtrace
through the code and various classes and methods. When something is
wrong we get an error message with a filename an line number. And in
almost all cases we can just simply fix that line.

To summarize. What we need from a Ruby on Rails IDE is not some fancy
debugging tools and some breakpointers. We need more of a management
IDE. Something that helps us organizing the code and get a real
oversight of what we are doing. And of course it needs to be a kick
ass editor. TM is simply the best editor I have used. The text relate
tools are the most powerful available and only rivaled by vim and
emacs. However the project management is as simple as it gets. The
class browser of the Smalltalk IDE with the text editing power of
TextMate is what most need.

At leas that is my feeling. Interested to hear from others in that
subject.

Jón Borgþórsson wrote:

I don’t see a IDE like Visual Studio
offering me anything that I need that TextMate does not offer. Things
like breakpoints and other debugging tools are absolutely vital for
desktop development but I find them useless when developing web
software.

I’m interested to hear you say that. Why do you find debugging useless
for web development? Is it because you feel that the nature of web
development itself does not benefit from debugging or because the
debugging tools presently available aren’t sufficiently powerful for the
task?

Personally, I would like to have the best debugging tools possible for
Rails applications. Suffice to say that we are trying to work out ways
of implementing some :slight_smile: so I have a keen personal interest in
understanding the kinds of tools which Rails developers would find
useful (even if those tools do not currently exist).

best wishes
Huw
http://www.sapphiresteel.com

On 6/25/06, carmen [email protected] wrote:

of course it could be improved. whenever an error occurs, id like a text editor to slide down from the top of the screen with the insertion point at the erroneous line, and another pane to slide up from the bottom with ./script/breakpointer attached to the current request instance. in development mode, every page/partial has a small set of icons, to do things like reset state, edit the source, etc.

So basically… You want Smalltalk… :wink:

On 6/25/06, Huw C. [email protected] wrote:

I’m interested to hear you say that. Why do you find debugging useless
for web development? Is it because you feel that the nature of web
development itself does not benefit from debugging or because the
debugging tools presently available aren’t sufficiently powerful for
the task?

I’ll be honest, Huw. Even in C++, I rarely use the debugger. I will
almost always rely on print debugging as the first step. It also tends
to help me find the problem far faster than with the debugger.

The problem with a lot of applications – and web applications fit into
this – is that they rely on a lot of loops and that it may take dozens
of loops to get to the source of the problem. It is often easier and
more productive to analyze debug output than step through a debugger.

I’ve watched some of my colleagues debug through ASP applications and I
pity them. It’s painful to the point of lunacy.

-austin

Austin Z. * [email protected] * http://www.halostatue.ca/
* [email protected] * You are in a maze of twisty little passages, all alike. // halo • statue
* [email protected]

I’ll be honest, Huw. Even in C++, I rarely use the debugger. I will
almost always rely on print debugging as the first step. It also tends
to help me find the problem far faster than with the debugger.

with my rapid-reload style, 99% of the time the bug is at the current
line in the edit - i havent even felt the need to install any of these
‘jump to line’ things. and syntax errors are pretty much impossible,
atleast with my emacs, since the rest of the document turns pink, or
similar, so its obvious to spot

well hopefully Huw doesnt listen to our discouragement and proceeds to
make a kickass IDE anyway :smiley: