Hacker News new | ask | show | jobs
by Crito 4512 days ago
One of the reasons I dislike IDEs is the same as the reason I dislike things like janus or oh-my-zsh, and the same reason that I removed my employer's 'source ...' from my vimrc at work. Poorly considered collections of nonsense that I don't want to be thrust into.

Furthermore, I select my plugins carefully with future-proofing as my number one priority. This means that I do not use (or at least certainly do not rely on) software that I am not confident will stick around at least until I retire or software that I could not reproduce if necessary. I am confident that Vim will stick around that long and I am confident that the plugins which I use with Vim will either continue to work, become obsolete when Vim absorbs their ideas, or are tools that I could recreate myself should future vim updates ever break them (this has not been happening so far).

In some cases, these constraints prove problematic. One example is web browsers. I have zero confidence that Firefox or Chrome will exist and/or be recognizable in even 10 years. I therefore do not rely on any special Firefox or Chrome functionality, particularly any plugins or extensions. Additionally I split my usage of the browsers evenly between the two in an attempt to ensure that I do not become reliant on Firefox or Chrome specific behavior or abilities that I may lose access to in the future.

My problem with Firefox/Chrome is a problem that I have with IDEs. They come and go, they change and "improve" over time in ways that are not backwards compatible from a UX perspective. I want none of that. A carpenter does not worry about the interface to his tablesaw changing in 10 years, forcing him learn a new set of skills to experience the same functionality. That sort of stability is what I strive for.

Edit: As for text editor plugins typically being out of date... I just checked. The most 'out of date' plugin that I have is actually just my colorscheme, having it's last commit on Fri Mar 2 14:59:51 2012 -0600. All of the rest have had commits in the past 6 months. A quarter of them have had updates in the past month.

1 comments

I find that take quite interesting considering the rapid pace at which software and computing changes over time. I would expect that by the time I retire in 30 years that nothing that I do right now will exist or be at all relevant.

I use certain software right now for programming that is completely different than what I used even two years ago. I work in completely different technology stacks and completely different tools.

Why would restrict myself to only using a set of tools that I KNOW will existing 20-30 years? What happens when some breakthrough technology comes that comes with it's own stack and toolset? Do you ignore it or adapt?

I actually enjoy switching between various technologies and tools. You get a different perspective, learn new things, get out of the rut and into a new challenge.

I really hope that in 3 years I'm not using the same tools I am using today.

Vi style editing has lasted entire careers already, and provided "programming" remains at it's core a matter of manipulating text files, I see no reason for it to not last mine. The day the industry transitions to "LabView 2: Electric Boogaloo" is the day I tap out of the industry.

> I actually enjoy switching between various [...] tools

I guess that's the difference between you and I. I don't, at all. I find satisfaction in what I do, not how I do it. Learning new tools for no reason other than I picked the wrong one to learn five years ago and the developers of my old tool packed up shop is something that I think is to be avoided at all costs.

And to be clear, I am more than willing to pick up knew technology that I believe will have significant staying power. Git is an example; whatever version control system that will replace it in 10-15 years will look significantly like it. Git's CLI interface is not an example; I know how to do what I need to do in Git, I know how Git works 'under the hood', and I know how to teach myself the rest on demand, but I do not spend time memorizing the intricacies of the various flags to the various git commands. That knowledge will likely become useless in 10 years or less.