Hacker News new | ask | show | jobs
by kamaal 5051 days ago
Some comments in this thread are hilarious. Light Table is a modern IDE meant to demonstrate some cool concepts that belong to this time. And people are asking can if they can have vim and emacs bindings.

If all you want is vim or emacs, then use vim or emacs. What is the whole point is asking Light Table to behave like them?

Light Table is supposed to bring in new ways of developing software. Dragging ancient usability concepts just because a few can't work with anything else isn't how you build a new product.

5 comments

Here is something else that belongs to "this time": the mouse and keyboard.

I do hope there will be some time in the future when we never have to type or reach for a mouse because our brains are the only I/O device. But until that time comes, we have essentially the same input mechanisms that we had when Vi and Emacs were invented.

In some ways, your point is a valid one; there are many, many features of these old programs that the Light Table developers should spend zero time re-implementing. However, editor bindings are a special case.

No matter how fancy the code editing interface is, in the end you still have to type out some code at some point. When the fingers hit the keyboard, many professional programmers have preferred and habitual ways of entering and editing text. In 10 years I might be using a text editor with flying swirling animations and cool animations that "zoom in" on an identifier into its definition, and so forth, but I won't be using it if it doesn't have Ctrl+c and Ctrl+v. Vim and Emacs keybindings are just second nature to many of the core audience for Light Table; it makes sense that those shortcuts are requested.

For further evidence that key-bindings and editing modes are acknowledged as universally useful things, regardless of origin, try typing Ctrl+E or Ctrl+A in any OS X text field. You'll jump to the end of beginning of the line, respectively. These are two of the many Emacs keybindings that are supported out of the box on every text control in OS X.

Now, to the last part of your point. I agree that these kinds of things shouldn't be the focus when developing a new product. When you're still just trying out ideas, you really don't have the time to implement every little feature request. However, when the thing you're developing is a developer tool, I think it behooves you to design and implement a rich plugin system as one of your first tasks. If your program and programmers have the Lisp nature, you almost do this without a second thought. But the payoff is big. If you can implement most of the program using its own plugin system, you're forced to design highly orthogonal primitives that play well together from the start. The end result is or should be that there's nothing a plugin author can't do that the original developers can do.

So if it were me writing this thing, I'd make sure to release a plugin system pretty early and tell everyone who wants to add Emacs, Vim, and Minesweeper to go nuts :)

> but I won't be using it if it doesn't have Ctrl+c and Ctrl+v

I would use an editor which makes copy&pasting a thing of the past very happily.

In my experience copy&pasting is a big part of the problem. Some people use it to think less about the given structure and duplicate code, others use it to re-arrange code. Both are tasks which an editor like light table might handle better.

I don't understand how something like copying and pasting could be obviated from a text editor. There are a million reasons you might need this functionality, and they don't all have to deal with poorly structured code.
>But until that time comes, we have essentially the same input mechanisms that we had when Vi and Emacs were invented.

Actually the mouse was not a big deal at all when Emacs and Vi were invented -- virtually not existent at the kind of machines vi and emacs were developed, and it was not taken into account at all.

You would feel differently if you were an avid vim/emacs user. There's no reason you can't combine the interactivity of Light Table with the key bindings from other text editors. The combination may prove more powerful, at least for those with the muscle memory for it.
The reason we want bindings similar to certain popular editors is because we have years of mechanical memory invested in them and for us it means better mechanical speed of interaction with the interface.

Keyboard bindings and general IDE approach are orthogonal concepts. There is no reason you can't have modern innovative IDE with familiar keyboard bindings.

Well, Light Table supports both vim and emacs bindings anyway.
Some system of shortcuts for doing everything with the keyboard would be nice though. Every time I move my hand to the mouse I'm losing time. I don't mind learning a new map, as long as it's as efficient as emacs.