news.ycombinator.com

Ask HN: What are your biggest frustrations with Linux development?

Updated 2/1/2025

Excerpt

Builds? CI? Testing? Lack of good IDEs? Lack of visualization? Dev tools? Refactoring? What are your challenges? (and of course what environment are you using and how does that affect it?) ... The visual studio debugger is great. gdb and various front ends for it are all various levels of not so great. There is a better featureset in gdb for the very skilled users to do tricky things, but it's still a bear to learn and get conformable with. Putting the .build-id directory on the network and getting subsitute-path pointing at the right location to debug a continuous integration build from 16 months ago? The hardest part is happening to learn those features exist, and the legwork to make it quick and easy to use is PITA too. … ... What really irks me is the desktop environment situation. I haven't had a linux install in a couple of years and it seems that all of the desktops have gotten worse in the last few years. Unity continues to add on terrible features and follows the similar ui antipatterns and gnome 3 has. KDE4/5 are decent but very heavy. … I disagree on the well thought out IDE. A lot of people I know are more productive with them, but the functionality tends to actually slow me down. The interfaces are generally point and click oriented, which I prefer to avoid. Another issue is that non-typical functionality tends to be hidden behind deep, unintuitive menus. Doing simple things often means digging through documentation, searching the web, or even manually digging through menus which wastes a lot of time for me. For example, building a static LUT with 255 entries. With vim (nvim), all I need to do is... … The lack of documentation, missing libraries, unpredictable crashes on software upgrades (which came from different sources, absolutely without automation, manually running setup.exe's) and different UX, unsought taskbar icons really annoyed me. Now if I sit in front of a Windows PC, I feel it's just an useless gadget. Linux was the cause I became a software developer. … Dev setup config: pathogen.vim, ssh custom host config, ssh keyless entry, ssh tunnel, .bashrc/.bash_profile, alias, /etc/init.d/, .gitignore, vurtualenv(python), vagrant, docker, bash script for automation, supervisord As a desktop user - I am a big fan of Gnome but just don't see GTK going anywhere. My bias towards Gnome is due to it's design principle. Wish for a Qt Webkit like layer on top of Gnome for native application development. For some reason KDE seems cluttered to me but to their advantage they have Qt. … The update issue can be problematical with not all that many distros providing Long Term Support. systemd + Debian's short term support, one year after a new version plus a volunteer effort starting with squeeze is prompting me to abandon it and its famed stability between releases. I'm trying Alpine for Xen, with probably the current LTS Ubuntu without default systemd for development and who knows what else on VMs. … 2. Package management. Again, a package may be available under vastly different names or config depending on what your distro overlords decided 3. Second class Citizens. Games and software that I want to use is very often never available for Linux. Companies that used to develop are dropping it (ynab). Indie game devs are picking it up, but companies like GitHub are still to even commit to a linux client. Google Drive for Linux was announced more than 3 years back to be under development, but is still unreleased. I still love Linux, and refuse to switch to Mac (despite almost everyone around me doing so). This is mostly because I love how easy and straightforward it is to develop in Linux. axle_512 on July 21, 2015 Distributing binaries for Linux was complex. libstdc++ compatibility across distros or different versions within a single distro wasn't great. (Compared to Solaris, it seemed like libraries were always backwards compatible. Running old binaries always just worked.) danwakefield on July 21, 2015 It has some weird problems like forcing gnome-keyring-daemon to run which breaks ssh-agent. The only fix I have found to to create a wrapper script that always disables its ssh component. … GNOME 2 was incompatible with all of the GNOME addins I'd installed. Also, it had a completely different UI. Like... completely different. And every time I launched an X11 program, it moaned on its tty about XRandR being missing. All in all the experience was far from slick.

Source URL

https://news.ycombinator.com/item?id=9921461

Related Pain Points

Fragmented packaging and distribution across distributions

7

Different Linux distributions use incompatible package formats (RPM, .deb, Pacman) and package managers, forcing developers to maintain separate builds and repackage for each distro. This creates significant resource overhead, especially for small teams.

compatibilityLinuxRPMdeb+3

Limited or unreliable software alternatives

7

Professional desktop applications available on Windows/macOS are either missing on Linux, unreliable, or lack key features. Users must find workarounds or use incompatible tools that their teams don't use.

ecosystemLinux

Inconsistent system configurations across distributions

6

System library versions, dependencies, and configurations vary wildly across distros. Each downstream change adds another testing variable, making it difficult to ensure software works everywhere.

compatibilityLinux

Desktop environment major version incompatibility (GNOME 2 to 3)

6

GNOME 2 was completely incompatible with GNOME 3, breaking all installed addons and presenting a completely different UI, creating a disruptive upgrade experience.

compatibilityGNOME

Linux debugger (gdb) complexity and poor UI compared to Visual Studio

6

GDB and its frontends are significantly less user-friendly than Visual Studio's debugger. They have a steep learning curve, and discovering and configuring advanced features (e.g., build-id directories, substitute-path) requires extensive effort.

testinggdb

Linux distribution short-term support cycles

5

Many Linux distributions do not provide long-term support (LTS), leaving users with short support windows (e.g., one year after release). This instability between releases discourages adoption for production use.

configUbuntuDebianAlpine

Desktop environment degradation and poor UI/UX on Linux

5

Major Linux desktop environments (Unity, GNOME 3, KDE 4/5) have either declined in quality or become overly heavyweight. UI antipatterns are common, and the overall desktop experience has worsened in recent years.

dxGNOMEKDEUnity

GNOME keyring breaks SSH agent functionality

4

GNOME keyring daemon automatically runs and breaks SSH agent, requiring developers to create wrapper scripts to disable its SSH component as a workaround.

compatibilityGNOMESSH

IDE usability issues and hidden functionality on Linux

4

Linux IDEs tend to have interfaces hidden behind deep, unintuitive menus where simple tasks require digging through documentation or web searches. Point-and-click interfaces slow down power users.

dx