A couple decades later, I just find it all so exhausting.
A couple decades later, I just find it all so exhausting.
"when I was young I used to work out and eat healthy... a couple of decades later, I just fund it all so exhausting".
Customizing your computer environment is good. Eating healthy is good. None of those need to end up in a "rabbit hole".
Everyone can be tired of life and give up due to exhaustion, but greatness requires discipline. This is also true with the craft and art of programming.
a) learning Spanish to talk to that hot chick/dude
b) traveling around the world
c) doing whatever else you love to do besides coding
In the context of the posted article, one simply uses TRAMP (built in!) and moves on with life. The author is dealing with a situation where the "move on with life" tool is behaving pathologically.
So I mostly just leave everything as it is.
What they all have in common is that this level of customisation looks silly to the outside. Of course they could be 98% as good with something they bought off a quality store, but what they do is part of who they are and there arguably is a deeper satisfaction in that then going around hitting on hot dudes on holiday trips.
- process their email inbox
- communicate in chat
- navigate the web
- write code
- prose
- Creating a to-do item for something your partner just asked you (while you were concentrated on a task) that will show up automatically on your agenda tomorrow
- Converting some text notes you quickly scribbled down into a beautiful PDF via LaTeX, uploading it to S3, and referencing the URL in a reworded existing git commit message?
I could make the list much longer from my own experience, but this is just straight from the article.
I'm not a VSCode user, but I often hear about it only in a programming context, so it always surprises me when people suggest ditching Emacs to use VSCode.[1] I'm genuinely curious: How many of the above tasks are doable in VSCode? If not most of them, then I suggest people stop comparing the two programs - there is no point in asking people to stop using Emacs and use something that doesn't do what is needed.
If VSCode can do it, I'd love to look up the plugins/extensions needed.
[0] And many, many do it. I do over half of these things in Emacs (and most of the last item).
[1] Easily over 70% of my Emacs usage has nothing to do with programming.
And very probably, many, many, many more don't. (This is what telemetry is good for--actually telling you how many people use various functionality in your product). Somewhat more than half of my coworkers use emacs for their daily coding, and exactly 0 of them use it for anything other than a programming editor.
My point is that while I know many, many folks who use Linux only for SW development (at work), it would be silly to view Linux primarily as a SW development environment when it can be used for so much more. And so it is with Emacs. It's like saying "I dropped Linux for Visual Studio." The comparison makes little sense, unless you're talking to the folks who only use Linux for a small thing.
As for telemetry, I can again invoke the Linux analogy. While it would certainly be nice to get an accurate poll of what people use Linux for, I don't think many kernel developers will want to drop multimedia features from it because less than 10% of Linux users use those features (10% is really optimistic!). Emacs is an elisp development environment, and a text environment. Anything that works with these two is within its scope. It's a valid discussion on what should come bundled with Emacs vs off loaded to external packages, but that's not the discussion over here.
(Yes, yes I'm aware that Linus and the kernel folks do often drop features because they believe it's not used often, but those usually are way, way down the tail of the distribution).
I have fun with customization and it increases enjoyment of the coding part, so why not.
One is a practical endeavor of great importance for mind function, body function, longevity, performance, etc.
The other is something between slightly better ergonomics (in a non-scientific ad-hoc way), tinkering, and bike-shedding.
People have found again and again that "customizing your computer environment" is not a good in itself, but a means to an end, with quite narrow diminishing returns.
>Everyone can be tired of life and give up due to exhaustion, but greatness requires discipline.
This includes first and foremost the disclipline of avoiding tinkering and bike-shedding with your tools, and doing real work on real problems instead (which is not a false dichotomy: many people fixate on the former to the detriment of the latter).
>This is also true with the craft and art of programming.
Which has as little to do with a focus on customizing of tools, as a hi-fi hobby has with being a music lover...
The author of the article customized his environment so opening a file no longer froze his editor.
I wouldn't classify that either as "slightly better ergonomics" nor "tinkering" nor "bike shedding".
He had the discipline to improve his favorite editor. Good for him.
Emacs is obviously a very powerful environment for people who know how to use it. I applaud the author for documenting how he fixed this.
The only difference between emacs and many other open source software is here you can easily solve bugs in your config file, instead of filing a pull request or submitting a patch to some git repo. The first you call "tinkering" and look down upon. The other I assume you approve of? But why the double standard?
I didn't respond to the article, I responded to your particular comment, which seemed to imply that customizing your programming environment in general is something great and necessary.
>The author of the article customized his environment so opening a file no longer froze his editor.
That doesn't clarify as "customizing my environment" is more like "fixing fundamentally broken shit".
I mean, sure, if you define any config change that tangibly results in higher productivity and better performance as a fundamental bugfix instead of a customization, then customizations don't matter.
But that seems to be a kind of arbitrary distinction. Just as an analogy:
----
"I lost 30 pounds and fixed a sleep apnea problem when I started paying attention to my diet."
"That isn't paying attention to your diet, it's fixing a fundamental health problem. In general, most dieting falls into the category of fads and micromanaging."
----
Aside from your specific definitions about what does and doesn't count as customization, what do you and the OP actually disagree on?
Do both of you agree that when changing an Emacs config, I should take into account the ratio of time they'll save and the time I'll lose making them?
Do both of you agree that there are changes I can make to an Emacs config that would eventually provide a net benefit in terms of time saved?
Is it good that I can make those changes that save me time in the long run?
Is it bad if I ignore the cost/benefit analysis of a customization and spend more time messing with configs than actually programming?
I don't understand what you're actually arguing about.
Some examples of unnecessary customisation is the fact that the defaults of emacs so often ought to be changed. E.g. why does M-SPC do just-one-space instead of the strictly more powerful cycle-spacing (answer: probably a combination of history, neglect, and a fear of breaking existing saved keyboard macros), why use upcase-word instead of upcase-dwim? Why does autocomplete require so much customisation?
If emacs had better defaults there would be much less reason for spacemacs or doom to exist.
One person I work with will (drastically) customise the key bindings for each new mode before using it, making it hard to use new modes. Another gave up on customising emacs and switched to spacemacs to no longer have to think about customisation.
I wonder if it's more time wasted when you have to change editors every few years because of changes in the funding model of the corporate patron of the product and relearn how to use the entire environment with "sane defaults" versus creating some custom keybindings that you like essentially one time and then using them for 30 years in an editor that has a license and community that makes it unlikely to suddenly cease to exist.
People act like there's all this extra work to using software like Emacs over corporate IDEs, or GNU+Linux over corporate OSes, but I contend that it is merely different and better-documented work. The corporate environments just make more promises, and then everyone is surprised when the promises are broken.
I totally agree. The only reason I justify my Emacs customization is because I customize it very slowly, over years, and periodically remove things I don’t use any more.
It’s getting harder to justify now that alternatives like VS Code have a bucketload of features and working autocomplete without futzing around too much. It’s just that VS Code is so damn slow. Maybe better language server support will bring me back to Emacs as my daily driver in a couple years, or maybe I’ll be paying for CLion.
+ Increase productivity (e.g. if value = work x time, and you can't increase available time, then reduce time consumption per unit of work to increase value)
+ Increase comfort during this process
- cost: available time is reduced, which you could have spent working.
Objectives to exercising:
+ Increase lifespan
+ Increase comfort(health) during this lifespan
- cost: available time is reduced, which could have been spent living
Tbh, these look pretty similar to me. In both cases, you're trading off an existing resource gambling that you'll get back more than you put in.
---
As an addendum, there's a right and a wrong way to achieve tradeoff-based objectives.
With exercise/diet, you can certainly do it wrong: latest fad diet that's placebo or maybe even actively harmful to you, latest fad routine that isn't very efficient, overwork and hurt yourself, etc.
If you're "wasting a bunch of time" customizing your computer, I guess you're doing it wrong. Certainly, don't do that.
Like the OP I used to be in the having "pets" category (including gigantic ~/.emacs), but these days I prefer cattle (defaults as much as possible)
You don’t even have to stop there. I have a repo for my Emacs config, a repo for my Windows bin folder, a repo for my Unix shell stuff, and a repo for a bunch of cross-platform Python scripts I’ve written. Every computer I use regularly is super customised in exactly the same way as all the others. Takes about 10 minutes to get up and running.
What if there were a Silicon Valley company whose entire business model was selling a computing environment that didn't need to be customized? Like, at all? What if they did a whole bunch of psychological research, and found that most humans work pretty much the same way, and designed this environment in such a manner that they could get 98% or so of the way toward optimum productivity, right out of the box?
Knowing the Valley, they would give themselves a silly name, one having nothing to do with computers or data or anything. Like a fruit or something. But multiply the base price by billions of potential users... the idea could be worth trillions!
Additionally guess what. Most humans wouldn't prefer something like emacs even if it had sane defaults that would bring all it's users and the vim people and the like togheter. It's why a lot of it's features aren't a thing in popular ide's and such. Yet this niche still exists. Because some like a keyboard centric layout and don't mind learning a bunch of of keybindings to work faster down the line
> when I was young I used to work out and eat healthy at the level of an Olympic athlete ... a couple of decades later, I just fund it all so exhausting and don't do any exercise and eat only convenient packaged foods.
The original comment is arguing as if only these two extremes exist.
The thinking environment of choice of the most productive, smartest person I've ever worked with was .. a notepad. Not Notepad, a physical A4 ruled paper notepad and an ordinary gel pen. The actual development inevitably required some typing, but the thinking process and its associated diagrams, calculations, and scribbles for the kind of maths-heavy work he was excellent at worked best on paper.
(I currently have vscode open .. and actual Visual Studio, and IntelliJ, and notepad++, each with a different set of files open in different languages.)
When I was in college I thought being a flawless typist would make me a better programmer.. (mind you I had trouble mastering dynamic programming, advanced abstractions or semantic subtleties).
I find these exhausting too now, and actually that's why I'm jaded by tech. The vast majority of things in the late 10 years felt like a planet scale tweak (phone has tilting backgrounds, css animations, ..). Deep inside I knew it was just marketing and nothing substantial.
Sounds like you are in a very small bubble if that is your take on the last decade's tech inventions/evolution. What about autonomous vehicles/dock yards/warehouses and reusable rockets?
Yeah my bubble was mostly about consumer computing and network. CRISPR wasn't included in my rant.
> I was so into these kinds of super-customizable rabbit holes
I did this too. I spend days customizing my xmonad (I dont speak haskell), but thats nothing in comparison to the time I spend tuning my emacs.
On the other hand, i pretty much use the same environment like a decade ago. My same .emacs, my same xmonad.hs. I was looking at my WM and if there is a way to get rid of ghc on my machines (I use gentoo, updating ghc is an expensive task, especially on older machines) but every other WM felt like a downgrade so I went back to xmonad, to my old config.
I feel home everytime I open my notebook or booting linux on my desktop.
Then work happened. Right now I just can't stand it anymore. My brain is rebelling against even coding. I am still really good at it and enjoy it, but I realize that I just lack the drive I had. Some people might say that's bad. IT IS NOT. I spent almost 25 years of my life filled with coding. I am done. I want to have other people code things for me and focus on building awesome products instead. This is what drives me now. I don't care about low-level anymore. I don't care about bugs or why this stupid dependency won't work in a deployed environment. I want to ship awesome things to customers and I keep realizing that this is at the core what always drove me. I never coded for the sake of coding. It was always to build something cool, except there was no one else around to do it for me.
This is a very familiar story for many engineering managers I know.
So do I, and yet I use Emacs. I think there is a middle-ground. There are things worth customizing and improving, in particular the tools I work with, and there are things that I expect to "Just work"™.
Hence I use Gnome and Emacs for important workflow, such as programming, TeX, email, git, shell etc. It's and IDE, if you wish, but with more stuff since email is also part of the workflow.
After awhile I realized I just wanted to write code and not have maintaining my system take time away from that. The fact that the Mac provided easy access to Unix was a major plus. Also, at the time, none of the Linux desktop environments could match the polish that the OS X GUI provided.
I've been saddened and frustrated by the state of macOS of late (hopefully Big Sur is better) but I'm still not ready to go back to the old days. As you say; it just sounds exhausting.
I'm typing this on a Pinebook Pro which, at least in my experience, has basically been zero-configuration with the default Manjaro release.
Ok, I lie, I added an m.2 ssd to it. But that's about it!
It made more sense to customise when you had a limited environment you used and never much changed, but what's really changed is I'm twice as old now :)