Komodo is the IDE for Ruby and Ruby on Rails!

Z

zoat

The new Komodo IDE 4.0 is the first unified workspace for end-to-end
development of dynamic web applications. A rich feature set for client-
side Ajax languages such as CSS, HTML, JavaScript and XML, coupled
with advanced support for dynamic languages such as Perl, PHP, Python,
Ruby and Tcl, enables developers to quickly and easily create robust
web apps. Komodo is the first IDE to provide professional debugging
tools for Ruby and Rails application development. The Ruby interactive
shell is available separately or from within debugging sessions.
Komodo is the IDE for Ruby and Ruby on Rails!
http://www.activestate.com/products/komodo_ide/more_information.p
 
M

M. Edward (Ed) Borasky

zoat said:
The new Komodo IDE 4.0 is the first unified workspace for end-to-end
development of dynamic web applications. A rich feature set for client-
side Ajax languages such as CSS, HTML, JavaScript and XML, coupled
with advanced support for dynamic languages such as Perl, PHP, Python,
Ruby and Tcl, enables developers to quickly and easily create robust
web apps. Komodo is the first IDE to provide professional debugging
tools for Ruby and Rails application development. The Ruby interactive
shell is available separately or from within debugging sessions.
Komodo is the IDE for Ruby and Ruby on Rails!
http://www.activestate.com/products/komodo_ide/more_information.p
Well ... I have Komodo 4.0, but I haven't really attempted to develop a
whole GUI-based application with it yet. But I have to disagree that
it's the first "unified workspace for end-to-end development of dynamic
web applications." I'd put a combination of KDevelop and Quanta ahead of
Komodo, and I'm pretty sure Eclipse is as good or better. I ended up
picking Komodo over KDevelop for two reasons:

1. KDevelop and its friends, QtRuby, QtDesigner, Korundum and Kommander,
really work well only on Linux and are really integrated well only with
the KDE desktop. Komodo, on the other hand, works with all of the Linux
desktops, and supports Windows a boatload better, especially if you are
using the ActiveState Perl, Python, Tcl/Tk and other tools.

2. I had a lot of trouble getting KDevelop to sync up with my RubyForge
projects. I gave up on it after a day or so. Komodo picked up on them
right out of the box. All I had to do was start Komodo in the directory,
and it found the CVS stuff and just worked.
 
G

Griff

I bought it, too. It is pretty nice.

It isn't the end all for IDEs, but it supports both Ruby and Perl, and
every OS on which I would ever end up working for my job.
 
M

M. Edward (Ed) Borasky

Chad said:
I'm extremely hesitant to go along with anything that eliminates flat
text files as a means of data storage when writing code, though. Plain
text is our best defense against data obsolescence and vendor lock-in.
*Especially* when you work on both Linux and Windows and have tools that
seamlessly and transparently deal with the two different end-of-line
conventions.

<weg>

:set fileformat=dos

er ...

;)
 
J

Jeremy McAnally

But many times people find Vi or emacs just as hard to learn if not
harder as an IDE. I did at first. Ctrl this, Alt that, how many keys
was that again? Four!? It was just completely alien to my brain.

I usually give my students something like SCiTe or Notepad++ to start
out with. Keep it simple and familiar. If you want them to focus on
the basics, then give them someting that is familiar, and as such gets
out of their way, but also makes them work harder to keep their code
formatted and working. Not only will they appreciate IDEs/code
sensitive editors later on, they will be able to handle their editor's
quirkiness better and more intuitively.

--Jeremy

I apologize in advance if I offend anyone on this list. My post below is
more a rant than a question.

Yes I agree that Komodo is a very nice IDE. When I am teaching programming
one, I find that many of my students get so involved with using the lasted
IDE ; that they lose sight of the project they should be working on. I
suggest to my students to use either Vi or emacs to get the job done.

Beginning programmers should concentrate solely on the basics of
programming. It seems to me, that the next generation of programmers expect
the newest and latest IDE to write the code for them. More than once a
student has come to me with simple nesting errors that was missed by the IDE
they were using. Each of us here as been bitten at once by the dangling
Else error using C++. One of my students debated with me over this very
problem because the IDE he was using did not catch this error.


Come on Spring Break



Sam


--
http://www.jeremymcanally.com/

My free Ruby e-book:
http://www.humblelittlerubybook.com/book/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/
 
J

John Wilger

What I'd really like to see is a programming environment where the IDE
isn't a cunning layer over the underlying reality, but where it's an
equally valid interpretation of the data. Then you can work at what ever
level you like, and see what ever details you like. This isn't going to
happen while we're still storing our programs and data as flat text
files though, in my opinion.

Uhm... Smalltalk anyone? :)
 
M

Martin DeMello

Beginning programmers should concentrate solely on the basics of
programming.

Why is why a text editor isn't the best thing either - the "basics of
programming" should ideally let you write code, without worrying about
setting up your environment and include paths properly, getting the
right commands to compile/run it, etc. You should be open up an IDE,
type in some code, and hit a button to have it run, interact with the
debugger, etc.

martin
 
A

Alex Young

Martin said:
Why is why a text editor isn't the best thing either - the "basics of
programming" should ideally let you write code, without worrying about
setting up your environment and include paths properly, getting the
right commands to compile/run it, etc. You should be open up an IDE,
type in some code, and hit a button to have it run,
Like in Scite, you mean? :)
 
C

Chad Perrin

Why is why a text editor isn't the best thing either - the "basics of
programming" should ideally let you write code, without worrying about
setting up your environment and include paths properly, getting the
right commands to compile/run it, etc. You should be open up an IDE,
type in some code, and hit a button to have it run, interact with the
debugger, etc.

Alex Young makes a good point, re: SciTE, in answer to this. My
immediate thought, though, was that this isn't necessarily the realm of
the tools you use -- for instance, Ruby mostly solves these problems
pretty handily, regardless of what kind of editor you're using.
 
G

Giles Bowkett

Uhm... Smalltalk anyone? :)

Yep, to the OP on this subset of the thread, you've just done
Smalltalk in a nutshell, basically. Although I must admit I've never
actually seen syntax-coloring in Smalltalk. It probably exists,
though.
 
G

Giles Bowkett

Servando, why don't you just ban IDEs in your classroom?

I always seek the type of perspective that allows me to rise above a
contentious debate, but with the IDE/text editor thing, I've never
managed to do it. I still haven't even been able to figure out why
anybody would ever even **try** with an IDE. I've tried, but only for
the sake of giving the other side a chance, and if that was the only
reason people ever used IDEs, there wouldn't be sides to begin with.

There must be a good reason for using an IDE, but I bet you even the
most staunch pro-IDE advocate is still going to say that IDEs are for
people who already know what they're doing.

Tell them they have to walk before they can run and take their IDEs away.
 
G

Giles Bowkett

Alternatively, maybe I'm just being grumpy. Googling "ide vs text
editor" turns up a lot of results.
 
J

John Wilger

Smalltalk in a nutshell, basically. Although I must admit I've never
actually seen syntax-coloring in Smalltalk. It probably exists,
though.

In Squeak, at least, coloring is built in to the default Browser in
the same place where you select the prettyPrint option. Don't recall
off the top of my head what exactly the option is called, and don't
have a VM on this machine...
 
G

Giles Bowkett

There must be something wrong with my image, then. I'm missing both
syntax coloring and prettyPrint. I can manually color the text an
arbitrary color, that's it.
 
M

Martin DeMello

Why is why a text editor isn't the best thing either - the "basics of
programming" should ideally let you write code, without worrying about
setting up your environment and include paths properly, getting the
right commands to compile/run it, etc. You should be open up an IDE,
type in some code, and hit a button to have it run, interact with the
debugger, etc.

http://headrush.typepad.com/creating_passionate_users/2007/02/its_lunchtime_a.html

Kathy Sierra seems to disagree with me. Interesting read.

martin
 
K

Klaus Ramelow

Martin said:
http://headrush.typepad.com/creating_passionate_users/2007/02/its_lunchtime_a.html


Kathy Sierra seems to disagree with me. Interesting read.

martin

What is the difference between Error an Horror ?

In my opinion the Community is most helpful but, by the numbers of
questions resp
problems, to me it seems a tremendeous waste of time (and thoughts) because
this shows that (also) ruby lacks the clarity (not only) I am looking for.
There would be much less questions and therefore more productivity,
if there would be a clarity in this language - using human language
resp. mnemonic -
like using Basic or Cobol or Pascal or D (or even Assembler).

Using Ruby (and Python ...) with its complicated coding, we don`t need
the power
of todays Computers because we do, by this kind of languages,
the precompiling in our heads instead of using the given hardware
(which is much faster in doing this - and every time in the same way /
straight forward -
not asking the number of questions - average about 150 per day - we do
in this forum!)
I think there is only ONE way: using the above mentioned languages in
precompilers
- for the pupose of transportability to different Sytems - generating
i.e. Java bytecode
(.class). There could be jBasic, jCobol etc.

COMPUTER-LANGUAGES should not be treated as a religion but as a tool for
DOING SOME WORK FOR US.
We should not longue for a code consisting of the smallest number of
characters.
There should be very little questions about the language (how will it me
understand,
will it do what I want) but how can I implement the wanted logic using
human language
resp mnemonic so there will be a readable and simple maintainable code
(even from project independent poeple).
TRICKY code - in this way - must be named as DIRTY code!
There are too many symbols with special meaning.

i.e some forum questions:

Is my code using the Ruby way ?

hi im new to ROR and although i know how to work with controllers
I‘m having difficulty understanding what exactly they are and why they
are used?
please help enlighten me :)

Yeah, I did the former already (I like it better that way).
And omitting the ==true part makes the code more readable.

Very tricky!
Let‘s make it a little shorter and more robust:
class A
def say_hi
m = %r/([^:]+):(\d+)/.match caller.first
return if m.nil?
...
(c = result.match(/id: (\d+)/)) ? c.captures.first : result.scan(/error:
(.*)/).to_s

Is there a smoother/better way to say this?

Hi,
Could anyone tell me or send links where I can find some reliable articles
about efficiency of ruby.
How I should coding to keep ruby efficient?

Err... fix the alias bug though (damn no-comma gets me every time!),
......
...
Klaus Ramelow
 
K

Kyle Schmitt

In my opinion the Community is most helpful but, by the numbers of
questions resp
problems, to me it seems a tremendeous waste of time (and thoughts) because
this shows that (also) ruby lacks the clarity (not only) I am looking for.
There would be much less questions and therefore more productivity,
if there would be a clarity in this language - using human language
resp. mnemonic -
like using Basic or Cobol or Pascal or D (or even Assembler).

Using Ruby (and Python ...) with its complicated coding, we don`t need
the power
of todays Computers because we do, by this kind of languages,
the precompiling in our heads instead of using the given hardware
(which is much faster in doing this - and every time in the same way /
straight forward -
not asking the number of questions - average about 150 per day - we do
in this forum!)
I think there is only ONE way: using the above mentioned languages in
precompilers
- for the pupose of transportability to different Sytems - generating
i.e. Java bytecode
(.class). There could be jBasic, jCobol etc.

COMPUTER-LANGUAGES should not be treated as a religion but as a tool for
DOING SOME WORK FOR US.
We should not longue for a code consisting of the smallest number of
characters.
There should be very little questions about the language (how will it me
understand,
will it do what I want) but how can I implement the wanted logic using
human language
resp mnemonic so there will be a readable and simple maintainable code
(even from project independent poeple).
TRICKY code - in this way - must be named as DIRTY code!
There are too many symbols with special meaning.

OK OK, I'll bite about the first parts..

Any language, human or computer, effects how you think about the
problem at hand. I can't cite anything off the top of my head, and
I'm at work so I can't exactly go looking it up ;) but there is
research that shows that point.
Programming languages, and human languages, all lack clarity when
they are being abused, used by people who don't know them well (like
those who are learning and often post basic questions on this list),
and those who are in the habit of using them poorly. To those who
know Perl, Ruby and even Lisp*, they make immediate sense, and are as
clear as any diagram of psudocode on the white board. If you think in
a language, you've found the legendary DWIM (Do What I Mean).

And I'll bring up one more thing. What about the joy of learning the
language? The joy of learning what makes things work? In real code,
yes, the idea of writing the shortest possible program may be silly,
but when learning, when exploring, it's important to do things like...
Write a self replicating program; Try and make a basic xml validation
method in 100 lines or less; Write Conway's game of life in as few
calls as possible. Immediately useful? No. Ultimately makes someone
a better programmer? Probably. Ultimately make someone a more fluent
programmer in that language? Definitely.

Heck when you teach people a foreign language you do the same
thing. At some point you have to show them how to play with the
sticky nasty bits of it, otherwise the learner never will gain the
full understanding, the full polish of the language. Think of: the
use of a and an in English; the use of the colons and semicolons I
abuse so regularly; the tricks to make grammatically correct paragraph
long sentences; the use of the apostrophe, which seems to elude the
grasp of many native speakers now a days.

--Kyle A. Schmitt



* OK yes there are languages that make _no_ reasonable sense at all,
BF unLambda and VB6 come to mind.
 
N

Neville Franks

This discussion is plain crazy. Yes it is crucial that students learn
all of the low level underlying concepts in their chosen endevour, but
don't force inadequate tools on people who write for a living and need
to be as productive as possible.

When I started programming 20+ years ago I did everything in Assembler,
learnt how to squeeze the last byte out of what I wrote, learnt how to
use a debugger in depth and learnt how to profile my code to find the
hotspots. All of these have stayed with me and held me in good stead
over the years. If you are writing in a compiled language and don't know
how to read assembler or use a debugger (which many students don't),
then you've got a big problem.

Syntax highlighting is a huge boost to productivity as it can instantly
make problems visible while you are writing, instead of waisting time
with edit-compile-edit cycles. Can you spot the difference between: id =
"%x" % (ab * 2) and id = "%x" %(ab * 2) or will you have to wait for
Ruby to tell you?

Do you want to keep pressing space/tab/backspace to get your code
indented nicely or do you want to get on with real task of writing code
and let the editor automatically indent your code for you.

And the person who said they need to know every file and whats in it, is
nuts IMO. I want to edit method abc or class xyw - I don't care what
file these are in, or what drive or directory that file is in, or be
concerned if another developer has moved them to a different file. I
just want to get on and work with the code, and let the editor keep
track of where every method, class etc is located. If you've ever worked
on a complex set of code with hundreds or worse, thousands of files,
then having the code navigation capabilities I'm referring to are
essential.

I write software for a living and like any wise tradespersons, I use the
best tools that enable me to be the most productive, so that I can have
some chance at delivering products to my customers in a timely fashion.

As for Komodo I humbly suggest you look at our IDE, ED4W. See:
http://blog.surfulater.com/2007/02/21/write-ruby-code-faster-with-ed-for-windows/

Neville Franks, author of ED for Windows and Surfulater.
 
C

Chad Perrin

In my opinion the Community is most helpful but, by the numbers of
questions resp
problems, to me it seems a tremendeous waste of time (and thoughts) because
this shows that (also) ruby lacks the clarity (not only) I am looking for.
There would be much less questions and therefore more productivity,
if there would be a clarity in this language - using human language
resp. mnemonic -
like using Basic or Cobol or Pascal or D (or even Assembler).

Okay, I'm confused -- you just compared Pascal and assembly language
favorably to Ruby with regard to clarity and familiarity with human
language. Have you actually looked at much Pascal code? If so: Have
you actually looked at much Ruby code for the comparison?

It's true that BASIC and COBOL tend to use words taken directly from
English or made by mashing English language words together. There's
more to easing the process of programming than that, however, and once
you're working with algorithms more complex than a "Hello World"
program, BASIC and COBOL start looking like hashed browns with catsup.

My first, immediate, reaction was to label you a troll. I want to give
you the benefit of the doubt, however. Perhaps you just failed to make
your point clearly, and I'm missing something important as a result.
Judging by my experience, however, your statements tend to imply the
opposite of reality. You seem to be saying the sky is hard and the
ground is blue, that baking soda is wet and water is abrasive.

COMPUTER-LANGUAGES should not be treated as a religion but as a tool for
DOING SOME WORK FOR US.
We should not longue for a code consisting of the smallest number of
characters.
There should be very little questions about the language (how will it me
understand,
will it do what I want) but how can I implement the wanted logic using
human language
resp mnemonic so there will be a readable and simple maintainable code
(even from project independent poeple).

Every time you learn a new language, you have to learn new things.
Someone who knew Ruby would have to learn a bunch of new stuff trying to
pick up Pascal as a new programming language. Same difference. The
only reason there are fewer questions on a Pascal mailing list than here
is that there are fewer new Pascal users on a Pascal mailing list.

I agree that programming languages are tools, not religions. That's one
of the reasons I favor Ruby over the languages with which you contrasted
it. There are times when assembly language is more appropriate than
Ruby, of course, but those times are few and far between because of the
limitations of a language so difficult to use for complex operations
(and even a five-line Ruby program that can be read and understood in
less than a second performs some complex operations). Ruby provides
abstraction which, like a longer lever, allows you to make bigger
changes with less effort, but can get in the way of extreme fine-tuning
of the sort you'd get with assembly language (or tweezers, for the lever
analogy).

If we wanted code consisting of the fewest possible characters, we'd be
using something like Ada. We just want clean, readable, maintainable
code, so we use Ruby.

You made an off-hand reference to Python. I don't like Python much.
Some of its idioms and some of its restrictions to "one right way" just
rub me the *wrong way*. I don't like the syntax, I don't like the way
it tries to be an object oriented language while still keeping some
multi-paradigmatic language characteristics so that it seems a little
like there's a seam through the middle of the language where it was
stitched together.

That's all my personal taste, though; it's subjective opinion. Looking
at it objectively, Python is an excellent language. If you want
evidence that I'm not just defending Ruby against your complaints
because I like Ruby, here it is: I don't like Python. I don't want to
have to program in that language for a living, ever. I may eventually
want to learn more about the language, if only to better understand why
I don't like it, but at the same time I don't want to have to look at
Python source code. Despite all this, I recognize its clarity, ease of
use, and clean design for those who *do* like it. Pretty much
everything I've said about Ruby in this message, and the fact that your
conclusions about what's "wrong" with Ruby simply don't seem to fit the
facts, applies equally well to Python.

As far as I can tell, you're somewhere out in left field.
 

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,982
Messages
2,570,189
Members
46,735
Latest member
HikmatRamazanov

Latest Threads

Top