Hacker News new | past | comments | ask | show | jobs | submit login
How Emacs changed my life (slideshare.net)
281 points by afshinmeh on July 24, 2013 | hide | past | favorite | 89 comments



75 slides to convey an impression which could have been spelled out in a paragraph or two...

Anyone with a slow connection knows what I'm upset about.

Needless to say, I quit when I was about 24 slides into the presentation.


Here's a transcript for you! (Made with Emacs, appropriately).

    How Emacs changed my Life Yukihiro "Matz" Matsumoto @yukihiro_matz
    1980
    I started programming
    BASIC
    400 steps
    1988
    I met Emacs
    on Sun-3
    shared by 200 undergraduates
    I tried Emacs
    but I never used
    Emacs was prohibited
    It consumed too much precious memory
    We are free to download free software
    We are free to read the source code
    I downloaded Emacs source code
    and investigated
    Emacs was my first Lisp interpreter
    I learned a lot about language implementation from Emacs
    Embedding integers in pointers
    Mark and sweep garbage collection
    Calling convention between Lisp and C
    I really understood how Lisp work
    I was fascinated by Lisp objects
    Lisp objects implemented by C
    Then I got a Sparc Station
    I started to use Emacs
    Emacs become part of me
    If I didnt like anything in Emacs, I could change it
    Emacs is totally configurable
    Emacs made me realize anything can be changed by a programmer
    It is total freedom
    I could edit without thinking key binding
    I didnt want to write anything without Emacs
    Programs, Documents and Mails
    so I wrote my own mail client
    named "cmail"
    in Emacs lisp
    It was my first non-trivial (Emacs) Lisp program
    I used it everyday
    1993
    I started Ruby development
    with influence from Emacs implementation
    Integers are coded in tagged pointers
    It uses simple mark andsweep garbage collector
    It uses similar object model to Lisp
    Then I put Smalltalk-like OO system on top
    For syntax, I wanted Algol/Ada/ Eiffel like one
    But as an Emacs addict, I needed a language mode
    auto-indent was a must
    Back in 1993, there was no auto-indenting language mode for a language with such syntax
    So I tried to write experimental ruby-mode.el
    fighting with emacs lisp and regular expression,
    for almost whole week
    I somehow succeeded to implement auto-indentation
    for a language with "end" delimiters
    If I couldnt make ruby-mode to work
    the syntax of Ruby would have changed
    to more C-like one
    too similar to other scripting languages
    as a result, Ruby would nothave gained current popularity
    Summary
    1. Emacs taught me freedom for software
    2. Emacs taught me how to read code
    3. Emacs taught me power of Lisp
    4. Emacs taught me how to implement a language core
    5. Emacs taught me how to implement a garbage collector
    6. Emacs helped me to code and debug
    7. Emacs helped me to writeand edit text/mails/documents
    8. Emacs helped me to be a effective programmer
    9. Emacs made me a hacker
    10. Emacs has changed my life
    forever
    Thank you


Sorry to disagree, but

1. The transcript of the entire slideshare presentation is below the slide. This is the case for every presentation on Slideshare and you can skim that if you are in a hurry.

2. I dislike content-stuffed powerpoint slides like most viewers would. It is usually recommended to keep the text per slide at a minimum even if the content needs to be spread across many slides.


>>It is usually recommended to keep the text per slide at a minimum

The point is, slides are teaching and not information recording/storing tools.

Most people forget this plain simple fact.

First principle of giving a presentation, ensure people focus on what you say and not on your slides.


Well, then he made the right choice, because he turned his presentation into a summarised subtitle of the story he was telling.


You're totally right, the transcript is quite readable 1/1 Powered by Rabbit 0.9.2


It seemed like a weird way to convey the content, but I found myself getting into it after a few slides, in a Zen sort of way :)

The author is Japanese, after all.

Of course, I've been a constant Emacs user since about 1990, so maybe I'm cutting him some extra slack. I love Emacs. It is so powerful and I feel that even after 23 years of daily use I'm still only touching the surface of what it can do.

In some ways Emacs has fallen behind the state-of-the-art, but the community is so vast and talented that they keep coming up with awesome add-ins to keep it competitive (thanks, guys!).


I too found the presentation much more interesting. The pauses in between each break/slide just gave me time to take in the significance. I think it was very appropriate here, and I'm glad I was introduced to this method of presentation. I think I'll use it myself some time.


It looks like the style is inspired by Takahashi Method: http://en.wikipedia.org/wiki/Takahashi_method

Though, he departs from it; with pictures and such.


would have rather read this presentation in Emacs in 1 paragraph than 75 slides.


What's awesome is how all of us can probably attribute similar life changes to various software discoveries.

Though it's much weaker than saying "emacs influenced the massively adopted programming language I went on to write"...in many ways, having a computer that, as is - was unable to run Doom - led me to understand good old autoexec.bat and config.sys, what extended memory and himem.sys were, mouse drivers, etc, etc.

On the emacs front - emacs lead me to realize how useless the capslock key was, rebind it to Ctrl on all of my computers, and forever make numerous typing mistakes whenever I use someone else's keyboard :) Worth it.

Good little read.


Turbo Pascal for me.

Until then I'd only programmed in BASIC and while I didn't why I knew there was something "off" about how unwieldy it felt, TP made me realise why.


I've never understood the caps lock/control switch; swapping the ctrl and alt on one side of the keyboard just feels so much more natural to me: left thumb is alt, right thumb is ctrl.


One of the best purchases that I have ever made is the Kinesis Advantage keyboard.[1] In fairness, I was tempted to return it shortly after purchasing, but opted to give it one full week of use before making my decision. It took a couple days to become comfortable using it, and now I can't think of myself using another keyboard. It's designed for optimal physical placement of ctrl, alt, delete, backspace, and spacebar, among other keys.

[1] http://www.amazon.com/dp/B000LVJ9W8


It seems extremely awkward to me to be regularly trying to hit alts with your thumbs. In a normal typing position your thumbs rest near the middle of the spacebar. That's quite a reach, under your hand, which is trying to hit another key at the same time. Definitely worse than hitting ctrl with a pinky, at least for me.


I have been using this setup for a while (see my reply to the parent for more details), and I have found it is more comfortable to curl thumbs than to have a pinky outstretched to the Caps Lock position. The problem I had with the outstretched pinky is that Caps Lock is only on one side of the keyboard, so I would have to contort my hand a bit to pull of some combinations, rather than be able to hit the modifier key and the other key with two different hands (as you are supposed to do with Shift for example).

>That's quite a reach, under your hand, which is trying to hit another key at the same time. Usually I use the modifier key with the opposite hand, so I don't run into this problem.


Yeah, tucking your thumb to hit anything left of the spacebar does not sound like a solid RSI-prevention game plan.

Caps Lock to Ctrl (when pressed with another button) and Esc (when pressed alone) is one of the most efficient workflow optimizations I know of, even for regular computer use.

The usual plug (for OSX):

    1. Set CapsLock to Control: 
         System Preferences 
         -> Keyboard 
         -> Modifier Keys... 
         -> http://i.imgur.com/joR19Hj.png
    2. Get KeyRemap4MacBook: https://pqrs.org/macosx/keyremap4macbook/
    3. Make this change: http://i.imgur.com/61lmhZ5.png


It's less awkward on a laptop keyboard than on a desktop, but it feels pretty natural at this point (I've been using it for 7 or 8 years now). Don't you have to use your thumbs to hit alt/meta anyway?


Yes, but for that reason I always prefer when things use ctrl as a modifier instead of alt. So I wouldn't want to do more alting.


Because where Caps Lock is now is where Ctrl used to be: http://en.wikipedia.org/wiki/Caps_lock#Caps_lock_vs._Control...


please remember that some people (me) really need to use right alt, to make letters such as `ąśćółężź`


If your system can be configured to have a Compose key, that is an alternative to Alt/AltGr for letters such as `ąśćółężź` No, I didn't copy and paste, I actually did use the Compose key on my keyboard to type them.


I still use the left alt for M-x, etc but, admittedly, you probably use alt more than I do.


I map ctrl to alt, and alt (meta) to the windows key. I also map backspace to caps lock. This is similar to the old lisp machine keyboards emacs started on. For example, the space cadet keyboard: http://world.std.com/~jdostale/kbd/SpaceCadet1.jpeg (Note the location of the RUB OUT, CTRL and META keys)


Wow, it really makes me happy to read about someone else who ended up in this field due to lacking sufficient ram! Now if only I had spent less time playing Doom and more time doing practical things with the computer, I might be in a different place now... but if my grandfather's computer had had more ram, who knows where I would be now!


As a Lisp implementation Emacs Lisp was pretty primitive then:

    * primitive GC
    * only dynamic binding (Stallman sold that as a feature)
    * no nested functions
    * no threads
    * no object system
    * no namespaces for symbols
    * implementation not independent from the editor
    * no TCO
    * slow
On the positive side it already had a simple byte code interpreter with a compiler for it and it was fast enough for some editing. Also, dedicated Emacs Lisp users managed to write some amazing code - given the restrictions.

The 'eight megabytes and constantly swapping' thing now is also of less importance. ;-)


Emacs, imho, will get a whole lot better when it runs on Guile[1]. This was a great presentation. I've been using emacs since the mid-eighties, it's so easily programmable that hackers are always hacking new things for it, so it keeps up with the latest fashion.

[1] http://lists.gnu.org/archive/html/guile-user/2013-07/msg0006...


Not sure about that. Guile is pretty old and messy itself. It's still my preferred Scheme, though. But that's mostly just because of familiarity and loyalty on my part.

There is already Edwin, which comes with MIT-Scheme. It's Emacs written in Scheme. It never took off, and most don't even know about it.


I love Edwin! It's my favorite Emacs implementation, even though I don't get to use it as much as I'd like. It even has a nice email client, IMAIL, written using a beautiful object-oriented style. Many years of Scheme wizardry lives in there, I need to spend more time studying it.


Whoa, is that really happening? It seems as if people having been talking about it/pushing for it for ages.


Does it have any of these things today? I ask of genuine interest. I've been bitten pretty often by the lack of threading.


Someone told me this is called "Takahashi method"[1]

[1] http://en.wikipedia.org/wiki/Takahashi_method


Ah, that explains Ruby's concurrency situation.

(It's a joke, I understand the difficulty involved with concurrency in interpreted languages. But given that both Elisp and Ruby are well-known for having trouble with threading, well, too hard to pass up!)


Actually there is nothing about interpreted languages which makes concurrency particularly difficult other than their history.

As an extreme example, you can run Erlang as an interpreted language and concurrency will not be a problem.


i think people are being too harsh on this presentation, and focused too much on the form factor and number of slides , instead of the actual content and message

i like the human factor in it, like how random and incidental stuff like being able to complete ruby-mode.el had such a high impact on ruby's syntax

and how learning a text editor inside out, eventually led to ruby, which let to RoR , most people would consider learning so much about emacs as a waste of time, for matz it helped him made ruby

this presentation is more about our human nature , this is i believe a great exmaple of when doing what you love is more important that doing whats important or what you think is right, i like it


Matz gave this presentation at LibrePlanet 2012 in Boston. This talk was the reaason that I decided to give Emacs a shot after being a Vim user for a couple of years. I have used Emacs every day since.

I talked briefly with Matz afterwards and he was very friendly and pleasant to chat with.

There should be audio of this presentation to go along with the slides somewhere, but I couldn't quickly locate it.


How do you feel about emacs? I am a long time vim user too. I want to hear some testimonies before investing in emacs.


I love Emacs. I'm much happier now that I live in Emacs. I work on a Ruby on Rails application at work and I use Emacs not only to write code but to run tests, use the rails console, use the MySQL console, bundle update, use git, etc.

Let's not forget the amount of customization possible with Emacs Lisp. Editing your editor is a pretty great experience. If you work with any other Lisps, Emacs is the editor to use.

I don't read my email in Emacs like some people, but I do use it for IRC and it works quite well.

I could "evangelize" more, but I've done enough. Give it a shot. Figure out which editor you like more. If you stick with Emacs, be prepared for a weird adjustment period where your hands get really confused and you start mixing up Vim and Emacs key bindings. :)


Couldn't have said it better.


I use both vim or Emacs depending on the task. Evil mode gives the vim key mappings and makes the transition mostly painless.

I'd also recommend using IDO. For me this is one of the best things about Emacs.


I'm just going to go ahead and say that if someone wants to stick with Emacs for all of their editing to learn the traditional Emacs key bindings and not use evil-mode.


The traditional bindings will eff up your pinky though.


The fact the Ruby syntax was mostly derived by what could be made to have auto-indentation in regex in a week in emacslisp is interesting. More than that, it's interesting that Matz seems to ascribe a lot of Ruby's success to it.

    If I couldn't make ruby-mode to work the syntax of 
    Ruby would have changed to more C-like one too 
    similar to other scripting languages as a result, 
    Ruby would not have gained current popularity
I've heard that Ruby's parsing code is especially difficult to replicate.


Self admittedly, I'm a newb at coding but I've tried emacs and am not a fan. I get the benefits of being able to debug and execute code immediately in the REPL, but I would much rather write code in sublime text or any other text editor. The last thing I want to do when I'm writing code is try to remember some obscure combination of keys in order to perform a simple backspace or copy and paste a line of code. Have not been convinced otherwise yet, maybe someone here can better enlighten me


That's an argument not against Emacs but against not knowing Emacs. The only issue with the keybindings is that they are different from other software. This should not be an issue! After all, an editor is probably going to be your most-used piece of software; spending a good amount of time up front to get even a small benefit over the long run will definitely pay off.

After a week or two of using Emacs, you will get used to all of the keybindings and stop thinking about them. They'll become entirely natural and instinctive. Sure, Emacs takes more effort to learn, but you should view this as a good thing: more powerful tools are always like that. An F1 car is also difficult, but nothing will get you around the track faster.

The problems you're talking about will go away after a bit of effort. Is it really worth throwing out all the additional power and configurability--advantages that will last for years--just to save yourself a couple of weeks of minor frustration?


>The last thing I want to do when I'm writing code is try to remember some obscure combination of keys in order to perform a simple backspace or copy and paste a line of code.

That makes me think that you really haven't tried Emacs. Backspace is just backspace. Copying and pasting is not too different than what you'd use in other software (but it can be, in many awesome ways). Do the tutorial, start using it daily, focus on the stuff you really need. The rest comes along on its own.


> Backspace is just backspace

Unless you're on the wrong terminal. (google "emacs fix backspace")

Besides, it's really a big deal that most applications in your system use one set of hotkeys, while bash and emacs use a totally different one.


What other applications are there on a system but Bash and Emacs? :P

Besides, you can tell GTK to use Emacs-y keybindings rather than the ‘standard’ C-v, C-x, C-c.


> What other applications are there on a system but Bash and Emacs? :P

I remember the days when it was just sh/ksh and vi in any commercial UNIX flavor.


The reason for Emacs using a different set of key bindings (C-u catches me all the damn time) is that Emacs had its genesis outside of Unix. Emacs keybindings and the endless crusade to force "info" as a "man" replacement all stem from RMS's sad devotion to an ancient religion (ITS).


>Unless you're on the wrong terminal.

I know... how often do you find yourself in such a situation nowadays, though?


Out of the gate, Emacs feels clumsy and frustrating compared to ST or any other more standard text editor.

Where emacs shines is when you start to micro-analyze your text editing process and learn how to optimize it with emacs.

Until you get to that stage, though, which isn't always the beginning for many - emacs probably isn't for you.

It's not going to make you edit text faster just because you use it - you have to actively study and look at new ways of editing. Watch an emacs master at work, it will blow your mind.


Right. This is the part that is a waste of time. How much time do developers spend typing in a given day inside their text editor? Maybe its 1% of their workday? The vast majority of their time is spent thinking. I'm highly doubtful that using emacs improves the thing that matters- code quality.

Perhaps it is possible to be more efficient with emacs than Sublime or TextMate. Editing code 20% faster is not a convincing argument for switching to emacs and the months of study it would require.

I find the hazing around emacs/vim to be peculiar. In what other arena would it be appropriate to tell a new user to study your software instead of making software that doesn't need to be studied?

disclaimer: I use emacs and sublime.


I spend about 95% of my time in my editor. I really can't fathom what you're getting at, here. For most developers I know, reading or writing code is what programming is. What are you doing with your time?


> The last thing I want to do when I'm writing code is try to remember some obscure combination of keys in order to perform a simple backspace or copy and paste a line of code.

What is obscure about using the Backspace key for Backspace? For copy and paste, you can feel free to remap Command + [XCV] to Cut, Copy, Paste if you desire. It is three simple lines to remap, or you can just enable CuaMode with:

    (cua-mode t)
in your .emacs file.


meh,how do you copy a line in sublime then ? You are not even using sublime.Spend couple of hours just learning the basic commands of whatever editor you prefer using.If your editor is any good you will have more to learn after the two hours.If you are worried about obscure key combinations learn vim,it's like a language for text processing.You can even activate vintage mode in sublime if you like the look of sublime. just my .02


I've been using Emacs for 15+ years now I think and I have always found the more complicated keybindings ("chords") for common things awful. However part of normal Emacs usage is configuring it to your liking, so learn about "M-x global-set-key" and mold Emacs to your liking.

(Or use evil-mode.)


To put stuff in perspective, before Emacs people were using Vi. Not VIM (what people who say they use VI use today), but real hardcore VI.

So with Emacs you had less strange key bindings to remember, and you didn't have to switch between the edit mode and the command mode.


There was some religion then also, that "modes" were too much for the human brain.


Don't worry, you're not weird. I used Emacs full time for 8 years and I've made occasional attempts to go back to it for various things. In my opinion it's awful, and I know a fair number of people who feel that way. In my opinion the most important thing about Emacs is that pretty much any language out there has some Emacs support, but in my opinion that just makes it an editor that's equally bad at a lot of languages :-)

It's not for everyone. If it's not for you, there are plenty of perfectly fine (even gasp better) alternatives.


Why did you use it for 8 full years if it is so awful? Maybe other alternatives for your use case were simply more awful, thus making Emacs the best tool for the job?


It's hard to go bad on this article given the source, no?

I find it more interesting for insight into Matz than anything about emacs. The idea that his text editor got him excited about programming is pretty powerful. Yes it could have been written in a 1 page memo, but who cares?


Calling emacs text editor is huge understatement.


I meant it with some irony. As in, "What appears to be a mere text editor..."


Anyone know if the Emacs source code still is a "good read"? …or has it grown too much


I read the emacs lisp code quite often. It's very nicely documented and easy to read in general.


Is there a video of this presentation somewhere? Would love to see it.


[deleted]


While it is almost always nicer to have videos attached to slideshows, I am quite sure we would miss out on plenty of excellent content if this idea was implemented. After all, you only see so many videoless slideshows here because your peers have found, enjoyed, submitted and up voted them...


He says he understood the power of Lisp, yet he made a non-Lisp language. :P I don't get people who make non-Lisp languages.


'then i started using ruby' subconsciously presses >> 'thank you.'


You misunderstood what he meant by, I started Ruby development.

That's the creator of the Ruby language. That's when he started developing it.


it's you, who misunderstood him



Note that this person 'started ruby development' in 1993...


Yeah that is what is most important here...


vim is amazing indeed. changed my life too.


    "Why do we have to hide from the police, Daddy?"
    "Because we use vi, son. They use emacs."


That was really really annoying and pointless. Why has this been up voted?


Because it's a poetic, hacker'ish celebration of something that all --err, some of us love so dearly.


Writing a single sentence fragment per slide for 75 slides does not make poetry.


You have to realize he was probably talking about each of those points. Slides don't translate well into reading.


Is this really the attitude you want to see in the community around you? There are pages full of other potentially interesting things just on this one site. Go find one that's interesting to you and be constructive.


This slideshow carries weight because it was written by the chief designer of the Ruby programming language.


So that some random pundit can leave an annoying and pointless comment on it.

I wonder why HN users feel so entitled to getting only the articles they find interesting. I haven't seen this point in Terms & Conditions, have I missed it?


> That was really really annoying and pointless. Why has this been up voted?

Ruby. That's usually enough. Don't you know that no startup is a proper startup without using Ruby and then rewriting everything once they hit the magical 10 user limit (extreme scaling)? It's agile, you know.


Hey so I'm usually the first person to point out when something sucks, but this thread is soo negative. What's up with that? Is everyone on HN all about Python and Vi or what?

I got into Ruby years ago, and I still think it's a lot of fun to write code in it. Sometimes I just need a break from C++ copy constructors and debugging -O3 optimized core files. Anyway, it's interesting to hear what influenced Matz in creating the language.

Since you don't seem to like the machine performance of Ruby (understandable), what do you prefer? Do you find that runtime speed is an issue for your application? What are you application(s)?


I think it's a tutorial in disguise - about how not to make slideshows.


because it has a cool title


I agree. This presentation sucks because it could be written as a simple paragraph of text. There is no need for slides. It was upvoted only because it's by Yukihiro Matzumoto, the author of Ruby programming language.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: