Two Years With Emacs as a CEO and now CTO (2018)
fugue.co
fugue.co
"# I gave up on using Org-mode for schedules and to-do lists
I spent some words in the original post on using Org-mode for schedules. I gave up on using Org-mode for to dos and the like, as I have to coordinate many meetings and calls every day with dozens of people, and I cannot ask the rest of the world to adapt to my choice of tools, nor do I have the time to transcribe or automate moving things to Org. We are primarily a Mac shop, use Google Calendar etc., and the native Mac OS/iOS tools do a good job for collaboration. I also use a plain old pen for note-taking during meetings, as I find laptop/keyboard use in meetings to be rude and limiting to my ability to listen and think. Therefore I've largely abandoned the idea that Emacs/org can help me with my schedule or organizing my life. Org-mode is great for lots of other things too though, and is my go-to for writing documents, including this one. In other words, I use it largely in ways the author didn't intend, and it's great at them. I hope someone says the same of our work at Fugue someday."
Maybe because I gave up trying to configure emacs on my own and ended up with spacemacs + evil mode, thus overcomplicating org mode (and overriding some of the keybindings people use in tutorials) beyond use?
For personal TODOs, I still use SCHEDULED/DEADLINE in org-mode, but for anything via a calendar, Google Calendar is my read-write interface. I used a separate tool [0] to quickly read my calendars and populate a read-only org-mode file for my org agenda.
This puts my schedule in it's entirety in my org-mode agenda, but also has all the benefits of using google calendar.
A lot of my config at the time came from Bernt Hansen's fantastic open source org-mode config document, about organizating absolutely EVERYTHING in org-mode.
http://doc.norang.ca/org-mode.html
However, any time I needed to collaborate with someone else, this all kind of went out the window, not to mention I never really ended up using any of my clocking data outside of contract needs, which I didn't have nearly as much of as the original author of that config.
I still use org-mode tasks for personal tasks sometimes, especially since BeOrg (iOS, https://beorgapp.com/), Orgzly (android, http://www.orgzly.com/), and org-web (web, https://org-web.org) can get stuff to/from my phone, but otherwise I've just learned that dealing with multiple task systems (CRM, bug systems, trello, etc) is a fact of life and trying to optimize around it is an arms race I probably won't win. Turns out managing multiple systems still takes less time/friction than trying to shoehorn your own.
Something like Monolist (https://monolist.co) looks interesting, though.
EDIT: Added org-web. :)
So exporting, munging and re-typing is going to happen anyway. It's a bit boring sometimes, but using a good tool and then doing that is not more time than everyone agreeing on the least common denominator (emailing screenshots?) anyway -- and you get the speed/productivity benefits at the time when it matters most.
Strangely enough, about 3 years ago I nuked my huge library of custom configurations and complicated Emacs Lisp thingamajigs and just use vanilla Emacs (for the most part) now.
The one thing I can't do without is Paredit and ido, but other than that, its very much just a "can't be bothered" thing anymore.
Never got into org mode. Most people with big org files that I have met have a serious inability to let go, and their org file is actually just a giant burden and illusion about what they are going to do in life.
My organizational philosophy is do one thing at a time until each thing is done and never with a sense of urgency. When the thing is done, stop and think carefully about the next most important thing. Repeat.
And Emacs is an excellent tool to help you with that. Yes, it has a steep learning curve, just like any other professional tool.
Would you get into a cabin of an industrial excavator and complain about controls being un-intuitive? Or would you attempt to pilot a helicopter without proper training?
Why nobody ever said: "ah, the interface of an airliner is cumbersome, we need to make it intuitive for newbies"?
There is a strong correlation between the efficiency of a tool and the learning curve. The more efficient is a tool in the professional setting, the steeper is its learning curve.
Learn Emacs. But be prepared for a long (maybe a lifetime) journey. Be ready for challenges. I promise you - one day it will change your subjective view of the world.
No... not unless i had to.
But where does a coder find emacs gurus to teach them the ropes?
Maybe it can't do everything.
Also, There is company-mode. ;)
call it decentralized-autonomous-org mode.
https://en.wikipedia.org/wiki/Decentralized_autonomous_organ...
I now use Emacs and Slime for all Common Lisp development, for a lot of Haskell work, and whenever I am working remotely via SSH on a leased server or VPS.
Anyway, Emacs is fantastic but I don’t feel like I need to be all-in with one choice of editing framework.
What a great sentence which highlights a strength of Emacs: that it's natural for Emacs users to be able to extend it.
Delphi managed to bring that to the graphical desktop and I think had it they not screwed up with the price would have done much better.
(unless there are well-chosen customizable variables)
https://en.wikipedia.org/wiki/Emacs
>Reynolds, Craig (1992-02-10). Wiseman, David G. (ed.). "The Emac Bolio Name Koan". David G. Wiseman: Stories of Computer Folklore. A cocky novice once said to Stallman: 'I can guess why the editor is called Emacs, but why is the justifier called Bolio?'. Stallman replied forcefully, Names are but names, Emack & Bolio's is the name of a popular ice cream shop in Boston town. Neither of these men had anything to do with the software.' His question answered, yet unanswered, the novice turned to go, but Stallman called to him, 'Neither Emacs nor Bolio had anything to do with the ice cream shop, either.'
https://news.ycombinator.com/item?id=18319124
>gumby 8 months ago on: Talking to the Mailman – Interview with Richard St...
>The Flanders and Swan song ("I'm a gnu") was not a kid's song.
>I'm not sure if Emacs and Bolio was open when the editor evolved, but the text formatting program (like runoff) called "Bolio" was definitely named after the ice cream store (since by the time it was written Emacs already existed).
I wonder if there's any software named after Mary Chung's legendary Suan La Chow Show / Suanla Chaoshou?
https://www.yelp.com/menu/mary-chung-restaurant-cambridge/it...
https://en.wikipedia.org/wiki/Suanla_chaoshou
>Mary Chung's restaurant (鍾園川菜館, Pinyin: Zhōngyuán Chuāncàiguǎn) in Cambridge, Massachusetts serves a dish called Suan La Chow Show, which are dumplings in a spicy soy ginger sauce on top of a bed of raw mung bean sprouts. This popular dish is different from the suan la chao shou described by Fuchsia Dunlop, who studied at the Sichuan Institute of Higher Cuisine in Chengdu. Although somewhat similar, Dunlop's recipe includes a substantial amount of black vinegar in the sauce, making it much more sour.
Basically, both (and other) environments are sufficient such that there isn't a killer feature on either side that would entice someone like me over the great divide for the duration. So for me, the editor wars are over.
Is it space-y-macs or is it like dr spaceman (spah-chem-uhn) in 30 rock. :)
Comint is still the number one feature for me today.
But let's stop discussing Org-mode when we're discussing Emacs. You don't have to appreciate Org-mode to appreciate Emacs. Org is a bit of an antithesis to the typical programmer's mindset -- as programmers we value modularity, whereas Org is a vast universe of amazing kitchen sinkery. It's nice for simple TODO lists and its beautiful table editor (available as M-x orgtbl-mode in any other mode).
I found his comment about calendars/scheduling hard to believe. I've done one Apple iCal server deployment, never want to do that again. Google calendar, talks well to itself. Cross scheduling into O365 is a nightmare.
Two Years (With Emacs as a CEO and now CTO)
as opposed to Two Years (With Emacs) as a CEO and now CTO.
and it greatly confused me: how could Emacs act as a CEO? It's not that smart, is it? (Or conversely, being a CEO can't be that trivial, right?)Perhaps rephrase to: "Using Emacs for two years as a CEO and now CTO". The parse tree is still ambiguous, but a little less so.
Some people made things like systemd-mode but I couldn't wrap my head around it so far. And I wanted to build it from scratch.
I write code, so I thought emacs would be the learn-once-editor-of-a-lifetime but it was just always an exercise in frustation and wrestling bad defaults.
If your using it to write code, emacs is, by default, worse than $IDE because its not built for the write, debug, run cycle an IDE excels at.
I only mention this because a lot of programmers and hackers seem to hold it up as a hallowed piece of technology and I the elitism makes you want to try it so you can be up there amoung the gods.
Everytime I wanted to write code, I would have to cobble together little scripts to shoe horn in build steps and it was always more work than VSCode would make me do. I want to write code, not make my editor work in a sane way.
Org mode is oft touted as the 'killer app' - its entirely unportable. Android and iOS don't have clients that are useable by modern standards. You will hear "oh but you can install this plugin and then it will automate converting your todo list to HTML and it can then run that on a serv...". No thanks, I just want to sign in once, and everything to be synced.
It doesn't have the idea of syncing and its totally uncollaborative. I can't share it in any meaningful, interactable way.
The world has moved on, emacs is a relic of the old world and I finally feel fine in saying that.
Now that I develop in Java, I definitely use Intellij, but with Emacs bindings. I then use Emacs for note taking, writing shell scripts, etc. I find that this provides me with the best of both worlds in terms of IDE features plus pure text-based productivity (which is where Emacs shines).
[1] Visual Studio Code seems like it's taking over the role of "good enough" editor for languages that don't have full-featured IDEs - a place that's previously been dominated by Emacs and Vim. I like VSC well enough, but I don't think it's Emacs bindings are good enough...yet.
$ M-x compile
which you can bind to any convenient hotkey combo and which you can customize to invoke any build system you like. Results of the compilation go into emacs as a separate buffer.Is that insufficient for your workflow? Not sure what else would be needed except perhaps stepping through code with a debugger and on this point I'll agree that Linux and emacs suck at debugger support compared to, say, the Visual Studio debugger or perhaps Olly which I've never used.
As for org, I agree that it isn't good for collaboration except with other emacs users as far as Todo lists and such, however if you generate PDF reports via latex I find org is a better more sane way for that.
Whilst most of your points are subjective I can still give my side of the story as a long term emacs user and person of non-elite status.
"wrestling bad defaults": I use almost entirely default key bindings for 15 years and I find that they are very comfortable for navigating and editing text, almost like the defaults were carefully arrived at by users.
Personally I agree that for most languages you are better off using an IDE than Emacs, although I do use emacs full-time for Ruby as it has excellent support. Haskell, Clojure and Common Lisp are also great on Emacs. That said there are many more uses for a powerful text editor than for typing code.
Org mode is fantastic. I used it for all my personal note taking and for project management. It has a lot of depth but you don't have to go deep to take advantage of its simple tree structure editing mode. That said if you do go deep, things like Babel model and tables can be incredibly powerful. There are tools to read and even edit org files outside of Emacs but since Emacs itself is portable, org-mode is in fact portable.
That this is the top comment is just evidence that the elites are voting it up to try and keep the rest of the world from finding out that Emacs is the best
Electric indent alone makes me want to stick with Emacs. I'm so used to how Emacs does indentation that I get frustrated whenever I'm presented with an IDE that doesn't do it that way (nearly all of them without special extensions).
wtf is electric indent? (i'll ddg for it after i write this comment)
i've been trying to migrate my coding to emacs for 5+ years (off/on... obv) and continuously find myself back in Sublime/Atom/VSCode land.
as a user for 24 years, could you maybe point some of us lowly noobs to great resources to learn about Emacs workflow?
TIA
As for learning resources, one of the most comprehensive and convenient ones out there is -- Emacs itself! There are reasons why they call it a "self-documenting editor". Boot up the editor, and type C-h t (that is type Control+h, then type t), and you will be taken to a tutorial which you can work through to give you a feel for Emacs basics. While using the editor itself you have a number of help resources available: C-h k followed by another keystroke will tell you what that keystroke does. Type C-h w and enter a function name, and Emacs will show you the keystroke for that function (if any). C-h f and C-h v followed by a function or variable name, respectively, will bring up detailed documentation about that function or variable. C-h i brings up info, which has online user manuals for Emacs and other GNU software (depending on your distribution and installed packages). And so forth.
Outside Emacs itself, there is the venerable Emacs Wiki: https://www.emacswiki.org -- which covers Emacs itself as well as various third-party extensions and packages for the editor, and contains additional links to other resources.
One more thing: If you're serious about learning Emacs, I recommend that you really commit to spending all of your coding time inside it. Don't wuss out and go back to your nice safe comfortable editor when the going gets tough. The best way to learn, when it comes to a program like this, is by doing. If you do wuss out, that's okay too -- not everybody is willing to put in the time it takes to reap the rewards Emacs has to offer, and if they're making good money with the tools they have there's no shame in that.
For most languages, said indentation is consistent with (if not exactly complaint with) a style guide or other set of conventions. Some packages customize/alter this (for example, I use the editorconfig package to set indentation sizes and whether to use spaces/tabs by file extension, and electric indent works perfectly with those settings).
Unrelated to electric indent (but something I use in conjunction with it daily) is the ability to select a region of text and press Alt-Q ("M-q" in Emacsese) to automatically hard-wrap a long line to 80 characters. Not all languages play nicely with this, but it's really handy for comments, long arrays, and paragraphs in READMEs and other docs.
So comparing a big IDE like Visual Studio vs Emacs is like comparing a big framework like Rails vs lots of little Clojure libraries.
The latter is always more complex to learn and setup, but it is also more able to adapt and evolve. It's a different design compromise.
I think Emacs is really worthwhile to learn, and it's become much easier recently. Things like ELPA and use-package streamline configurations a lot. The Language Server Protocol (LSP) will make things even better.
Depends on the language really.
For anything Lisp[0], Haskell, Ocaml, Idris, Coq, I haven't found a better development environment than Emacs. Probably because Emacs is usually one of the first to support a lot of languages and then maintains the lead.
> The world has moved on, emacs is a relic of the old world and I finally feel fine in saying that.
«It works. I’m grateful for things that work. Not many things do work, you know.»
0. except maybe Clojure?
I use Orgzly on Android, and it's quite usable. I haven't tried syncing things back and forth, but I use it all the time for quick notes on things.
Can't speak to iOS, since I haven't used an iPhone in more than a decade (well, except for the work iPhone at a previous job that I promptly "installed" as a hotspot (by plugging it into an outlet on the "roof" of the office pod inside the warehouse in which I worked) and forgot about, but I don't typically count that).
That said, the 'e' in emacs is "extensible", and it is IMHO a big deal.
Although it takes a long time to learn (and personally I still wish elisp was python), the extensibility is something that you can build on over time and make the editor your own. You can hang onto it all your career.
An analogy to all this is craftsmen who build up their tool chests over time. They probably start with a "one size fits all" sort of tool set, then over time add and replace the pieces they use, and iterate.
A few humble emacs things I use:
- tramp mode: edit files on any system with ssh access
- compile mode: take any compiler output and step through errors in each source file one by one
- compile mode: I actually have non-compile things like custom searches where I can search for something and step through the found things one by one. Just output <filename>:<linenumber> from a script and you are productive
- version control: software archaeology
- diffs: so many kinds of diffs/merges are possible
- custom keys: put a function on a key. modify how a key works. bread and butter stuff.
- smart search and replace: sky is the limit
- modify what you don't like: if emacs doesn't behave the way you like, either customize or replace the offending function and make it work "right".
some sites:
oh, one factoid - on sunos/solaris years ago, their IDE was emacs (maybe xemacs based?)
People yet have to invent an editor/IDE that could surpass Emacs's capabilities for extensibility. Yes, certain IDEs are better suited for specific tasks, but if you need a universal malleable tool that you can bend any way you like, there's simply no better tool in the existence.
Have you ever thought about it? Almost nobody whoever contributed to Emacs ecosystem - either by submitting patches, improving documentation or publishing packages (plugins), has ever got paid for their work. I have over 300 packages installed in my config, and it is my primary working environment (in fact: besides the browser, it is my only environment). Can you imagine VSCode, Atom or IntelliJ user pulling over 300 plugins? I am not sure that I'll even work. Emacs ecosystem defies any logic, it shouldn't work at all, yet it does. Many developers successfully use it every single day. Heck, some parts of whatever IDE you are using right now probably were written in Emacs.
Yes, Org-mode deemed "a killer app of Emacs" and rightfully so. There are reasons why all attempts to port Org-mode functionality to other editors were never very successful. Org-mode is huge. It has tons of features. You can do a lot using Org-mode alone. I do things Org-mode was made for: task management, journal/diary, literate-programming, static web sites, presentations, etc. But I also do things outside of the immediate context of what Org-mode made for. I manage my dotfiles using org-mode. If I need to set up a new machine (Linux or Mac), I only need git, GnuPG, and Emacs. I don't lose anything moving from one machine to another. Or here's another example: whenever I like something on Youtube or Twitter, upvote on Reddit, push something to Pocket AKA Read-it-later (either on the phone or desktop) - that thing appears in my org-mode agenda with a deadline of 30 days. If I don't review it within that time - it'll keep reminding me. Org-mode has the best markup format, better than markdown. People write and publish books using Org-mode these days.
Yes, IDEs are more and better suited for certain languages, but there's simply no better tool for manipulating straight text. This very comment I wrote in Emacs. Why? Because there I have in my disposal all the tools I need. Spellchecking, thesaurus, dictionary, etc.
Your world has moved on, and Emacs is not a part of it anymore - fine. But don't be bitter, just because you couldn't find any value in it. Truth is: once you learn Emacs to a certain point, every attempt to do things using other tools would make you feel unhappy. Why can't everything be as configurable and extensible as Emacs?
My Experience Usuing Emacs While CEO, and Now CTO.
http://www.art.net/studios/hackers/hopkins/Don/text/rms-vs-d...
Richard Stallman may not have planned on reproducing himself, but he did make Emacs.
„Effective executives focus on outward contribution. They gear their efforts to results rather than to work. They start out with the question, “What results are expected of me?” rather than with the work to be done, let alone with its techniques and tools.“
I am guilty myself falling in love with tools (Emacs, vim, iTerm, Notability, Evernote and whatnot). But I founded and led companies myself. The time budget of a manager is extremely tight. You need to cut back on those things that do not contribute to your key result areas.
On the other hand you have someone like Stephen Covey who reminds us to sharpen the saw to get better results (i.e. invest time in the infrastructure as well).
But I try to imagine an Elon Musk writing a blog post about how to use Vim effectively.
https://blog.stephenwolfram.com/2019/02/seeking-the-producti...