[implementations-list] Maciej's from-scratch Vim emulation project (was: Transferring maintainership of Vimpulse)
On Thu, Jan 29, 2009 at 1:50 AM, Jason Spiro<[email protected]> wrote:
On Wed, Jan 28, 2009 at 6:14 PM, Stephen Bach <[email protected]> wrote: ...
I agree there are problems with viper, but I'm not positive replacing it wholesale is the best approach. In my experience, the more ambitious the project, the less likely it is to reach any milestone of usefulness. Viper is 13000+ lines of seasoned code, and it mostly works in its goal of pure-vi emulation.
I agree. It would be very hard to rewrite Viper from scratch. As popular blogger Joel Spolsky wrote:
"The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed. ... [Architectural] problems can be solved, one at a time, by carefully moving code, refactoring, changing interfaces. Even fairly major architectural changes can be done without throwing away the code. On the Juno project we spent several months rearchitecting at one point: just moving things around, cleaning them up, creating base classes that made sense, and creating sharp interfaces between the modules. But we did it carefully, with our existing code base, and we didn't introduce new bugs or throw away working code."[1]
The books "Working with Legacy Code" by Michael Feathers and "Refactoring" by Martin Fowler, and the SourceMaking website[2], talk about how to refactor. The free PDF ebook "Object-Oriented Reengineering Patterns"[3] also talks about dealing with old code, though I think "Working with Legacy Code" is better.
...
- You seem to know what you're doing, so good luck. I'll follow your work, and when vimp / vimpersonator is ready, I'll try it. :-)
Yes; if you go ahead and write it, then when it's ready, I too will try it. Good luck.
-Jason
^ [1]. http://www.joelonsoftware.com/articles/fog0000000069.html
Hi Maciej, I was discussing other vi clones for Emacs with Alessandro over Gtalk today. I mentioned John J. Foerch's http://jjfoerch.com/modal-mode/ and your project. How many lines of code is Vimpersonator / Vimp / whatever it's called? How well does it work so far? Could you please post a copy in some public SVN/Git-hosting site online like www.assembla.com so we could see it? -Jason
participants (1)
-
Jason Spiro