From: Phil Jackson Date: 2006-05-01T08:25:37+09:00 Subject: Re: Ruby based editor On Mon, May 01, 2006 at 07:38:40AM +0900, Randy Kramer wrote: > On Sunday 30 April 2006 11:00 am, Phil Jackson wrote: > > Let me know your thoughts (which aren't allowed to include "do we really > > need another editor" :)). > > Ok, I won't ask that in quite that way, but: I think you may have mis-understood my question (or I didn't explain properly), what I was asking was more a design question than a general "I'm building yet another editor what do you think" question. As you took the time to write a response I'll answer you though (check bottom where I re-phase my query): > * What is your goal for this editor--is it a learning project or intended > to eventually be a "product" in some sense? Both, I'm very interested in editors and find myself downloading new ones as they arrive and playing with them (though I'm an avid Vim user). > * Is it to be as full-featured as Emacs or more like Notepad? Well, the idea is to write the base of the editor in C and have the API almost completely available to Ruby. So, theoretically, it could be as full-featured as Emacs or as simple as Notepad. ;) > If I was going to expend effort on an editor, I'd work on nedit. It is > written in C, is very featureful and fast, etc. It includes a C-style/based > macro language, keystroke recording to start macros, syntax highlighting, > autoindent, etc., etc., etc. To be honest I'd like to start from scratch and see what I come up with, secondly I _hate_ GUI based editors personally. What I was actually trying to ask was: The base will be written in C not in pure Ruby. I would like to know whether people think I would be better using C types at the core or Ruby types implimented in C. So, I can, A), write a basic editor in C and then wrap it up with Ruby using Data_Wrap_Struct() much like an extenstion would. Or I can, B), start from the beginning with rb_define_class() and friends thus relying on Ruby from the start. The advantages and dis-advantages that I think may exsist: a) advantages: * The core of the application would be instantly reconisable to a C hacker who has no Ruby experience. * If I decide it should be extendable by another language it would be a simple job. * Better performance? disadvantages: * I would have to impliment and then map things like linked lists meaning wheel re-invention. * more work :) * Can't rely on libruby for memory handling. So which one? Phil