|
|
|
|
|
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. |
|
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 :)