Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Software GUI Open Source

Richard Stallman Joins Discussion About Changing Emacs' Appearance To Make It More Popular (lwn.net) 153

Emacs "predates Linux, and was once far more popular," writes LWN.net, while adding that the text editor "has fallen into relative obscurity over the years."

Then it reports on a "mega-thread" on the emacs-devel mailing list about how to make Emacs more appealing and attractive to users: The discussion started with a post from "ndame" asking why Emacs is "so square"; the appearance of things like buttons could be improved with rounded corners, they said. Richard Stallman, one of the original authors of Emacs, seemed somewhat dismissive in his reply: "Perhaps we should implement a mode that puts cosmetics on Emacs so it will appeal to those who judge by the surface of things." But Stefan Kangas thought there was more to it than that:

I think it's unfortunate if we assume that this is all bells and whistles. Graphical design elements can also improve usability. I also don't know that it's helpful to assume that the rest of the world will take the enlightened stance....

He wondered if there was "any reason not to improve the default look". Stallman said that there are some technical barriers in finding someone interested in and capable of doing the work needed, but there is an overarching problem that needs to be addressed first:

The code to interface Emacs to X-based GUIs needs rewriting by an expert, and has needed it for decades. Until it gets that rewrite, changes in it are likely to break something.

Stallman did agree that the graphical design could improve usability, "but I have a feeling that the changes that would help are deeper issues than the shape of corners".

It was a long and interesting discussion, touching on the popularity of both Vim and Visual Studio Code, while another post questioned whether Emacs should even be prioritizing its menu bar and tool bar.

One post suggested "starter kits" to make the text editor more friendly to newcomers, another suggested making Cntrl-C cut-and-paste the default key binding, and one asked whether it was Emacs' terminology and keyboard shortcuts that might be confusing to users coming from Microsoft Word. "You are basically making a commitment to being or becoming a power user..." argued another post.

"If you just want to do 'casual' text editing emacs is a very weird choice in 2020."
This discussion has been archived. No new comments can be posted.

Richard Stallman Joins Discussion About Changing Emacs' Appearance To Make It More Popular

Comments Filter:
  • by SuperKendall ( 25149 ) on Saturday May 09, 2020 @06:46PM (#60042158)

    the appearance of things like buttons could be improved with rounded corners, they said

    As is traditional on Slashdot, I've obviously not read through the article linked before posting but I have to wonder if they brought up an example where this has already been done, for a very long time - Aquamacs [aquamacs.org].

    It's a version of Emacs adjusted to better integrate with the Mac, and is the version I use mostly... though I still also use the Terminal version of emacs (or I did before Apple pulled it the latest OS). Part of the adaption is given in the name, they rounded things off like the Aqua Mac theming from a while ago.

    But even before that, there was Lucid Emacs [emacswiki.org] (XEmacs) which spent some effort trying to make the GUI around emacs more usable on a windowed system.

    I don't really think a better GUI will help adoption. What would help is a drive to have really top notch IDE integration with the most popular IDEs, such that you could easily switch back and forth between the IDE and Emacs.

    Even now I still switch to Emacs pretty often because there is simply nothing more powerful (or performant) for working with examining and manipulating text. If I could just get decent code completion in it to the level the IDE has, I probably would use it regularly.

    • Ya, Aquamacs is great! Integrates nicely, adds the standard OSX key shortcuts, and a sack full of tiny quality of life features. The only thing missing for me is not being able to rearrange tab bars, detach them, or scroll through them with a scroll wheel. I recently had to work on a Linux VM, and it felt like seriously going back in a time machine to use the latest version of emacs there.

      • The only thing missing for me is not being able to rearrange tab bars, detach them, or scroll through them with a scroll wheel.

        Yes, it seems like there are a few ways in which the OS integration is lacking, but I also think it's generally pretty good...

        It's strange the scrolling doesn't work with a scroll wheel for you, for me that works with by bluetooth trackpad (using gestures) and mouse with scroll wheel, I could swear it also worked on my laptop with integrated trackpad. That would be pretty frustrati

    • Best not to mention xemacs to RMS. He still gripes about it.

      https://www.xemacs.org/About/X... [xemacs.org]

      • by DrXym ( 126579 )
        The funny part is that XEmacs wouldn't even be a thing if development / patch submission on Emacs had not been so glacial. And then Stallman did his best to sabotage that other project by preventing its use.
    • by quenda ( 644621 )

      Lucid Emacs (aka Xemacs) was my favourite operating system and IDE of the 1990s.

      But feel trying to modernise classic Emacs with rounded corners would be like adding cup-holders to a 1960s Jaguar.

      And Richard, please stop calling it EMACS. It is "GNU EMACS".
      (GNU-Emacs is Not Ugly, Escape-Meta-Alt-Control-Shift)

    • by raymorris ( 2726007 ) on Saturday May 09, 2020 @09:27PM (#60042570) Journal

      You'd like Emacs to be better integrated with an IDE.
      Lennart Poettering has the solution for you. Soon, both emacs and the IDE will be part of systemd.

      Of course, the Emacs port to systemd will get rid of some pointless old cruft like text files; Emacs will generate binary output in an OLE-like file format from now on.

      There has been much rejoicing on the official Emacs mailing list, because an init system was the one thing not yet integrated into Emacs.

      • As a prank I once configured a fellow colleague's account to start /usr/bin/emacs as the shell instead of /bin/bash. It was accidental that said colleague was a strong VIM supporter.

        Afterwards I realized that setup was in fact quit usable since you had the possibility to start M-x shell if needed. Plus you gained time for text editing use cases instead of logging in then typing emacs.

        Interestingly there would be just one more step to get rid of systemd and use emacs and .emacs as your init daemon instead.

        Ho

    • Problem is, this code base is way before common APIs designed to abstract the text component from higher-order functionality. Trying to gut it to add such functionality would take a refactor of much of it, and I really don't see that happening at the moment.

      Sadly Emacs' best contribution has been its hotkeys, which are now available most everywhere.

      • The hot keys of emacs never made any sense ...

        How do you even save a file again?

        An absurd hot key combination I gladly refuse to remember.

        • C-x C-s

          A lot of useful commands are prefixed with C-x, but after that, it’s just C-s. You could also use the mouse. I’m not sure how this is any more complicated than any other text editor.

    • by jtgd ( 807477 )

      What would help is a drive to have really top notch IDE integration with the most popular IDEs, such that you could easily switch back and forth between the IDE and Emacs.

      I never had any problem switching back and forth. I had it set so saving a file in Visual Studio would automatically reload in Emacs, and saving in Emacs would automatically reload in VS. I would do long edits in Emacs, and fix syntax errors during compilation in VS.

    • Even now I still switch to Emacs pretty often because there is simply nothing more powerful (or performant) for working with examining and manipulating text.
      Yes, there is. It is called vi or vim :P

      • by jimbo ( 1370 )

        Is vim really much more powerful than EMacs? I though Emacs Lisp was the most flexible of the two and VIM slightly more lightweight? Though for most regular uses they're comparable and it's just a question of what you're used to.

        In any case I don't understand the tribalism around the two, I have used both and they are both more than adequate, support advanced must have features such as macro recording and have scripting languages (Lisp/Vimscript) and have great performance these days.

        They are also both ligh

    • From Aquamacs' page:

      One advantage of it is: no matter what operating system you run Emacs on, you'll always get the same interface.

      This seems to contradict the other claims made on that page unless you can run Aquamacs on other operating systems than Mac OS X.

    • I don't really think a better GUI will help adoption. What would help is a drive to have really top notch IDE integration with the most popular IDEs, such that you could easily switch back and forth between the IDE and Emacs.

      It's fairly easy to be able to open a file in emacs from IDEs by setting up emacs server mode and calling emacsclient from the IDE, I have that set up for Visual Studio and Eclipse. It would be nice if it were easy to go the other way, but I haven't found any way to tell either VS or Eclipse to open a file from the command line.

  • by phantomfive ( 622387 ) on Saturday May 09, 2020 @07:00PM (#60042194) Journal
    It would be nice if there were an emacs version of this tutorial [vim-adventures.com]
  • that you get them. Lot's iof them and 99.99% are useless.

    There is not much to change about emacs's appearance. It's pretty minimal and does what should do. Making changes just mucks it up.

    I daresay that there is one way thatg the appearance could be fixed easily and have some effect. Pick better default colors. Perhaps something like green on black. At least some background that is dark. I think that will annoy fewer beginners.

    • Full disclosure: I've been an Emacs user since the mid-'80s. I do agree that the stark white default background is a little jarring; one of the first things I change after a new Linux install.

      Changing the editor colors is fairly easy to do via the Options->Customize Emacs menus. It can be time consuming as there are a lot of customizable parts of the interface that can have their color set. Some work could be done to these customization options easier to make---they are scattered around the customizatio

      • I rarely use the customization menu, as you pointed out it takes time to configure something.

        May be the Emacs maintainers should provide a single menu entry to enable or disable a dark mode preset.

      • Actually in modern emacs there is a way of using custom color "themes". So a lot of that work is done for you.
      • by fred911 ( 83970 )

        "Full disclosure: I've been an Emacs user since the mid-'80s. "

        So you obviously know how easy it is to control without a GUI and you've learned how to manipulate and control it before the use of a pointing device was a the easiest way to control a GUI. When you installed your first GUI, how many times did you find it much faster and more powerful to open a command parser to get work done. I assume you, like I basically all the time.

        The difference is that these days, the majority of users wouldn't know how t

  • by Aighearach ( 97333 ) on Saturday May 09, 2020 @07:05PM (#60042208)

    What is the use case for wanting new users? How does that benefit existing users?

    • by phantomfive ( 622387 ) on Saturday May 09, 2020 @07:20PM (#60042242) Journal
      In the best case, it means continued support and integrations for new things (Windows won't be around forever).

      In the worst case, it will mean constant changes in a backward incompatible way that doesn't make sense.
      • In the best case, it means continued support and integrations for new things (Windows won't be around forever).

        In the worst case, it will mean constant changes in a backward incompatible way that doesn't make sense.

        Those are both worst cases, it is a finished tool, integrating new things is a horrible anti-feature.

        Things that need to be updated, like syntax highlighting and language support, are already provided by scripts and updated out of band.

      • "Windows"? This isn't a homebuilder website, buddy.

    • How does that benefit existing users?

      What makes you think software development is about existing users?

      • How does that benefit existing users?

        What makes you think software development is about existing users?

        I don't, I don't care what "software development" is about.

        I think
        1) that the actions of the users are about themselves
        2) it is open source, we don't have to eat whatever is served, we can fork. There is precedent; see also Xemacs.
        3) if there are changes that are not about the existing users, the existing users will not adopt those changes. So while software development isn't about the users, the tool also isn't about the developers. Mostly because the tool is already completed.

        When emacs refused to make ch

    • It benefits existing users by keeping the user base at the same size or growing, and leads to additional people supporting Emacs and adding features, helping with migrations etc etc. If there are no new users then eventually the user base will decline to 1 - you, if you're young enough.
      • In what way does having additional people "supporting" emacs help existing users? The documentation is already complete.

        If the userbase declines to 1, why assume it isn't still working well for that user? Should they feel lonely, when they use the tool alone either way?

        These sorts of arguments make sense if it is an incomplete tool that will need continual changes to keep working, but that isn't the situation here.

    • What is the use case for wanting new users? How does that benefit existing users?

      Well, with more users come more contributors and more interest in fixing issues and improving the code base. Existing users benefit by getting new features, code fixes, support for new standards/protocols/etc, a community of people do discuss issues or get advice from, and so on.

      Unless you think Emacs has reached its perfect form and can stagnate happily, that is.

    • Well, depends if you want emacs to be the cobol of editors, except with no hope of a rush to find emacs programmers in 50 years. If nobody new is using your program it's just a slow wait till it's forgotten about entirely.
      • Well, depends if you want emacs to be the cobol of editors

        It seems quite apparent that's already the case.

      • Yeah, but that was already true 20 years ago, and even though it is still the COBOL of editors... like cobol, it is just as good at those tasks now as it was 20 years ago!

  • Redux (Score:4, Insightful)

    by kackle ( 910159 ) on Saturday May 09, 2020 @07:24PM (#60042262)
    Yes, and let's touch-up the Mona Lisa since her clothes are SO dated.
  • Late 80s joined a company that used Emacs (I was a long time vi user). Quickly found out that Emacs was really good at telling you how to get help. But it really sucked at telling you how to get out of the help system (keep in mind, this was vt100 days). After the third or fourth time I ^z, then killed the Emacs process just to get out of help I gave up on it.

    And I've never tried it since.
    • Yeah, you have to figure out the concept of buffers before it gets easy to move between files, including help files.

      But if you'd just run it on a GUI system, you'd have pull-down menus with most of the commands, it follows traditional practices of making features discoverable.

      I've been using it 20+ years and I doubt I even known 10 "chords." Not only are there pull-down menus, but I can press M-x and it opens a command buffer with tab completion, so I can discover commands there too. Once you're famiiiar wi

    • by dfghjk ( 711126 )

      keep pressing Esc until you hear a beep, then :q!

      Oh wait, that's vi.

      The eternal argument between which is better of the two worst choices continues...

      • My sympathy has always been with Emacs, because one of its reasons for existing is that they realized modal editing (i.e, vi) is bad because mode switching is costly.

        That's pretty much the main results of behavior psychology in user interface design. No one would design a cockpit where a stick or button would do one thing if you were in mode A, but another thing if you were in mode B or C. It'd be an aviation disaster waiting to happen.

        But there's still everything we've learned from experimenting with UIs s

      • by jimbo ( 1370 )

        That's the way of tribalism, we're wired for it because of survival but apply it to everything.

      • by skids ( 119237 )

        It won't help you with a buffered mode like help, but in emacs if you're stuck someplace, keep hitting ^G, it'll get you out of a lot of things.

        Incidentally ^G is the ASCII beep character. So you get to beep at your program when you are confused just the way it beeps at you when it is confused. Kinda makes sense.

    • I initially preferred a customized version of Emacs that was installed on our school's computers, because it would stay in one mode. I got the concept of vi's modes, but my first impression was that whenever I touched the side of the screen with my cursor, it would switch me back to a different mode without me asking. I think this was just a thing on earlier versions of vi. Unlike Emacs, vi is widely installed on even the most bare-bones *NIX systems. I was braced for misery when I knew I'd have to use

    • I had similar experiences ... I gave up and went to vi.

  • Besides appearance, having a "usual undo" instead of the current "command stacking algorithm" would help to make Emacs more popular.
    • See at the top of the window, there is a little row of words, "File," "Edit" and some more.

      Click Edit. Click Undo.

      Next, integrate a version control system, and use that to track your change history. You should not use undo for more than reverting simple, immediate typos.

      It isn't like with an image editing program or something where you have to try something first to see how it looks, and will need to routinely revert and redo lots of steps.

      • You hear that, OP? it is you who are wrong to for wanting it. Did you insert a single character after accidentally selecting the entire file and deleting it? Too bad, you should have committed your work.

        (Yes, mid-work, with all tests failing if it even compiles. So what?!)

  • Xemacs is not GNU Emacs

    GPL is about preserving code. Unless you're evil wicked Xemacs, in which case you should just die a horrible rotten stinking death.
  • in 2020 Emacs does things that are tricky or non-existent in other popular editors.
    For instance commands and completion (M-x), help online (apropos, describe-..., ...), Macros to repeat a sequence of actions/commands (C-x ()), repeat (C-u n), the amazing and smart find/replace incremental/case aware... (C-s, query-replace..., ...), split window in 2+, horizontally and vertically! (C-x n, ...), view/switch buffers (C-x (C-)b...), high level of customization (.emacs,...), creating a special behavior (lisp..
    • Rectangle yank (cut-and-paste). I use this daily. I’ve never seen it implemented in another editor.

      • by stabiesoft ( 733417 ) on Saturday May 09, 2020 @09:44PM (#60042602) Homepage
        Rand editor had this in the 70's. I think they "invented" it. I used it up until a few years ago when I just could not get it to port anymore. I built a clean sheet implementation of it I am so married to it. Bonus was the new version I built runs on both x86 and arm architectures.
      • EmEditor has "rectangular select" cut/copy/paste.

      • Rectangle yank (cut-and-paste). I use this daily. Iâ(TM)ve never seen it implemented in another editor.

        I use that daily in vim.

        I remember seeing it in an editor called "Brief" in the early 90s.

      • Rectangle yank (cut-and-paste). I use this daily. I've never seen it implemented in another editor.

        JOE has rectangle mode. It's easier to use than emacs or vi, and smaller than both.

      • I've definitely seen it in several editors. For example the editor Joe has this feature, called "rectangle mode".
      • by tippen ( 704534 )
        Sublime Text does this. Very handy.
  • I didn't even know emacs had a GUI in X. As for why I don't use emacs on command line - Nano has done everything I ever wanted it to, and it was quicker to figure out. What could make me use emacs? Break nano.

  • by biggaijin ( 126513 ) on Saturday May 09, 2020 @08:34PM (#60042436)

    EMACS is a tool for professionals who know what they are doing. It is extremely powerful and useful, and can be very destructive in the hands of someone who does not know what they are doing, just as a big table saw or other power tool can be dangerous. The time spent learning to use it is well spent, in my opinion. But, if you don't want to spend some time learning how it works and how to use it, you should stick to Gedit and just skip EMACS. Welding a glossy shell over the sharp-edged working parts of EMACS will not make it any more useful for the people who need it.

  • ....the entrenched EMACS user! I don't know that with so many other choices these days, that there is anything specific about it which would make it the right choice for Joe Newbie to jump on the bandwagon of. There are plenty of other editors at all corners of usage with better GUIs, more intuitive look-and-feel, better integration or support for whatever you might be using/doing, etc. So sprucing up the GUI is probably not going to be what the hardcore old-school EMACS user wants or needs - nor will it be
    • I learned emacs in the early 1985, because I was working on DEC, PC, and Linux workstations and you could get it for all of these. I am still using it every day, and I am still learning tricks. If I started on a new text editor, I would be reaching a similar level of expertise in 2055, when I would be 99, if I am still here and learning new tricks.
    • by nagora ( 177841 )

      ....the entrenched EMACS user! I don't know that with so many other choices these days, that there is anything specific about it which would make it the right choice for Joe Newbie to jump on the bandwagon of. There are plenty of other editors at all corners of usage with better GUIs, more intuitive look-and-feel, better integration or support for whatever you might be using/doing, etc.

      For me the main thing is that I can use Emacs for everything from coding to writing a letter or email, to editing SVG and use the same programming language to write macros or extend the editor itself. It's a universal tool. That means that there are specialised tools which are (marginally) better but I would have to learn four or five of them to cover what I do on a regular basis with Emacs. And the interface is just perfect as it is. GUI's are, to be honest, shit unless you're doing something graphical li

  • Dired is THE feature that I can't live without. That one feature alone was worth the effort it took me to learn emacs all those years ago. Now I can't even tell you for the most part what keys do what. My fingers just know the way. There's a pretty good built in tutorial that is accessible simply by typing emacs and then ctrl-h and then hit t. Emacs X version, from what I remember, was always butt ugly. That's why I've always used emacs-nox.
  • by stikves ( 127823 ) on Saturday May 09, 2020 @09:40PM (#60042596) Homepage

    Exact sequence:
    C-x C-c
    sudo apt install gvim
    gvim

    Joking aside, a major reason vim is more popular is that the community adopted much earlier. There were many versions of VIM with modern UIs (gtk-vim, kvim, neovim, and many others). And it was also ported to javascript, allowing integration of many IDEs (including VS Code).

    It might be time Emacs community to look at making it more friendly to integrations. I know emacs itself can host other programs, but it might make sense to make it the other was around.

  • I don't use emacs but there are so many other text editors that are more 'typical' to choose from, like Konsole, what I use, for people who want that. Trying to change emacs would tick off its users and would not gain anything, since other text editors fill the need, its just wasted effort,.

  • by msauve ( 701917 )
    Ed, man! !man ed [gnu.org]

    joe [sourceforge.io] user here - Wordstar legacy)
  • If they want more people to use EMACS, menus that also show the associated shortcuts would be helpful for learning to get familiar. I doubt changing the shape of buttons will convince anyone to use it.

  • Why is a program's UI tied so closely to its functionality?

    Is there anything in, say, vim that demands it runs in textmode? geany that it runs in windowed mode?

    you people have put in a shitton of abstractions but haven't thought to abstract the most basic thing, the separation between functionality and appearance?

    is there anyone from the emacs coder team here i want to slap their face with an os/2 manual

  • An ascii porn startup screen, right?
  • IMHO Emacs icons are useless. They may be rounds, squares or triangles I don't care because I even don't look at them.

    Plus since the article mention some sort of convergence with others applications I would mention that a huge work to be done in terms of convergence would be about icons. Most of icons convey very few sense for a given application if not between applications.

    I would not propose to use kanji instead of icons. While if you follow this idea actual icons for applications would be like kanji inst

  • Easy (Score:4, Funny)

    by tanveer1979 ( 530624 ) on Sunday May 10, 2020 @03:47AM (#60043176) Homepage Journal

    Just use the vim source code

  • the appearance of things like buttons could be improved with rounded corners, they said

    Careful! Rounded corners are part of Apple's "look and feel" copyright. The only reason Windows gets away with it is because they had a deal with Apple.

    Careful! Rounded corners do not make for a cellphone-friendly UI, and will get your app or web site disfavored in Google searches by cell phones!

  • by nagora ( 177841 ) on Sunday May 10, 2020 @06:28AM (#60043446)

    I'm taking a break at the moment from a large TeX project I'm doing in Emacs. I use Emacs for almost all my writing - prose, technical, or source code and have done for twenty years. I can't remember the last time I looked at the menubar or cared about it or the "buttons" (whatever they are). The sort of usability that's being talked about here - visual usability - is of no interest to me as I don't use it as a visual editor in any real sense, nor do I see any value in doing so.

    One reason I hate Python is that it forces me to think about the layout of text in ways which are of no importance to the problem I'm working on. The TeX file I have open here at the moment probably classifies as a disaster-zone - I've not worried about auto-formatting paragraphs or line-breaks; all I care about is that the PDF that comes out the other end is beautiful and easy to read and navigate. For my own work, which no one else is ever going to read I just don't want to waste time thinking about the editor or whitespace or tabs Vs spaces or shit like that.

    It drives me nuts when the Emacs devs start talking about this sort of crap because it introduces changes to the codebase which need to be tested and then supported going forward but delivers exactly zero to me as a user; it's just people chasing the latest fashions in UI which will be different in five years time. The truth is that the best UI is usually the one you already know.

    • The TeX file I have open here at the moment probably classifies as a disaster-zone - I've not worried about auto-formatting paragraphs or line-breaks

      Ick, how can you stand that? And you're almost certainly reducing your productivity, because you're making it hard to read the source. Which isn't to say you should waste time thinking about formatting it. That would be a waste of time and brain cycles. You should grab a TeX prettifier, like latexindent, and bind it to a hotkey.

      For my own work, which no one else is ever going to read I just don't want to waste time thinking about the editor or whitespace or tabs Vs spaces or shit like that.

      Absolutely don't waste time thinking about it. Let the computer clean all that stuff up for you. This is what automation is for.

  • Emacs has had decades to develop a user friendly interface around its functionality and failed to do it. Stallman was even hostile to forks like XEmacs which went to significant effort to improve the graphical appearance and usability of the product.

    It's too late for anybody to care if they start fixing stuff now. The reality is that Emacs is arcane and ancient in so many ways that it would need an entire rewrite from scratch to catch and what would be the point? Maybe they should just develop a good Emac

    • by nagora ( 177841 )

      Emacs has had decades to develop a user friendly interface around its functionality and failed to do it.

      I think you mean that it's had decades to develop an idiot-friendly interface and has failed to do so. The interface it has is actually very good.

  • what color are we gonna paint the bike shed?

  • I use emacs. I disable all eye candy. It just uses up valuable screen real estate. That's for the children. Emacs is an editor for adults. I can't help it if all those so-called developers need their eye genitals massaged while working because they never grew up past the stage of brightly colored toys.
  • I love emacs and I’ve been programming with it for 20 years, even though I’m working in Windows as a game programmer. It’s still the best editor by far, but it has performance issues and getting the most out of it isn’t really possible right out of the box. Ivy, helm, projectile, etc. are so much better than the built-in systems. But you have to know what you’re looking for before you can fix it.

    Customization is only one thing that needs to be fixed. I program a bit of elisp, a

  • As a 25+ year Emacs user, I find it's not quite a word processor and not quite an Integrated Development Environment (IDE). I see myself using Word or Eclipse more often at work, only turning to it when I need a convenient plain-text editor, file system browser or operating system command-line utility, especially over a simple terminal.

    Over that quarter of a century, I've also found that it's better to stick with "standard" GNU Emacs. Emacs is extensible, and non-standard extensions can be useful at least

Real programmers don't comment their code. It was hard to write, it should be hard to understand.

Working...