Skip to content

Instantly share code, notes, and snippets.

@moonglum
Created July 24, 2012 20:19
Show Gist options
  • Save moonglum/3172393 to your computer and use it in GitHub Desktop.
Save moonglum/3172393 to your computer and use it in GitHub Desktop.
Ruby Rogues 40 - Text Editors and IDEs

These are notes I have taken while listening to episode 40 of the Ruby Rogues. If you find a mistake, please feel free to send me a pull request.

Panel

  • James Edward Gray II: Uses TextMate. Teaches himself emacs.
  • Avdi Grimm: emacs
  • David Brady: emacs
  • Gary Bernhardt: vim
  • Josh Susser: TextMate
  • Charles Max Wood: vim

The Discussion

  • Josh: "An IDE is soup to nuts everything you do programming in one place. Smalltalk had a really crappy editor, but the IDE features made programming in Smalltalk great. The focus of a text editor is 'Hey, we are editing files'"
  • Josh: "Both LISP and Smalltalk had great IDEs, and the teams stole liberally from each other."
  • Avdi: "There was a Smalltalk IDE, which is actually kind of Smalltalk itself. Same for LISP. [...] Traditionally they were bound to a single programming language. It's getting to be less that way. [...] That was one of the things that turned me off from IDEs."
  • Josh: "I need to amend my definition of an IDE: It's a crutch for people using Java so that the language is usable."
  • Avdi: "An IDE is the idea that code is generated magically for you and it will work."
  • Charles: "A lot of the time what they [IDE users] tell you, are things like auto completion, pick up errors, build in debuggers, refactorings and some of the tools that are build into it. But I have yet to find the thing that I can't to with either Vim and a plugin or the command line doesn't do."
    • David brings up CTAGs as an example and the principle of "know you editor" from "The Pragmatic Programmer".
    • He switched to Vim from an IDE: "I came from this environment where the tool did everything [...] it was like 'Borg, we assimilate all your tools' and I went to Vim and it does NOTHING and it does it very FAST and it does it very EFFICIENTLY. And if you want to anything else GO SOMEWHERE ELSE. And then I went to emacs and they were like: 'Welcome home child, we can subsume everything. We have a web browser right here in the text editor. Let's Go!'"
  • James, about different philosophies while coding: "Do you type 'end’ in your editor? I never type 'end'. But some people do, they always type 'end'." David never has, Gary has typed every single one.
  • James: "Some people are like 'Configuring your editor is like crafting your own lightsaber'"
    • David thinks that Vim is like a toolbox, and if you use another one's Vim, you can. With emacs it's different, it's like a workshop.
    • Gary doesn't like the analogy. Vim is more like a chainsaw, and the last thing you want in a chainsaw is controls that are not the controls you are used to, because then you will cut your hand off. emacs is "more like a chainsaw that has other chainsaws inside of it and shoots them in random directions all the time."
  • Gary switched from emacs to Vim: "emacs is an absolutely crap editor, but it's a really good programming environment. It has everything in it and when you get down to programming in it, emacs is so nice, and vim is so awful. I just say 'save-excursion'"
  • James thinks that people like Vim for its out of the box experience. Where Vim hurts is the whole Vim-Script thing. Would you rather learn LISP or Vim-Script? Gary agrees.
  • Brad thinks that you have to know Vim and that it's not optional. But he "rather picks up a blank emacs than a blank vim. And I sum it up in one word :nohlsearch"
  • James thinks that "TextMate is very emacs-ish in the way it does a lot of things. And I would say one of the major advantages of TextMate is: you can basically script the whole thing in Ruby. It's one of the reasons I fell in love with it."
  • Charles thinks that the advantage of vim and emacs is that they are keyboard centric (opposed to TextMate and SublimeText). James is surprised by that argument, because he uses TextMate all day and never touches a mouse.
  • James, Josh: TextMate's great advantage is, that you can use the regular Mac keys.
  • Avdi: "I'm kind of the opposite: For me the editor commands are more important than the OS commands." He used the same configuration and behavior on Linux, Windows and Mac.
  • Avdi: "People make the joke about emacs being and operating system, but it's not a joke. I mean it's not an operating system, but it's an operating environment. [If you chose it,] You want this programmer's operating environment where things can be consistent across operating systems."
  • Avdi: "One of the things with emacs is that you should never have to copy it to your production server. Because it has one of THE most mature editing system... Tramp Mode has been in development since something like 1996 and it's very mature. Basically you point it at a server and it figures out which technique is available to edit things remotely there."
  • James tends to avoid prepackaged systems, because customizing the system teaches him about the editor. Vim Golf taught him a lot.
  • James doesn't like the naming in emacs like tramp and hippie expand. Makes it hard to look it up. He also thinks that it has a lot of very stupid defaults, but "emacs has a lot of build-in documentation. It's kind of like Skyrim, where you have all those books and could read for days."
    • Avdi: "What I really like about emacs is that it's very introspective." You can for example let emacs explain you what you just did with your keystroke.
  • Gary: "What you see there is the fact that emacs is older than most or all of us, apart from maybe D. Brady. It's a very old system, and it has changed. And these two editors have backwards compatibility rules in them that are so strong compared to what we're used to. And in fact – I don't think that most people realize this – but emacs is not on Version 24. emacs is on version 1. That 24 is the minor version – it's emacs 1.24. That tells you how little they break backwards compatibility."
    • Charles: "Yeah. It's because when Richard Stallmann tells you to 'GET OF MY LAWN', people get off his lawn: 'NO NEW FEATURES!!'"
  • Josh: "I think that playing to that lowest common denominator [of computer systems] is what makes vim and emacs ubiquitous. But I also think it's what drives me mad about trying to use them."
    • Gary: "Even in Vim I encounter situations where I'm CPU-bound, just by editing text to moving around. The idea of using an editor that is slower than Vim makes me already frustrated – just thinking about it. So for me it's all about speed and the fluidity I can edit text."
    • David thinks that the way we edit programs is still by editing text, so these "old tools" are still appropriate.
  • James likes the tight Unix integration of Vim and emacs.
  • James: "Most of us have used multiple editors and admit that we do that in different situations. Even admitting that you are a TextMate guy or a... whatever... When I log into the server, I use Vim."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment