Ruby creator Yukihiro Matsumoto gave a presentation How Emacs changed my Life in which he explains how Emacs influenced him personally and how it influenced the programming language he created. Here is his summary:
- Emacs taught me freedom for software.
- Emacs taught me how to code.
- Emacs taught me the power of Lisp.
- Emacs taught me how to implement a core language.
- Emacs taught me how to implement a garbage collector.
- Emacs helped me to code and debug.
- Emacs helped me to write and edit text/mails/documents.
- Emacs helped me to be an effective programmer.
- Emacs made me a hacker.
- Emacs has changed my life.
7 thoughts on “How Emacs influenced Ruby”
I suspect Emacs is harder to quit than most opiates. I developed a case of Emacs-pinkie so bad my hands would go numb. I couldn’t type for over a month but my craving for it was so strong I used that time figuring out how to control it by voice instead.
I guess it’s not surprising that Emacs is my favorite editor and Ruby is my favorite language – seems they share a deep spirit!
The editable editor. It’s just raw power.
EMACS taught him how to write a garbage collector? If I start scratching my head over that one, I’ll never stop. But evidently it didn’t also teach him why [not] to write a garbage collector.
Can anybody with more familiarity with the emacs source help me understand what Matz meant by slide 21 (regarding emacs lisp) “Embedding integers in pointers” or slide 45 (regarding Ruby) “Integers are coded in tagged pointers”? I have no idea why somebody would store an integer in a pointer, or even what that would mean. I don’t see any likely file names ending in .c, and I know better than to grep for “int” in a directory full of C files where I could look for this. Any help is appreciated!
Also, how can a well-maintained project like Emacs have mixed tabs and spaces ?
Matthew, If pointers only refer to even addresses then odd pointers can be used to store int by right shifting to loose the least significant bit. Look up the docs on writing native extensions to ruby.
As to whether the eye opener was this trick itself or the fact that such tricks could be played I don’t know.