
Linux on the Desktop as a Web Developer - todsacerdoti
https://nolanlawson.com/2020/05/10/linux-on-the-desktop-as-a-web-developer/
======
sourcaustic
I've worked as a web dev on Linux for nearly 15 years (most of it Ubuntu). My
day job requires that I work on Windows 10 and I'm sorry to say this, but from
a developer's perspective it does feel like an inferior user experience. To
cope I've tried the WLS, but it didn't really do it, then I was able to
somewhat cope a bit with Cygwin. Still it's not the same. I miss the extra
desktops. I miss the ability to install a proper tiling window manager with
sane keybindings (I use i3 so please don't even mention Power Toys). I miss
simply configuring stuff with simple text files, instead of pointing and
clicking to open layers after layers of windows to simply change one value,
which can also turn even the simplest tutorial into a headache (try installing
a wsgi server on IIS). I also miss having my configuration respected without
agenda, rather than seeing some applications somehow capable of vetoing my
choice of a browser, or my language preferences. I miss ubiquitous utilities
that are just sort of expected to be there by anything you install, like cron.
Oh, how I miss the shell (please don't even utter "PowerShell"), would you
believe that I even miss Bash as a language after trying batch files?

I miss a whole lot of other things and looking for replacements on Windows,
it's especially annoying that everything that MS produces is promoted as the
next best thing to sliced bread, so you're never really sure if the solution
you're being sold is just pure shite, or if it's really worth your time. And
on that note, I would never believe that I would miss the capricious Linux
community, because it doesn't matter how good Canonical gets it on a release,
we're guaranteed to have laments about the millions things they got wrong this
time. But it's only when you decide to take a stroll on the neighbor's grass
that you realize how green yours really is, right?

~~~
httpsterio
Have you tried AquaSnap or bug.n? There's also the possibility to run i3 on
Windows these days.

~~~
httpsterio
Forgot to mention, there are also several AHK scripts that mimic i3 that are
quite nifty and then of course Windows has had virtual desktops for years.

------
jonathanoliver
I'm a backend developer but after switching for Windows to Mac (and from C# to
Go) about 8 years ago, I recently (in the last 6 months) adopted an almost
exclusive Linux-only approach. My MBP has been great but ever since the Touch
Bar and finicky keyboards that kept needing repairs from authorized retailers,
I started looking more and more at Linux. All the production code runs in
Linux and, while Docker on Mac is pretty good, it's pretty heavy (VM) compared
to actual Docker on an actual Linux device.

So finally after taking a hard look at all the software I was using on a day-
to-day basis including some JetBrains tools, Sublime Text, Slack, and a few
others, I finally decided to go for it.

The only thing where the experience isn't working for me as well is 1Password.
The Linux flavor (1Password X) is getting better and better all the time, but
it's not quite as polished yet as 1Password.

To anyone looking to make the switch, go for it.

~~~
theonething
Off topic, but if you're willing to share, I'm curious about your transition
from C# to Go How are you liking Go compared to C#?

I'm wanting to learn a typed language good for backend and trying to decide
between Go, C# and Java.

~~~
jonathanoliver
I wrote a blog post years ago on the subject of leaving .NET:
[https://blog.jonathanoliver.com/why-i-left-dot-
net/](https://blog.jonathanoliver.com/why-i-left-dot-net/)

My blog post got quite a bit of heat (both for and against). In the years that
followed I actually had some discussions with a few of the higher ups within
Microsoft regarding my blog post wherein they said they were very much aware
of it and taking active measures to resolve the issues addressed therein.

I am very happy to report that C# and .NET Core are very, very attractive
options now. When I left (2012), I was sick of trying Linux .NET stuff (Mono)
because I had to find/fix so many bugs and submit patches for it back to the
mainline. Frankly, the Mono guys pulled off some miracles in my opinion but I
kept getting bitten so much that I just couldn't use it. This was from about
2008-2012. Further, when I left and started using Go, on the techempower
benchmarks
([https://www.techempower.com/blog/](https://www.techempower.com/blog/)) it
showed .NET being almost dead last for HTTP requests per second. Nowadays
Microsoft has pulled a virtually impossible feat of engineering to make their
stack among the best of the best with regards to performance.

In any case, Go is a solid choice. Where I work we are very, very happy with
it. Every so often I miss some aspects of the syntactic sugar that C# had for
things like LINQ, but on the whole I am very happy for the kinds of things I
am trying to achieve in using Go. Further, the ecosystem and tooling are
maturing nicely with a wide variety of libraries available.

If I was to move over to a JVM-based language, I would consider Kotlin. If I
wasn't using C# or Go or Kotlin, Rust is very high on my radar and continues
to intrigue me.

------
dugmartin
I've been using a Dell 13" Ubuntu 4K laptop hooked to a 43" monitor as my main
work web development system for a year and a half. All of my co-workers use
Macs.

Pros: compared to Macs using Docker is very performant especially when sharing
the host file system for development and once I found Regolith
([https://regolith-linux.org/](https://regolith-linux.org/)) I don't think I
could go back to a normal windowing system.

Cons: non-Electron cross-platform apps seems to get short shift on Linux. For
instance, the Zoom client is buggy and seems to be the last to have new
features rolled out to it and I CANNOT for the life of me get my Microsoft
mouse's scroll wheel to smooth scroll correctly.

~~~
dsamlkadslmksda
Do you mind to share the model of your 43" monitor? I'm looking for a setup
like yours, but I'm not really sure which monitor fits the purpose. Thank you!

~~~
throwawayvx4380
I've been using the 4K 43" Viewsonic VX-4380 for several years; it's been
great. It uses flicker-free backlighting unlike the Dell 43". Unfortunately it
appears COVID-19 has disrupted the supply chain for these at the moment. Keep
in mind that many 43" 4K displays use TV-like BGR subpixel layout instead of
RGB, so subpixel antialiasing for font rendering in general won't work unless
you either switch your OS to BGR or disable it. (Windows and Ubuntu/Gnome, but
not Mac OS, have a way to set BGR layout. But all three let you disable
subpixel AA.) I always disable subpixel AA anyway because my eyes can see the
color fringe when it's enabled and I don't like. Another poster said you can
use a TV instead but I don't recommend this. Using a TV over HDMI can lead to
color quality issues unless you are certain your model of TV won't be
affected. (Many TVs use a compressed color signal because it's good enough for
watching TV and movies but certainly not good enough for rendering detailed
artwork). And TVs can have overscan issues (edges of the screen image
missing), image ghosting issues, etc. A TV works OK for fullscreen gaming or
for a powerpoint but isn't necessarily the greatest as a general purpose
monitor.

------
esotericn
Does anyone else find these sort of articles strange? "Windows on the Desktop
as a Developer" feels like the unique/odd case to me.

Perhaps I'm just getting old, or I'm stuck in a specific social group?

I don't mean to belittle the author at all, Linux just feels like an absolute
default to me nowadays for a developer, in the late 90s that may not have been
the case, sure.

~~~
Mikeb85
There's a large amount of developers making shitty enterprise tools on
Windows. Usually done with the whole VS/C# stack. Anyone making anything for
the web or doing anything cross platform is likely using MacOS or Linux.

~~~
lostmsu
Just loved your attitude. /s

I worked with plenty of Linux developers, and pretty much any piece of Bash
scripts was full of remote code execution vulnerabilities. That strange love
with shell scripts is so common among majority of *nixoids, it is impressive
you call enterprise tools shitty in comparison.

~~~
Mikeb85
There's a massive market for one-off custom Windows apps fulfilled by short
term contractors and consultancy firms or in-house programmers. It's a thing.

Also, most software is deficient in some way. Software is hard.

Edit - also Linux hasn't really been the market for apps like that (not saying
there's not shitty apps written for Linux though). There is now a janky app
market for iOS (tablets) and Android as well though. I've seen lots of custom
tablet apps for small businesses that are complete shit. It's not just
Windows, Windows just happens to be the de-facto enterprise OS and thus
attracts that scene.

~~~
lostmsu
Well, not everyone is destined to work on AWS. Somebody actually has to make
use of the larger project for a mom&pop stores, e.g. make small tools.

------
montroser
For Linux on the desktop, I can't say enough good things about ElementaryOS.
It's beautiful, defaults are good, compatible with Ubuntu.

Especially if you're coming from MacOS, my experience is that it feels
familiar, comes with all of the just-works, and as a bonus you can be in full
control of your OS if that's what you want.

~~~
gen3
I would be happy recommend ElementaryOS to anyone. I used it for a few years
before moving to Kububtu (with help theming from /r/unixporn). It looked nice
and worked well imo.

------
29athrowaway
Gnome 3.36 is one of the best releases of Gnome. Just switched back from XFCE.
It looks polished, has better usability and performs way better than previous
releases. Much of the HiDPI related problems (4k resolution) I had went away
too.

Softmaker Office/FreeOffice is an excellent and free replacement for MS
Office. Has a ribbon interface just like MS Office, is fast, and does
everything you would expect it to do just fine.

For development, if you don't want to go through the learning curve of vi or
emacs, the JetBrains family of products is excellent. Otherwise you may want
to try spacemacs, a "distro" of emacs.

Zeal is a good alternative for Dash.

Steam allows you to install a wide range of games, even Windows games, via
Proton. You can see the list of supported games here:
[https://www.protondb.com/](https://www.protondb.com/)

Now, if you are not as hardcore as the person from this post, use Tilix
(similar to iTerm2) rather than plain tmux.

Now... why Linux? because it's an OS where developers can do whatever they
want. There's no limit. You can mess with whatever you want, not only with the
surfaces exposed to you (APIs).

------
bengalister
I run Linux (Arch) on my personal Dell XPS13. I run Ubuntu 20.04 in a VM at
work to do NodeJs/Springboot (backend) development and even in a VM,
especially for node, the experience is better than colleagues running bare
metal Windows.

Going back to the XPS13 the Linux experience is not perfect.

* the mess with the HiDpi support and font systems. I often go from the laptop docked to a Usb-C hub to using my laptop on my coach. And my external display and laptop screen don't share the same pixel density. And it is a mess to switch from one to the other without hurting my eyes. Fractional scaling is blurry under Wayland or X in Gnome. Also some apps rely on Gtk for font rendering and thus react to GDK_SCALE environment variables but some don't. Some understand the Xft.dpi X server font dpi setting, some don't... I stopped doing fractional scaling of the whole display and just automatically detect which display is connected (thus does not work on both) and change the Gnome font settings

* Worse Battery life. I kept the Windows10 partition just in case and sometimes spend a bit of time on it and I have a much longer battery life on Windows10 doing the same things. On Linux I get 6 to 8 hours, when on Windows it is more between 8 to 10 hours. I think the main reason for that is the lack of off-the-shelf hardware accelerated video decoder in the browsers on Linux (I watch quite a few youtube videos). Yes I know TLP, powertop, etc.

* No driver for the fingerprint reader. It is a shame since the same model is sold by Dell with Ubuntu but the driver is not available. It is something I really like on Windows.

* Worse bluetooth experience. On Windows10, my bluetooth headset or speakers connect instantly, on Linux it takes up to 30 seconds and I usually have to manually force it (completely random)

* More instabilities. Usually after a resume sometimes bluetooth or wifi stop working and I need to reboot (once or twice a week).

* Lack of Wayland compatible apps. (I run Gnome) and some apps do not work and sometimes don't have Wayland equivalent: OBS is buggy on Wayland, polybar (status bar) does not work. I moved back to Xorg but I find it less responsive.

That being said I experimented a bit WSL on Windows10, it is nice but I am
still not coming back to Windows 10. I don't like the OS advertising apps that
I don't want and WSL feels a bit like a workaround you don't get the full
experience, cannot start services, mount filesystems or launch apps with a UI
seamlessly.

~~~
29athrowaway
I use bluetooth audio on Linux and I don't have problems with it, but I do not
use a laptop. I do not often suspend, resume my system.

I guess most of your problems may be coming from ACPI (power management).

Linux software under WSL would consume even more battery life.

~~~
fomine3
Linux apps on WSL1 shouldn't consume such battery life.

------
ccheever
I switched to Ubuntu about 6 months ago and have been shocked at how well it
works. It's actually good, not just barely-workable-if-you-are-a-zealot.

I keep a Mac around for when I need to run Xcode or Photoshop but that's about
it. And I boot into Windows when I want to play games.

------
jrumbut
After years of Linux and a little OSX I have had to switch to Windows for the
last few years.

Web development on Windows is much improved since 10-15 years ago when it was
a total nightmare. Most of the open source languages along with Git Bash
leaves me with a lot of the best of both worlds.

What I really miss is the way a Linux desktop wholly adapted to your workflow,
nothing extra, everything working in harmony and enabling very high efficiency
once you have momentum built up on a project. Tools like vim, gdb, and ssh all
complement each other and fit neatly with the rest of the system.

After three years on a Windows desktop, it feels no better optimized to my
workflow than it did week 3. There are still surprise shutdowns and
interruptions by different notifications. A default Ubuntu install does some
of that stuff but the level of configurability and transparency is much better
on Linux.

The need for GUI applications is also more of a problem for web development
since it often involves running multiple VMs and very different languages.

------
Havoc
I’ve found it much easier than Windows. Can never get power shell to do what I
want. Eg the other day a google QuickStart guide required setting a .sh as
executable. Couldn’t figure that out. Been trying to install WSL2 for a month+
now.

So now I’m just dual booting

~~~
bengalister
WSL2 will be available in the Windows 10 May 2020 update that should be
released end of May.

I tried during lockdown WSL and was impressed by the ease of use and how fast
it started but there are a few quirks.

It is not a full featured Linux OS at your disposal. I tried the Ubuntu 20.04
LTS for instance and systemd did not work preventing from starting services
with systemd (there are some workarounds), I couldn't mount FUSE filesystems
(lack of modules) preventing from mounting SSHFS, gocrypts volumes.

I don't know if these issues will be fixed in WSL2.

~~~
watermelon0
This is understandable, since binaries in WSL run directly on Windows, with no
virtualization/emulation, except for Linux syscalls.

With WSL2, Linux runs in a VM, and behaves exactly as a Linux box, so
Docker/systemd/FUSE run as expected.

~~~
calaphos
The systemd problems remain in WSL2 as they same custom Microsoft init system
from wsl1 is still used. There are workarounds however

------
gbuk2013
I’ve been using Linux (Debian) on my work laptops for over a decade now but
corporate IT is finally forcing me to switch to Mac for bullshit policy
reasons. It doesn’t help that Zoom is buggy and the VPN client we are forced
to use is Mac/Windows only. :(

I wouldn’t go back to Windows for any reason short of a massive salary
increase.

~~~
jonathanoliver
For work I've got an Arch-based desktop and a MacBook Pro 15". I'm almost
exclusively on my desktop (lots of CPU horsepower and tons of RAM) and I use
Zoom about 5-6 hours per day. I used the Zoom 4.x binary as well as now the
5.x binary versions that they offer. The experience has been solid for calls,
sharing my desktop, etc. I'm curious what kind of issue you experienced.

I also agree about not going back to Windows. If anything, I'm really close to
dumping my MBP and getting an XPS 13" 9300 and going full Linux.

~~~
gbuk2013
Zoom works fine except the 2 times I tried to give a presentation to our
extended team of ~40 engineers at which point it locked up my session and left
a zombie connection behind so I couldn’t rejoin. Having that happen twice when
some important people were on the call naturally led to “Zoom works for
everyone else except you, and you are using Linux so ...”.

They also broke SSO on Linux for several weeks recently which was annoying,
but at least they fixed it in the end.

------
wwee
My frustration with Linux (Ubuntu in particular, maybe a distribution with ZFS
solves this issue) is that upgrades tend to be like Russian roulette. You have
no idea if something will go wrong and reverting tends to be a pain.

Worse still, fixes tend to take a long time to land.

As an example, fractional scaling from NVIDIA cards is broken in 20.04 (what's
new):
[https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/187340...](https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1873403)
and there is no fix in sight.

------
bavell
Just my 2c: I've been happily developing web apps and gaming on Linux (via
windows VM) for the past 4-5 years and dread the thought of switching to
Windows or Mac. I'm fortunate in that I run my own business so I get to choose
all of my tools and tech. Haven't come across any workflow show-stoppers but
I'm not working with legacy apps or systems so YMMV.

I like using as little resources for the base system as possible so I'm using
Arch with awesome (WM).

For all my gaming needs I use vfio passthrough to reserve my GPU for my
windows VM and get 90-95% native performance in the latest titles.

------
gen3
I’ve found Linux to be a really good machine for development. Windows with
Cygwin is a good mixture, but windows file locking, and the lack of bash (and
some tools) really have made it a pain when developing back on Windows.

At this point everything “just works” for me on Linux (Using Kubuntu) and is
super stable. I don’t game much, and proton has worked for everything I need.

~~~
speedgoose
Have you tried WSL (Windows Subsystem for Linux)? After many years on Mac and
then Linux, I switched to Windows and it's actually fine.

~~~
Boulth
I worked on Windows for two decades and tried WSL1. Windows is not super
annoying but as a developer all my tools were actually Linux native or cross
platform so one day I just cut the middle man and switched to Linux. It wasn't
such a big leap but my productivity definitely increased.

WSL is nice when you don't have choice. Linux is actually the optimum choice
for most developers.

~~~
bavell
Absolutely agree with your last two sentences. WSL is a nice stop-gap but I'd
much prefer the real thing.

------
mherrmann
Like OP, I switched to a Dell XPS from Mac. First with the pre-installed
Ubuntu, then Xfce + Debian and now Debian + i3. It comes with headaches.
Ubuntu (16)'s window handling was sometimes buggy for me. Xfce was fast and
worked very well, but I wanted something with better multi-monitor support and
even more minimalistic. i3 fits that bill nicely. I would not want to go back
to Windows, Mac or Ubuntu for that matter, because they all force their agenda
on you. (Ads in my start menu? No thanks. iTunes / Garage Band / many other
apps I really don't want / "Sign into your Apple account"? Also, no thanks.)
Plus, like OP, the shell on Linux is best when the server OS is the same as on
the dev machine. It's not perfect, but I really wouldn't want anything else
anymore.

~~~
noja
Did you mean Ubuntu 16 (from 2016)?

~~~
mherrmann
Yes. It was a while ago.

------
swayvil
As another weirdo who prefers a trackball, I fail to see how anybody can stand
to use a normal mouse.

~~~
uneekname
Any recommendations? I've been eyeing the wired Expert Mouse from Kensington

~~~
swayvil
Logitech Trackman Marble Trackball Mouse

[https://www.amazon.com/dp/B001F42MKG/ref=cm_sw_em_r_mt_dp_U_...](https://www.amazon.com/dp/B001F42MKG/ref=cm_sw_em_r_mt_dp_U_wHkUEbMY3Z362)

------
wayneftw
I can't recommend Manjaro Linux enough. It's the desktop system that got me
off of Windows due to the sheer ease of installing software and maintaining a
stable system, which I've done now for 2 years on 3 different boxes.

I've been trying out Linux desktops since the late 90s and this is honestly
the first system that didn't eat itself after an update.

------
9wzYQbTYsAIc
Running MX Linux (Debian for power users) on my work laptop as a dev in the
.NET ecosystem.

Two external 4K monitors plus the laptop screen with no problems. Running
VMWare Workstation to do my Visual Studio work and Linux native VS Code or
JetBrains tools (DataGrip in particular) for everything else.

------
rvz
Well, WSL2 already fulfils this and allows me to use the same Windows standard
defaults and using Linux in a VM with access to its file system in a single
click install without rebooting back and forth with a Ubuntu install.

------
butz
ImageOptim conveniently lists available alternatives for other platforms:
[https://imageoptim.com/versions](https://imageoptim.com/versions)

------
jelv
Author is creator of Pinafore
[https://pinafore.social/](https://pinafore.social/). An amazing fast and
accessible pwa client for Mastodon.

------
incadenza
I’ve tried a few Ubuntu distros as of late and truthfully they’ve all been
pretty impressive. The last issue I really have is fractional scaling on a 4K.

------
smitty1e
I work a lot in CentOS via VirtualBox. Not quite have-your-cake-and-eat-it-
too, but close.

------
oblib
Nolan has done a lot of work on PouchDB.js too. That is a pretty great bit of
software.

