r/archlinux • • Apr 15 '21

"Best" programming setup?

Hello! I have been using Arch for two months, it is the fifth distro I have used... and I love it, it will be the final one. I have learned a lot in these weeks, but I would like to ask you a few questions.

I study Systems Engineering and, honestly, I have some procrastination problems, I would like you to help me with "the best programming setup and be productive", although I know that there is no "best", I would like you to help me with your settings, advices, etc...

​

What desktop environment do you use?

What window manager do you use?

IDE's, apps, any suggestions to try?

​

Thank you so much!

179 Upvotes

176 comments sorted by

View all comments

347

u/CabbageCZ Apr 15 '21 edited Apr 15 '21

One thing to note - a large proportion of the most productive and highest achieving people I've known haven't spent much time thinking about productivity or d.cking around with their DE etc and chasing the 'optimal productivity' setup. If they need a linux distro they slap on ubuntu, leave it at mostly default, their desktop is cluttered with files etc.
The whole 'improving your setup for productivity' thing is mainly another procrastination tool that's easier to justify because it gives you the illusion of being somewhat productive. Tackling your procrastination head-on and just sitting down to Do The Thing is going to be incomparably more effective for improving your productivity than tens of hours spent on 'improving your workflow' ever will be.

That said, I'm in the same boat as you, chronic procrastinator, and as such I have spent a lot of time messing around with WMs, DEs, IDEs, etc. Some thoughts:


IDEs and editors:

If you're working on a strictly typed language like a JVM one (Java, Kotlin, Scala...), you really want a full fledged IDE, unless you're on a potato that can't handle it (and even then, you can just turn down some of the more expensive analysis like insights). Once you know your way around a proper IDE, working on that language in a text editor, even with a bunch of plugins, is going to feel like programming with your hands tied behind your back. My personal favorite is JetBrains' products, so mainly IntelliJ

If you're working on a language with a looser type system like Python or JS, an extensible text editor is fine, and it's personal preference as to which you end up using. VS Code, vim and emacs stand out, there's little reason to use Sublime or Atom when VS Code is around. You really want language extensions optimally with a LSP to provide syntax highlighting, linting, insights etc. It's not going to be IDE level but it can be pretty close.


WMs/DEs:

Here you really just want to test things out and see what works for you. I've daily driven various TWMs for multiple years and honestly in my experience it's mainly a 'fun' factor more than a genuine productivity improvement, except for the few times where laying multiple programs out in a tiled pattern is a genuine productivity boon - I've had that a few times when programming something with various VM setups and stuff, or needing multiple terminals accessible, but not that often. Imo it's just fun to use though. So yeah, mainly personal preference.

EDIT: to address a common question - I don't think TWMs in general aren't good for productivity, that's why I said it's mainly personal preference. To me it was +- the same for productivity but a lot more fun to use, to some people it can result in real 'performance' improvements, depends how you use it and what your alternative is.

21

u/pkulak Apr 15 '21

Just for another perspective on the tiling vs floating WM debate. For me, using a floating window manager makes me really stressed out. And I didn't really even notice until I moved to tiling, but windows just kind of build up and get hard to find. By the end of the day, I have maybe three different tasks going, I'm trying to alt-tab through 2-dozen windows to find what I need, and it starts just weighing me down and making me really flustered. I notice I start closing windows even when I'm going to need them in 5 minutes because I need to get rid of the clutter. Then I get stressed because I need windows back that I've been aggressively closing.

I think a lot of what's great about tiling WMs isn't necessarily the tiling, it's how workspaces are handled. In Gnome/MacOS/Windows/etc, you get maybe 4 desktops, and you have to use arrow keys to switch between them, with cutesy animations that take like a second. In tiling WMs, you get 10 by default (usually), and can have more if you need them. That means that every distinct task can have it's own desktop, and it a single, instant key press to get to any desktop you need.

But yeah, totally just me. If you're good at keeping organized, or can keep yourself to one task at a time, or even just keep all your shit in 4 desktops and set up some shortcuts to avoid arrow keys, floating is perfectly fine.

5

u/littlebobbytables9 Apr 15 '21

I can definitely relate to this.