What is your favourite IDE?

screen + vim is the best ide ever imho. amazingly, it works for all source
code types :wink:

-a

ยทยทยท

On Fri, 13 Apr 2007, M. Edward (Ed) Borasky wrote:

bgulian@gmail.com wrote:

The
interactive Ruby shell in Komodo does not work as well as irb.

I mentioned that on the Komodo beta mailing list. The way they have the shells set up makes it difficult but not impossible to interface with "irb", but their developers are looking for a way to do it -- they know Rubyists can't live without the look and feel of irb. I'm not that sort of hacker, or I'd take a shot at it. What little Komodo hacking time I have I was planning on spending doing a lexer for the R language. :slight_smile:

I use Vim and bash all the time and I am confident that they do not
constitute an IDE despite arguments to the contrary in this forum.

Emacs is closer than Vim, and Vim is gaining on Emacs, but yes, neither constitutes a true IDE. I think I could make a case for the Linux desktop as an IDE, however. :slight_smile:

--
be kind whenever possible... it is always possible.
- the dalai lama

Eric Promislow wrote:

Time to check in...

We're back in another round putting more work into the Ruby
side of Komodo. I just redid the debugger -- it's now built on
top of Kent Sibelev's ruby-debug module (http://rubyforge.org/projects/
ruby-debug/)
and works way faster. About 50 times faster on average.
I'm surprised no one here pointed out how slow the old one was.

Hi Eric,

I'm just curious how did you plug into Kent's ruby-debug? Do you utilize ruby-debug (cli) directly? Or do you write your own extension to ruby-debug-base? Somehow utilizing debug-commons project?
Seems that everybody somehow utilizes ruby-debug which is obvious. But there seems to be a lot of duplication efforts. Just curious :slight_smile:

Thanks,
  m.

"Eric Promislow" <eric.promislow@gmail.com> wrote in message
news:1176511295.211798.234170@b75g2000hsg.googlegroups.com...

As for the code-completion, I haven't been able to check out
Sapphire yet. We got out of the Visual Studio plug-in
game a couple of years ago (http://it.slashdot.org/article.pl?
sid=05/12/15/2112237),

Yes, we noticed that :slight_smile:

and I haven't bothered to install VS 2005 since then. Full
code-completion is tough, but we try with the same kind of
on-the-fly code analysis Huw was talking about. I have to
admit that the VS API was designed to deliver results very
quickly in response to code changes.

As I said before, Komodo's Ruby code completion is the best I've come across
(other than ours). I am an admirer of Komodo (see my review here:
http://www.bitwisemag.com/2/Komodo-IDE-4\) and it is my IDE of choice when
not using Visual Studio. It turns out that, in spite of some overlap, Komodo
and Ruby In Steel are not at all the same types of product. Komodo is
multi-language and multi-platform; Ruby In Steel is one language (Ruby) and
one-platform (Visual Studio). In spite of requests from some people to
'break out' of Visual Studio, this is something we won't be doing. We are
completely focussed on Ruby and Visual Studio.

So far, we have had two main goals: 1) to have the best Ruby IntelliSense
and 2) to have the fastest Ruby debugger. To the best of my knowledge, we
can claim success in both these areas.

But in terms of the breadth of programming features for dynamic languages in
general, we are not in competition with ActiveState. Naturally I hope that
Visual Studio users programming Ruby will use Ruby In Steel. But if you
aren't using VS or if you want to program on other platforms and in other
languages, I would recommend that you use Komodo.

best wishes
Huw Collingbourne

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

Thank you all for taking the time to answer my questions. Tim, thank you especially for the suggestions on books and the idea of using a deck of cards. I can certainly see how that would make things easier.

Don

ยทยทยท

On Apr 13, 2007, at 10:45 PM, Tim X wrote:

Don Levan <levandon@gmail.com> writes:

Hello all,

A journey that has taken me from developing in Filemaker through the
self study of Ruby, Rails, and regular expressions has led me to
begin looking at algorithms and data structures. Though I don't have
a traditional computer science background, I am trying to educate
myself as best I can.

I am begin stymied by what looks like math but is greek to me. For
example, on the first page of the book I am reading (The Algorithm
Design Manual, b Steven Skinea), there is this description of the
insertion sort algorithm:

for i = 1 to n - 1 do
  for j = i downto 2 do
    if (A[j] < A[j-1]) then swap(A[j],A[j-1])

I can struggle through it, but I am wondering 1) what branch of math
is this? Is it algebra or something more complex? And 2) are there
any good (and accessible) books that will give me a basic
introduction to the language conventions?

Its what is often referred to as 'pseudo code', a sort of generalised
programming language abstraction. There are no real rules and generally only a
few very simple constructs to learn. In the example you give above, possibly
the only two constructs that may need explination are the A[..] and swap(...)
constructs.

Generally, pseudo code is something the author will define themselves and you
will often find an explination of their particular flavor of pseudo code in the
introduction or early chapters of the book. The primary aim of pseudo code is
to describe algorithms in a general an concise manner without getting bogged
down in the syntax associated with real code. There are some basic conventions
for pseudo code, but no definite or specific rules.

Pretty much all programming languages have a basic set of things they can do.
Most pseudo code will have some sort of construct to represent these basic
operations. In general, you have notation to represent

- Basic variables and simple data structures such as arrays. You may have a
  'struct' or record type as well.
- Some construct to represent value asignment
- Some construct to represent branching/conditional operations, such as 'if'
  and 'else'.
- looping constructs, such as 'for', 'while' and 'until'.
- Named code blocks, sometimes done via some sort of 'label' or
  function/procedure call.

By convention, variables with names like 'i', 'j', and 'k' are used to
represent counters or index variables. The variable 'n' is often used to
represent the count or size of something.

Generally speaking, constructs like A represent an array. something like A[0]
would represent the first element of the array 'A', where 'A' is the symbol or
name given to the storage location for the array of values. (more often than
not, computer languages start counting from 0 rather than 1). A[j] represents
the element of the array A at position j. A construct like A usually
represents a two dimensional array, which might be used to represent something
like a matrix.

The construct swap() represents what is often referred to as a function or a
procedure. Essentially, it is a named block of code that will perform some
operation. Often, functions are named blocks of code that when executed, will
return some value while procedures are a block of code which will do something,
but may not return any value.

The use of named blocks of code are really an abstraction that allow you to
think at a higher level. For example, in the pseudo code you have, swap(A[j],
A[j-1]). We know by the name that this procedure will 'swap' something. We can
see that it takes two arguments (A[j] and A[j-1]), so we can be fairly
confident that what it is doing is swapping the two values at positions j and
j-1 in the array A. We don't have to think about how it does that operation -
simply assume that it does and afterwards, the two values have been swapped
over. We don't need to think about how this swap operation will also need to
have a temporary 'holding' place that the first value can be stored in while
the second balue is moved form its position into the first position and then
the first value is moved from its temporary position into the second position.
Likewise, we don't have to be concerned about whether the values being operated
on are pointers, copies of the originals global values. We don't have to be
concerned with error handling, data typing etc etc. Instead, we only have to
understand the concept of swapping two values without all the additional
overheads normally encountered in an actual program which implements such an
operation.

The real trick with pseudo code is not to read too much into it. It is meant to
be a high level, but still reasonably concise and unambiguous description of an
algorithm.

When I first started learning this stuff, particularly sorting and searching
algorithms, I found it very handy to have a deck of cards on hand. You could
try it with the pseudo code above and imagine your trying to execute that
pseudo code.

Shuffle the cards to ensure a random order. Then lay out 10 cards face up on
the table. Those 10 cards represent your array 'A'. As there are 10 cards, we
can say that your array has 10 elements, a size of 10. When you get to the
'swap()' operation, just swap the two cards that correspond to the arguments,
which will translate into array positions (i.e. card positions).

Doing this with each of the different sorting algorithms will give you a real
appreciation of why some sorting algorithms are better than others. I suspect
you will find this an extremely useful technique when it comes to less
obvious/intuitive sorting approaches, such as quicksort.

With respect to your question on books, I would recommend going to a good
library and checking out some of the introductory books on discrete maths, data
structures and algorithms. Different styles suit different people and what I
found great you may not. For example, when I did my computing degree, I didn't
particularly like the style of the prescribed text books. I whent to the
library and discovered Donald Knuth and Nicholas Wirth. I found these two
authors really good. For me, their explinations were clear, interesting to read
and sat well with my conceptual model of the world. However, I know others who
cannot stand their work.

Once you find an author or books you like, then try and get copies for
yourself. I highly recommend checking out Donald Knuth. In particular, his
"Concrete Maths for Computing Science" (I think thats what it was called - or
something similar). It is in my view and excellent book. His style is clear and
he has included margin notes from students, which apart from adding additional
insight/background, are often humorous and that always helps. He has also
written an excellent series called "The Art of Computer Programming", but it is
quite 'heavy'. However, as I said, I really like his style and personally got a
lot out of it. There are also some great on-line resources from MIT (they have
put a lot of their course resources on-line now and they are largely free).
Therre is an excellent book called "Structure and Interpretation of Computer
Programs", which can be a bit heavy at times, but is an excellent example of
the power of abstraction and using the right data structures to solve problems.
Possibly its only drawback for many people is that it is based around scheme.
However, you can still get a lot out of it without needing to fully understand
scheme itself. There are also some movies on-line of the authors presenting
courses based on the content of the book.

Finally, don't get too concerned because this stuff looks like maths. In
reality, it is just notation used to describe a discrete set of steps that need
to be followed. The mathematical like notation is used because it is more
concise and less ambiguous than written english.

HTH

Tim

--
tcross (at) rapttech dot com dot au

Don,

Mr. Abbott is far too literal minded to answer your message in a useful
manner. The algorithm that you were looking at would probably work in
more than a few programming languages, but it is best described as
what is known as meta-language. If you have ever had any form of
logic, it's form is the basic syllogism. In the final analysis, it is
basic,
logical English and does pretty much what it says it does. I will admit
that the syntax for arrays of one or more dimensions is not straight
English, and the downto is just crude computer slang, and there is not
what anyone would call proper punctuation, but other than those minor
bits of fluffery, it pretty much does what it says it does. The logic is
compressed, but if you understand the idea of assignment of values
rather than simple equality when the "=" sign is used in the "for" or other
functional statements, and that the same sign and all the other
comparatives
operate as logical comparatives in logical statements such as an "if", you
pretty much have it. That's not to say that it is absolutely simple, but
once you have the basics of how logic and function are separated and
combined in the peculiar form of computer geek illiteracy that is a
progamming language or a meta-language about programs, then you
can pick up speed over time. Of course, you'll never be able to read
this stuff at flank speed, because of the density of the expressions, and
the lack of foresight by the geeks that arbitrarily created the stuff.
In most
cases, their attempts to simplify their programming process(read use
the most shortcuts) have done the opposite of their intention for anyone
other than themselves. When you have all that in mind, you will be
prepared to suffer with the rest of us, each time we enter into a new
programming language that uses commas, periods, braces, brackets,
parentheses, colons, semi-colons, and etc. in subtly different and/or
grossly conflicting manners. Now, when you get ready to try to
understand regular expressions, take all of those problems and
multiply them by ten, then sprinkle the whole thing with holy water
and light a candle, or better yet, try a large firecracker or other
destructive device. It won't help you in learning it, but it will make you
feel a lot better until you can find something else to distract you.

Despite all this drollery, the suggestion on the Knuth books is spot on.
They are the best that the programming world offers. Just don't think
that they constitute " Programming for Dummies". Nothing that Knuth
says is either trivial or particularly friendly to the newby. On the
other hand, if you ever understand everything that Knuth has written,
you may skip the funeral and go straight to heaven or Nirvana or
wherever good programmers go when they are released from the
Stygian bowels of their computers.

Everett L.(Rett) Williams
Erwin Abbott wrote:

ยทยทยท

Sorting algorithms are typically covered in college computer science
classes with titles like "Data Structures & Algorithms". Sorting is a
CS topic and it doesn't appear to be studied in many math
departments... but some "Discrete Math/Number Theory" kinds of courses
might cover related topics. Donald Knuth has a set of books called
"The Art of Computer Programming" that are very good for learning all
kinds of algorithms and how to apply them. I think Volume 3 deals
specifically with sorts/sieves.

On 4/13/07, Don Levan <levandon@gmail.com> wrote:

Hello all,

A journey that has taken me from developing in Filemaker through the
self study of Ruby, Rails, and regular expressions has led me to
begin looking at algorithms and data structures. Though I don't have
a traditional computer science background, I am trying to educate
myself as best I can.

I am begin stymied by what looks like math but is greek to me. For
example, on the first page of the book I am reading (The Algorithm
Design Manual, b Steven Skinea), there is this description of the
insertion sort algorithm:

for i = 1 to n - 1 do
    for j = i downto 2 do
        if (A[j] < A[j-1]) then swap(A[j],A[j-1])

I can struggle through it, but I am wondering 1) what branch of math
is this? Is it algebra or something more complex? And 2) are there
any good (and accessible) books that will give me a basic
introduction to the language conventions?

Thanks so much,

Don Levan
Brooklyn, New York

I'd also recommend "Data Structures: An Advanced Approach Using C" by Esakov and Weiss.

Ellie

Eleanor McHugh
Games With Brains

ยทยทยท

On 16 Apr 2007, at 08:33, Martin DeMello wrote:

On 4/13/07, Don Levan <levandon@gmail.com> wrote:

Hello all,

A journey that has taken me from developing in Filemaker through the
self study of Ruby, Rails, and regular expressions has led me to
begin looking at algorithms and data structures. Though I don't have
a traditional computer science background, I am trying to educate
myself as best I can.

brpreiss.com is worth a look. However, if your
goal is to teach yourself about algorithms and data structures, I'd
suggest working your way through How to Design Programs (download
DrScheme as the recommended scheme implementation), and then proceed
with Structure and Interpretation of Computer Programs, the classic
text on the subject.

----
raise ArgumentError unless @reality.responds_to? :reason

hi Dan,
try using easy Eclipse for ruby...comes with built in support for ruby and
rails...need not install ruby plugin for the elipse
ciao
-AG

ยทยทยท

On 4/13/07, Dan Stevens (IAmAI) <dan.stevens.iamai@gmail.com> wrote:

I use Kate on Linux, and Notepad++ in Windows.

I've tried the Ruby plugin for Eclipse and I found it has a long way to
go.

"Todd Werth" <twerth@infinitered.com> wrote in message
news:951f0bf1b085875916af2db2775c4a4d@ruby-forum.com...

Peter C. Verhage wrote:
I see a lot of people say something like "it is more than code
completion, it's IntelliSense". Many IDEs have similar, or even better,
features than MS does with their IntelliSense. They just can't call it
that for legal reasons.

Bear in mind also that IntelliSense means on-the-fly code analysis. It isn't
just code completion. Many IDEs provide code completion based on simple
alphabetical lists or using method names declared in the current code file.
That is a long way from IntelliSense. To provide IntelliSense, you need to
interpret the code - not only the code that's being edited, but also also
any changes that editing changes might introduce going right up the class
hierarchy. In other words, a real IntelliSense system is an interpreter, not
just a 'method-lookup' tool.

We've put a great deal of effort into Ruby In Steel's IntelliSense system
and you might therefore understand why we are a little sensitive to other
IDE's claims to IntelliSense when what they generally mean is 'code
completion' :wink:

best wishes
Huw Collingbourne

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

Don,

I know this doesn't directly anwer your question (and
in fact takes the topic further and further away from
Ruby), but a great book on algorithms to have on hand
is Robert Sedgewick's. Its two volumes have been
issued in both C and C++ versions, with rather "geeky"
(clean but non-reader-friendly) code examples, but the
graphical illustrations of searching and sorting
algorithms in the first book are well worth the price
of admission. In fact, if memory serves, those
illustrations have received high praise from Edward
Tufte, who is quite a stickler when it comes to
information representation.

Regards
Ewald Cress

ยทยทยท

>> I am begin stymied by what looks like math but
is greek to me. For
>> example, on the first page of the book I am
reading (The Algorithm
>> Design Manual, b Steven Skinea), there is this
description of the
>> insertion sort algorithm:
>>
>> for i = 1 to n - 1 do
>> for j = i downto 2 do
>> if (A[j] < A[j-1]) then swap(A[j],A[j-1])
>>

We use the ruby-debug-base.rb and ruby-debug.so, and call it like any
other Ruby
library. This way people can install an upgrade and Komodo should
just work
with the new .so, assuming no compatibility breakage. I wouldn't say
there's too much
duplication -- you just have to implement a callback class to handle
the ruby-debug
events.

- Eric

ยทยทยท

Hi Eric,

I'm just curious how did you plug into Kent's ruby-debug? Do you utilize
ruby-debug (cli) directly? Or do you write your own extension to
ruby-debug-base? Somehow utilizing debug-commons project?
Seems that everybody somehow utilizes ruby-debug which is obvious. But
there seems to be a lot of duplication efforts. Just curious :slight_smile:

Thanks,
        m.

Hello Huw,

Eclipse DLTK also do a lot of things while computing code completion proposals like abstract interpreting of Ruby code, demand driven analysis with subgoals pruning, searching for refs, etc... But DLTK folks still calling this "Code Assist" (Eclipse-way). You referring to the same feature as "IntelliSense" (MS-way)... I believe it does not matters a lot for an IDE user how process of getting completion proposals named: IntelliSense, Code Assist, or Code Complete. Implementation and results quality does matter, so are you ready for real open challenge to prove that your IntelliSense is *better* than DLTK's Code Assist (completion)? If you definitely ready, I believe DLTK guys will be happy to meet the challenge.

Kind Regards,
Andrey Platov

Huw Collingbourne wrote:

ยทยทยท

"Todd Werth" <twerth@infinitered.com> wrote in message news:951f0bf1b085875916af2db2775c4a4d@ruby-forum.com...
  

Peter C. Verhage wrote:
I see a lot of people say something like "it is more than code
completion, it's IntelliSense". Many IDEs have similar, or even better,
features than MS does with their IntelliSense. They just can't call it
that for legal reasons.
    
Bear in mind also that IntelliSense means on-the-fly code analysis. It isn't just code completion. Many IDEs provide code completion based on simple alphabetical lists or using method names declared in the current code file. That is a long way from IntelliSense. To provide IntelliSense, you need to interpret the code - not only the code that's being edited, but also also any changes that editing changes might introduce going right up the class hierarchy. In other words, a real IntelliSense system is an interpreter, not just a 'method-lookup' tool.

We've put a great deal of effort into Ruby In Steel's IntelliSense system and you might therefore understand why we are a little sensitive to other IDE's claims to IntelliSense when what they generally mean is 'code completion' :wink:

best wishes
Huw Collingbourne

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

Huw Collingbourne wrote:

"Todd Werth" <twerth@infinitered.com> wrote in message

I see a lot of people say something like "it is more than code
completion, it's IntelliSense". Many IDEs have similar, or even better,
features than MS does with their IntelliSense. They just can't call it
that for legal reasons.

Bear in mind also that IntelliSense means on-the-fly code analysis. It
isn't
just code completion. Many IDEs provide code completion based on simple
alphabetical lists or using method names declared in the current code
file.
That is a long way from IntelliSense. To provide IntelliSense, you need
to
interpret the code - not only the code that's being edited, but also
also
any changes that editing changes might introduce going right up the
class
hierarchy. In other words, a real IntelliSense system is an interpreter,
not
just a 'method-lookup' tool.

My point was that Intellisense is a word trademarked by Microsoft, so,
of course, no one else is going to have 'Intellisense'. However, for
languages like Java, all the major IDEs (Netbeans, Eclipse, IDEA, etc)
have very similar features as Visual Studio does with its
Intellisense(tm). To insinuate that all they do is "method-lookup'
isn't exactly fair.

As for Ruby, most of them are working on supporting these features.
DLTK in Eclipse, Tor Norbye is working on support in NetBeans, etc.

Creating code-completion for dynamic languages is hard, as you have
noted, and code-completion can mean anything from matching strings in
the current file all the way to on-the-fly code analysis.

It makes sense that you want to communicate the sophistication of your
product, however there are others doing similar work on platforms other
than Visual Studio, using names other than Intellisense.

ยทยทยท

--
Posted via http://www.ruby-forum.com/\.

Ewald Cress <ewaldcress@rocketmail.com> writes:

Don,

I know this doesn't directly anwer your question (and
in fact takes the topic further and further away from
Ruby), but a great book on algorithms to have on hand
is Robert Sedgewick's. Its two volumes have been
issued in both C and C++ versions, with rather "geeky"
(clean but non-reader-friendly) code examples, but the
graphical illustrations of searching and sorting
algorithms in the first book are well worth the price
of admission. In fact, if memory serves, those
illustrations have received high praise from Edward
Tufte, who is quite a stickler when it comes to
information representation.

Of course - I knew there was another author I wanted to mention, but for the
life of me, couldn't remember his name. I would agree his stuff is good.

I would also say not to worry too much about the fact his first edition was
was based on Pascal. To some extent, the language is less important than the
concepts. Knuth's Art of Programming books used an abstract machine that is even
at a lower level than Pascal. It could be argued that having a book that used a
language you were not using or not familiar with may be beneficial as it would
remove the temptation to just 'cut and paste' rather than working towards
understanding.

The other nice thing about getting a book on algorithms that uses a language
like pascal is that apart from Pascal being a fairly simple language to follow,
your going to pick up the book for a lot less than a 'modern' book based on
Java, Ruby or Python (many of which are written by people who I suspect had
Sedgwick, Wirth and Knuth sitting next to them for reference!).

The key, find an Author with a style you like - that is the No. 1 priority. If
you can find such an author and they have a book that uses Ruby, well your very
lucky. But don't restrict yourself to only books on algorithms that use the
language you are working in because you are likely to miss the insight from
some really gifted communicators.

Tim

ยทยทยท

--
tcross (at) rapttech dot com dot au

Eric Promislow wrote:
> We use the ruby-debug-base.rb and ruby-debug.so, and call it like any
> other Ruby library. This way people can install an upgrade and Komodo
> should just work with the new .so, assuming no compatibility breakage.
> I wouldn't say there's too much duplication -- you just have to
> implement a callback class to handle the ruby-debug events.

By duplication I meant several different extensions for ruby-debug-base
with the same aim.

I would like to implement DBGp (ruby-debug-dbgp?) extension for
ruby-debug-base in the future if nobody else do so in the meantime. That
would be easily utilized by any frontend then. Currently Markus
Barchfeld implemented ruby-debug-special_xml_based_protocol extension
for ruby-debug-base which is also pretty frontend-independent.

I think that ideal state would be to have one debugger backends central utilized by all frontends and all peoples from frontends would work together on those backends. E.g. in the Rubyforge's debug-commons project :wink:

ย ย m.

It makes sense that you want to communicate the sophistication of your
product, however there are others doing similar work on platforms other
than Visual Studio, using names other than Intellisense.

I have to say that I have so far only come across one Ruby IDE other than
ours which makes a decent attempt at analytical IntelliSense for Ruby
(Komodo), though I am confident in saying that Ruby In Steel's IntelliSense
is much more complete than Komodo's. If you have examples of other IDEs
which offer comparable features, we genuinely would like to know. I've just
put online a short article which may help you when evaluating Ruby
IntelliSense. I would honestly be very grateful for any reports on similar
capabilities which you may find in other IDEs.

http://www.sapphiresteel.com/Evaluating-Ruby-IntelliSense

best wishes
Huw Collingbourne

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

Todd Werth <twerth@infinitered.com> writes:

Huw Collingbourne wrote:

"Todd Werth" <twerth@infinitered.com> wrote in message

I see a lot of people say something like "it is more than code
completion, it's IntelliSense". Many IDEs have similar, or even better,
features than MS does with their IntelliSense. They just can't call it
that for legal reasons.

Bear in mind also that IntelliSense means on-the-fly code analysis. It
isn't
just code completion. Many IDEs provide code completion based on simple
alphabetical lists or using method names declared in the current code
file.
That is a long way from IntelliSense. To provide IntelliSense, you need
to
interpret the code - not only the code that's being edited, but also
also
any changes that editing changes might introduce going right up the
class
hierarchy. In other words, a real IntelliSense system is an interpreter,
not
just a 'method-lookup' tool.

My point was that Intellisense is a word trademarked by Microsoft, so,
of course, no one else is going to have 'Intellisense'. However, for
languages like Java, all the major IDEs (Netbeans, Eclipse, IDEA, etc)
have very similar features as Visual Studio does with its
Intellisense(tm). To insinuate that all they do is "method-lookup'
isn't exactly fair.

As for Ruby, most of them are working on supporting these features.
DLTK in Eclipse, Tor Norbye is working on support in NetBeans, etc.

Creating code-completion for dynamic languages is hard, as you have
noted, and code-completion can mean anything from matching strings in
the current file all the way to on-the-fly code analysis.

It makes sense that you want to communicate the sophistication of your
product, however there are others doing similar work on platforms other
than Visual Studio, using names other than Intellisense.

--

I think one of the real potential benefits of a more sophisticated IDE is the
ability to move from basic syntax highlighting of code to something more like
semantic highlighting of code. While syntax highlighting is nice, syntax is
usually only an issue when first learning a language. Once you have experience,
help with semantic issues is probably more beneficial.

Tim

ยทยทยท

--
tcross (at) rapttech dot com dot au

We'll be shipping the full code for the dbgp-based debugger in the
next beta
for Komodo 4.1. You'll need to check the license before you reuse
it. The
current Ruby debugger allows reuse under the same terms as the Ruby
license,
and I expect that will continue.

- Eric

ยทยทยท

On Apr 17, 12:42 pm, Martin Krauskopf <martin.krausk...@sun.com> wrote:

Eric Promislow wrote:

> We use the ruby-debug-base.rb and ruby-debug.so, and call it like any
> other Ruby library. This way people can install an upgrade and Komodo
> should just work with the new .so, assuming no compatibility breakage.
> I wouldn't say there's too much duplication -- you just have to
> implement a callback class to handle the ruby-debug events.

By duplication I meant several different extensions for ruby-debug-base
with the same aim.

I would like to implement DBGp (ruby-debug-dbgp?) extension for
ruby-debug-base in the future if nobody else do so in the meantime. That
would be easily utilized by any frontend then. Currently Markus
Barchfeld implemented ruby-debug-special_xml_based_protocol extension
for ruby-debug-base which is also pretty frontend-independent.

I think that ideal state would be to have one debugger backends central
utilized by all frontends and all peoples from frontends would work
together on those backends. E.g. in the Rubyforge's debug-commons project :wink:

        m.

is much more complete than Komodo's. If you have examples of other IDEs which offer comparable features, we genuinely would like to know. I've just put online a short article which may help you when evaluating Ruby IntelliSense. I would honestly be very grateful for any reports on similar capabilities which you may find in other IDEs.

Well the "auto-completion etc." support in Eclipse DLTK looks to be very good. So maybe you could compare your product to it.

Regards,

Peter

If you need semantic highlighting in Ruby code, then you're doing something wrong semantically. Ruby code should generally be short and sweet and well organized into lots of files. The code blocks should be pretty self descriptive. Semantic highlighting defeats the point of syntax highlighting: the ability to see mistakes by color!

ยทยทยท

On Apr 14, 2007, at 10:05 AM, Tim X wrote:

Todd Werth <twerth@infinitered.com> writes:

I think one of the real potential benefits of a more sophisticated IDE is the
ability to move from basic syntax highlighting of code to something more like
semantic highlighting of code. While syntax highlighting is nice, syntax is
usually only an issue when first learning a language. Once you have experience,
help with semantic issues is probably more beneficial.

Tim

Eric Promislow wrote:

[...]

I would like to implement DBGp (ruby-debug-dbgp?) extension for
ruby-debug-base in the future if nobody else do so in the meantime. That
would be easily utilized by any frontend then. Currently Markus
Barchfeld implemented ruby-debug-special_xml_based_protocol extension
for ruby-debug-base which is also pretty frontend-independent.

I think that ideal state would be to have one debugger backends central
utilized by all frontends and all peoples from frontends would work
together on those backends. E.g. in the Rubyforge's debug-commons project :wink:

        m.

We'll be shipping the full code for the dbgp-based debugger in the
next beta
for Komodo 4.1. You'll need to check the license before you reuse
it. The
current Ruby debugger allows reuse under the same terms as the Ruby
license,
and I expect that will continue.

Thanks for the info Eric. I would contact you before doing anything related to dbgp-based debugger about possible cooperation. The debug-commons is young but in the future we would like to get together as much ruby-debug works as possible.

  m.

PS: I think that DLTK people also doing something similar, dbgp based ruby-debug.