6 ms·
The power of emacs is also it's biggest flaw - it's a tremendously powerful piece of software but it's hard to master. I think it's a matter of discoverability
by mixmax 15y ago
The power of emacs is also it's biggest flaw - it's a tremendously powerful piece of software but it's hard to master.
I think it's a matter of discoverability.
A simple program such as Microsoft paint delivers a nice inital experience - my mom will be drawing moustaches on her pictures in no time. The reason for this is that it has great discoverability: Click on the little pencil and start drawing. Nothing to know, nothing to remember, just start using the program. This, of course is also it's biggest drawback - as the complexity and possibilities of a program increase it becomes increasingly difficult to create a simple GUI.
If you move up to something like photoshop you start to reach the limit of what a graphical user interface can deliver. It's hard for a beginner to just sit down and start. There are masks, layers, palettes, and all sorts of other things to master before you can really use the program the way it's meant to. There's still discoverability - you can actually learn photoshop without a manual, just by clicking around. But it comes at a cost: A lot of options are hidden behind two, three or sometimes four mouseclicks. So you have a program that's hard for a beginner, but not streamlined enough for an expert.
Emacs is at the other end of the scale. It has basically ditched the crutches that are the graphical user interface, which makes it a great program for experienced users that know exactly what they want to do and how to do it. But it has no discoverability. If you don't know how to perform an action emacs won't give you any clues(1), and it won't tell you what it can or can't do. An often heard remark in regards to emacs is "Wow I didn't even know you could do that".
(1) Yes I know there are MAN pages, manuals, etc. but they don't count. I often get better results from a simple Google search.
- kiba 15y agoThe power of emacs is also it's biggest flaw - it's a tremendously powerful piece of software but it's hard to master. I think that's wrong. It more having to do with emacs having old arcane UI convention that doesn't make sense to a modern user. Where is my copy and paste? It's not C-c C-p? Save is C-x C-s? WTF?
- mixmax 15y agothat's exactly my point - emacs doesn't put emphasis on the UI at all as you point out. If you can be bothered to learn its, as you put it, arcane ways then it's tremendously powerful tool. But my mom wouldn't stand a chance.
- yomomma 15y agoyomomma so dumb she bought a white emacs at the parking lot
- kamaal 15y agoAnybody's mom need not has to be as proficient or even use Emacs as much you or I need to be proficient playing a violin or a piano. This also means musical instruments have to be designed to be optimal for musicians who play them regularly not for general amateurs like us who play them once in a while. Same for a code editor. They need to be optimized for programmers not general masses.
- gwern 15y agoWhat fraction of the M-x commands and modal functionality (to say nothing of the Lisp functions) are covered by any CUA binding (or whatever C-c C-p comes from)? If a user turns on M-x cua-mode, do the discoverability problems instantly all go away?
- espeed 15y agoEmacs is about muscle memory -- after a while, it just flows.
- rdtsc 15y agoYes. If you stop to think about what the key-binding is for the command, you are not using emacs efficiently. Interestingly I would not even be able now to teach someone what the commands are without having an editor open, as I don't really remember them, only my fingers remember the sequence. It is like my brain has built a macro for the command and sent the actual code to the fingers, so I don't have to think about it.
- kamaal 15y agoHow is this any different, like using any tool used by any profession by a professional frequently. Programmers, Musicians, Carpenters, Chef's, Drivers and almost everyone in those lines use their tools frequently enough such that their usage is committed to muscle memory and not the usual think-act-think cycle. That's also because most problems are matched to solution patterns. You might have seen this while working with the programming language you have mastered. If there is syntax error, you generally don't read the entire error message. You just ideally read the template and the 'fill-ups' in the template and the line number. You go straight without bothering much and fix it. Same with an editor. There are some things that you do so frequently, its actually better and efficient if the editor enables muscle-memory use cases than Apple product's kinda UI design. Its precisely this 'problems matched to solution patterns' thing that will some day enable us to do drag and drop programming. There will ready templates for each problem each of which will match a solution pattern. We will just parameterize the templates. To an extent this is already there auto-complete, macros, template driven programming etc. But in future we may see full scale stuff like this.
- rdtsc 15y ago> How is this any different, like using any tool used by any profession by a professional frequently. It is not. However since it is an editor, it can be a tool used by a number of professions -- a writer or a programmer. What it improves is text editing capabilities. How does it improve them? It help you keep your hands on the home row. Not saying that vi doesn't do that, it does too. So they can both work. One can argue perhaps that emacs' key combinations are harder to memorize but eventually they are easier encoded into muscle memory. > To an extent this is already there auto-complete, macros, template driven programming etc. But in future we may see full scale stuff like this. Interesting point. I think there is a larger discussion point in there. In general that hasn't happened and wizards, macros and templates still haven't replaced programmers. Business, non-programmer, programming languages, built from drag-and-drop components have been dreamed about since COBOL. And it is funny, but it still hasn't happened. The idea was that instead of hiring programmers, managers would just encode business rules in an easy language or environment and bam! mix in some AI and they are done.
- einhverfr 15y agoThree words that describe why not Emacs: "Inner Platform Syndrome"
- calibraxis 15y agoWell, F2-F5 is how I save a file. ;) I just push my fingers up and mash any of those keys. Actually there's an interesting advantage — Mac and Linux differ on using control and command keys. I'm constantly switching between the two OSes using VMs, and fairly awful things happen when my fingers get confused. Whereas there's no confusion between emacs and either those environments. For cutting/pasting, Emacs uses a clipboard which remembers a bunch of things, not just the last thing you copied/cut. So at least you gain something to compensate you for initial frustrations. (Though I saw someone use a Mac program which improves the Mac clipboard in this direction.)
- rbanffy 15y ago> old arcane UI convention that doesn't make sense to a modern user If you are unhappy with the shortcuts, you can buy a Sun Type 7 keyboard and have keys dedicated to cut, copy and paste. I never tried to bind the keys to the Emacs functions, but I am quite sure it must work.
- ams6110 15y agoIt has basically ditched the crutches that are the graphical user interface Because it pre-dates the GUI. Emacs was written for VT-100 terminals and the like. As far as discoverability, once you learn about apropos you're well on your way.
- cema 15y agoFrankly, apropos is only the first step. But yes, the traditional self-referential nature of lisp functions, variables and other entities helps a lot.
- calibraxis 15y agoI sometimes wonder how Emacs would look if a lot of blue-sky resources were poured into its foundations.
- cturner 15y agoPlease go on - what odd ideas came out wondering about this? I'm tinkering with emacs at the moment because I like the lisp-as-foundation idea. Thoughts I've had this morning: * Make emacs more useful as the driving-panel for a multimode monitor setup. Launch a generic client window, and then post data to it as you liked (web browser, text stream, graphical) * Structured document production system. I'm impressed to see that you can now get different size, colour, face fonts in a major mode. * Iceberg. I keep playing with a concept where you take the Bloomberg-style interface, and then implement this to drive your computer. I think Emacs would be a good starting point for this. Several big-investment ideas I've had turn out to already exist: * Make it nice to drive webkit from emacs. (maybe not nice yet - rough edges?) * visual debugging of java
- swah 15y agoA life completely dominated by Emacs.
- cema 15y ago
- twstws 15y agoThis is argument shows up in most threads on Emacs - "sure, it's powerful, but that is actually a flaw since it takes such a long time to master". The problem with this position is that you don't need to master Emacs to make productive use of it. No-one has mastered all of Emacs. That's not the point. The basic text-editing functionality in Emacs is completely discoverable via the menus. If it takes you 30 seconds to learn how to use Notepad, it will take you 60 seconds to learn how to do all of the same things in Emacs. At that point, your productivity on Notepad has plateaued, but you've just scratched the surface with Emacs. After that point, Emacs rewards careful study. It may be faster to find a quick fix to a specific question with Google, but investing 30 minutes with the built-in tutorial will bump you up from Notepad-like productivity that will pay off the time invested in a few days. Most proficient Emacs users don't get that way from devoting weeks of study before they start actually using it. It's an incremental process. You (quickly) get to basic familiarity. After a while, you notice some tedious thing you'd like to automate. So you find the next trick or tool to add to your repertoire, and now you're a little bit more efficient in your coding. Repeat the process over a few years, and slowly you 'discover' more of the power that's available to you. It's true you often get the "I didn't even know you could do that" response in this process. But after you've run into that a few times, you internalize a more powerful idea: "I know I can do this, and now I will find out how".