11 ms·
Ask HN: What are your biggest frustrations with Linux development?
For those of you who develop using Linux, what are your biggest frustrations?
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?)
- vhf 11y agoLack of good hardware/laptops. I had a Lenovo X200s for over 4 years and finding a viable replacement is almost impossible. I am saddened by the fact that there are no i7 / 16GB / highDPI with decent keyboard at the price of a 2015 Retina MBP.
- djent 11y agoTry a 2015 Dell XPS 13. Fits all your specs, also has a developer edition with Ubuntu already installed.
- misframer 11y agoNo, it doesn't. The XPS 13 can only have a maximum of 8 GB RAM.
- jeletonskelly 11y agoIt's true, but I thought the limitation was that it only supports a single dimm and there aren't 16GB single dimms yet?
- joshuapants 11y agoI believe the RAM is soldered in, so it's not like you could replace it later.
- jeletonskelly 11y agoDeveloper edition is not out yet... I thought. I got one a couple months ago and run Arch on it. Support for the microphone hasn't made it into a kernel release yet, so I thought they were waiting for that to release the developer edition. Also, it only supports 8 gigs max right now. I'm sure a 16g single dimm will come out eventually, so you could upgrade it yourself.
- beefsack 11y agoI believe the RAM is soldered on, upgrades may not be very feasible.
- jeletonskelly 11y agoOh no... you're right. I guess I'll just convince myself that 8GB is TOTALLY enough :-(
- bdpuk 11y agoHave you looked at the Clevo 230SS? It goes under the name Optimus VI with PC Specialist.
- jon-wood 11y agoI'd warn you that I'm running a Clevo 230ST more or less maxed out on RAM and CPU, and while its a fantastic machine performance wise, and has a pretty good isplay and keyboard, the cooling is atrocious. Despite usually sounding like a jet engine it pretty regularly throttles the CPU due to overheating. At some point I'll get to dismantling it and seeing if some more thermal paste helps matters, but in the meantime it can get really quite irritating. I'm currently sitting in a warm coffee shop window, and parts of it are getting to the point where they're uncomfortably warm to touch.
- 3pt14159 11y agoSame. I spend at least 2 days a year keeping my MBP installed with Ubuntu. Any major OSX upgrade and I need to reformat my Ubuntu partition and I'm constantly running out of space on both OSes. If Linux had proper video editing I wouldn't need to do this.
- navinp1912 11y agoI'm using HP ZBook 15 G2 Mobile Workstations with ubuntu 14 LTS since last 3 months. The only thing i miss is SSD that i didn't choose in my customization. Has 16GB RAM, i7 . I switch between Win 8.1 and linux (something lxde instead of unity). The nice thing about this linux can run VMs and it is pretty fast and even containers work well. Also Win 8.1 ultimate has hyperv role so you can use that as a hypervisor as well. Initially i had 64 bit 15.x but some unity programs used to crash when it released , so i installed something good. I'm didn't find any problem with anything until now. http://www8.hp.com/in/en/campaigns/workstations/zbook-15.html http://www8.hp.com/in/en/campaigns/workstations/zbook-15.htm... http://www8.hp.com/in/en/products/laptops/product-detail.html?oid=6978814#!tab=specs http://www8.hp.com/in/en/products/laptops/product-detail.htm...
- jordanthoms 11y agoUnfortunately, one look at that will tell you that it's no match for the rMBP in design or portability.
- nextos 11y agoThinkpad retro might a thing to look forward to: http://blog.lenovo.com/en/blog/retro-thinkpad-time-machine/ http://blog.lenovo.com/en/blog/retro-thinkpad-time-machine/
- jsnell 11y agoWhat's your issue with the x250? It goes up to a i7-5600U, has a great keyboard with a tolerable layout, resolution up to 1080p which is pretty decent for a 12.5 inch screen. It even has a SO-DIMM slot rather than soldered on RAM so you can do 16GB of memory (caveat: 16GB SO-DIMMs are single-source and not cheap). The x250 is still a hard upgrade to justify if you're coming from an x220/x230, due to the ULV processor. But there should be no question when coming from an x200.
- ofcapl_ 11y agotry ASUS Zenbook - best linux hardware I was working on so far.
- jamespcole2 11y agoTry the Asus Zenbook UX305, everything works out of the box with Ubuntu and it's as thin as a Macbook Air but more powerful and with a ridiculously high res screen.
- bloodorange 11y ago* Having to make efforts to keep the system working smoothly after regular system updates * Hardware vendors not showing much love
- hga 11y agoI use server/workstation parts for systems (not a laptop guy), so that's not so much of a problem, but can still be an issue with e.g. having to use a newer kernel that's not getting security update love. 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. Ah, yeah, the chaos in GUIs is not good, e.g. Gnome going off in a bogus direction after version 2. I'm happy enough for now with Xfce, but its got less mindshare.
- andrewchambers 11y agoPersonally, I can't find a text editor I like. The closest I came was acme from plan9, shown here https://www.youtube.com/watch?v=dP1xVpMPn8M https://www.youtube.com/watch?v=dP1xVpMPn8M. I would love to see an editor which clones acme, but follows a few of the modern ui conventions.
- deleted 11y ago[deleted]
- _cbdev 11y agoI've never had those problems with my laptops (though I exclusively use Thinkpads). Multi-monitor works pretty well out-of-the-box with the big desktop managers (Gnome/KDE), and even using xrandr manually is not that hard. Audio with alsa has also been a painless experience for me, though I heard differently from some people. Using Debian (which is not well known for always having the most up-to-date releases), I've as of yet never had to compile my own kernel to enable any of these.
- Galanwe 11y agoThis has to be some sort of satiric joke ...
- ledbettj 11y ago> If you want working multi-monitor support you will pretty much have to compile your own kernel, add custom repos, and manually configure X. I don't think this has been a problem in years, and even 10 years ago I never had to compile my own kernel for multiple monitors to work.
- jeletonskelly 11y agoxrandr?
- r3bl 11y agoI only tried working with one external monitor, but I had absolutely no problem with it what so ever. Audio is working great out of the box for me and I had no troubles with the trackpad neither, which I did have on my Windows system (basically, I couldn't disable some of its gestures and trackpad worked even when my fingers were slightly above it but weren't touching it, which was highly annoying to me).
- to3m 11y agoI had no problems at all with one external monitor, aside from BIOS output only ever going through the internal Intel GPU, so I couldn't use the console. To get a 3rd working, I had to buy a second GPU (since there seemed to be no way to use the internal Intel GPU for X at the same time). So: 2 monitors with my original graphics card, 1 monitor with my new one. This was then somehow incompatible with XRandR, so I had to set it to use Xinerama. GNOME 3 is incompatible with Xinerama, so I had to switch to GNOME 2 - or, to be more accurate, GNOME started up in GNOME 2 mode without giving me any indication why. 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. What I did on Windows: plugged 3rd monitor into socket for internal Intel GPU. Ticked box to say I wanted desktop on 3rd monitor. It worked.
- PatKelly 11y agoI develop applications in C++ on Linux and Windows. On windows I can enable heap tracing and have leak detection included in my test cases (Google mock/test). On Linux I need to run my app under Valgrind for leak checking as a separate process.
- michael_h 11y agoClang has a leak detector: http://clang.llvm.org/docs/LeakSanitizer.html http://clang.llvm.org/docs/LeakSanitizer.html It also has an address sanitizer that checks for out of bounds errors. I have found both to be enormously useful.
- padenot 11y agoYou want to make ASAN builds (simply build with clang or gcc > 4.8 with -fsanitize=address on the command line). Then you can break in a debugger, and do some tricks, explained in this page: https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerAndDebugger https://code.google.com/p/address-sanitizer/wiki/AddressSani.... This will also detect any memory trashing or the like, while being quite fast (compared to valgrind, of course). Then if things are really weird, you can use valgrind.
- r3bl 11y agoI have to say I'm pretty satisfied, even more than I was before when I was using Windows. Everything seems easier to install and I don't need gigabytes of space to build my environment. (Visual Studio, I'm talking about you!) Working with Git and gcc was as easy as it can get right at the beginning of my switch. Back in Windows days, I was primarily using Dev-C++ and a GitHub desktop client (which I really don't like btw). Now, I'm just using Atom with a couple of third party extensions. Although I have to say that I kind of miss the easiness of building desktop applications using Visual Studio. I haven't found a single IDE that allows me to create forms with just a few clicks like Visual Studio does. I stopped paying attention to GUIs for my programs primarily because of that.
- oneweekwonder 11y agoIf you are willing to do Qt/C++, QtCreator can easily create forms, the same way as VS.
- giancarlostoro 11y agoI have to mention it's not as straight forward last I tried it, but it's still usable. My lack of C++ understanding has kept me from really getting into Qt / C++ though.
- benwaffle 11y agoYou can use Glade for GTK+ and QtCreator for Qt
- axle_512 11y agoFrom my experience several years ago: 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.)
- SFjulie1 11y agoDealing with lazy people asking stupid questions and making everyone loose time and resisting the urge to pick on them.
- czardoz 11y agoSometimes, people just don't know.
- collyw 11y agoMost of the time techies don't know either, but have a sensible approach to finding out.
- chris_wot 11y agoI once went into the #debian channel on Freenode. I'd gnaw off my right arm before I'd enter there again. But I think you'd be right at home.
- zoner 11y agoI'm mainly developing PHP applications (Magento, Symfony) And I found Linux much easier. Back in 2000 (ish), when I switched to Linux the biggest confusion was the different format of configuration files and scripts. In Windows, I get used to .ini files and .bat batch scripts. When I switched to Linux (well, it was more like a slow process) I was confused about this. Fetchmail config format, the apt sources tree format (which seemed to be an .ini) and all the config files in /etc was all different. I finally managed to get my emails fetched and sorted to different folders based on topic and sender, using Fetchmail, then I was happy to read them in Mutt. The UI looked terrible (well, it was text after all) so I tried Balsa and used it for years, then Sylpheed, Claws Mail, still backed with Fetchmail. I can imagine that the different GUI libraries would confusing others, but I always managed to sort my installation to use only one. If I had KDE, I installed only KDE or at least Qt programs. If I had GNOME, then so that it. Nowadays, I use AwesomeWM mainly with 3 or 4 software only, on 3 screens: the first screen is the terminal with tmux, the second (middle) is the browser, Thunderbird, the third is Sublime, so I don't get nervous about installing different libraries. With all of these, Linux felt better than Windows and it's openness and community support encouraged me to discover more and more. Back in those days I really tried every programming language I could: Java, Ruby, C, C++ and I had no confusion learning and using these on Linux. I was only confused when sometimes I had to switch back to Windows. 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. I have only experience with one IDE, which was Netbeans. I used it mostly for developing Rails applications and I found this was the only IDE which does not get in my way. I just can't get used to PHPStorm today and I found Eclipse too slow, so I'm using Sublime as my primary editor now. Before it was Geany, gEdit or just Vim. I was never able to learn Emacs, but probably it's my fault :)
- Happpy 11y agoThinkpad running fedora, a dream come true.
- scalesolved 11y agoI love working on Linux, running Ubuntu 14.04 LTS on a Lenovo S540 (lightweight, 16gb ram,i7,ssd). The biggest pain point for me are mainly using tools that other parts of the business want to use like: Slack -> No Linux support, Zoom (video conferencing) -> Early beta support, 1Password -> I use last pass instead. Macs have really dominated some areas of the tech scene especially in the non engineering sections of the business, thus collaboration tools and such seem to be Mac orientated or Mac only. In every other respect I'm far more comfortable and productive on Linux.
- giancarlostoro 11y agoI know HipChat runs on Linux very well, and on most of (if not all) my other devices. If you could convince your company to make a switch somehow, it could work. But sadly that's a nice big if, not sure if you're in a situation or position capable to convincing them. I'm also not sure of the differences between Slack and HipChat, I've only used HipChat.
- scalesolved 11y agoWe migrated away from HipChat, I think the only thing that HipChat does better is it's support for Linux. Overall personally Slack is better but for a company with such huge funding it's surprising not to see a linux client.
- Foxboron 11y agoBut slack do have Linux "support". You can just use the IRC gateway through any Linux clients, or look up a project like slk, https://github.com/drikin/slk https://github.com/drikin/slk There are also projects that wrap around 1Password. http://www.lucianofiandesio.com/1password-in-linux http://www.lucianofiandesio.com/1password-in-linux It's far from perfect. But the great thing with Linux in my opinion is that there are always alternatives.
- scalesolved 11y agoOh yeah, my only minor grumblings against it are lack of one or two clients, I think with Slack's case I'd like to see them make an official client, with $160m in funding I'm sure there is leeway to get an official linux client in the works. Thanks for the slk link, gonna check it out! :)
- jules 11y agoAnything sysadminy like building third party libraries or configuring tools and getting them to work. I just want to write code, not fight with installation and configuration. Editors and dev tools are all fine after they are installed and configured.
- staticelf 11y agoWhat I think really lack in Linux is: - Good hardware that is nice to use (look beautiful) and works well with Linux. - A great IDE that doesn't look like shit right out of the box. I know many can be configured and tampered with, but I simply do not enjoy that enough to go through the pain. Otherwise, my biggest pain and why I definately go back to Windows is that I can't play my games on my machine. Many games still only work on Windows or works much better on Windows due to bad graphics drivers. I really like Linux, I always use it as a server or to host stuff. But in the later years of my life I simply get too frustrated (often with small stuff) to keep using Linux as my main desktop operating system. At work I use a macbook because it has nice to use hardware with desktop software that is more polished than any linux distro but still keep the unix feel.
- giancarlostoro 11y agoHave you given the JetBrains IDE's a shot? There's also Qt Creator for C / C++. Not sure what kind of development you do, but there are some nice IDE's that come pretty out of the box. The only friction is installing them, though in the case of JetBrain you just download it, unzip it, and run it, it adds its shortcuts where needed.
- nextos 11y agoI think the trick is to cherry-pick laptops. There's only a handful of decent laptops in the market that run Linux very well (drivers in kernel, perfect powersaving, ACPI events from battery, etc). My MacBook Air 11 inch 2012 (formerly used by Linus) is pretty good. So were some Lenovos like x220. These days Chromebook Pixel or Dell XPS hold some promise. Also cheap Chromebooks like some Acer and some Asus. I have my eyes on cheap ARM machines for their capability to run blobless (e.g. Asus C201).
- collyw 11y agoThe keyboard is missing keys (like delete) and there is no button on the mouse. Small things but pretty annoying if you are used to clicking the middle button for pasting. And the battery seems to last about half of the time compared to OSX
- karka91 11y agoUnstable virtual box networking on my arch machine that requires occasional suspend and resume of a vm. No good looking and stable gui client for mysql. I've been doing dev with linux for most of my carrier and I honestly don't know why would someone use another os. Windows dev looks very weird to me with trillions of popups, little windows and checkboxes. Mac looks like it's trying to replicate linux tooling and while it's pretty good you still need to jump some hoops
- forgottenpass 11y agoThe debugging workflow is a mess. 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. Some developers... they just want to open the visual studio debugger and smash "step over/into" until their code works. This isn't the best approach to development and they should probably do a bit more "sit and think about the code" in their development. But professionally I have to support this workflow, it's much smoother in VS than when targeting linux. And it's not an excuse for bad debugging tools either, sometimes you do need to spend a day in the debugger to solve things.
- kurjam 11y agoDon't really have any frustrations to be honest. All my personal projects and stuff I do for fun (both mostly in ruby) I do on ubuntu 14.04. Use VIM, a lot of plugins and some custom CLI tools. Have never tried developing on Mac, though so maybe I just don't know what am I missing (windows isn't even a thing for ruby devs. And for good reason). Only thing I'm kind of missing/sad about is lack of games on Ubuntu. Upside, though, I won't get lost in a "quick 20 minute brawl to clear my brain" that never lasts 20 minutes.... For sake of honesty, I do my daily job on windows. Stuff I use there is awesome. VS is nice, Windows domain works well enough and lync, outlook, fiddler, slack etc. are all nice. If, for w/e weird reason, I had to do my daily job on linux, I would be sad. But most likely, I'm not frustrated with linux because I chose to use it for fun etc. If, in any point in my life, I would have been forced to use linux, I'd probably find a lot of problems with it. //EDIT And uhm. I've never really had any problems with linux and hardware. For personal stuff I still run an old thinkpad t420s which hardware gets along with linux a lot nicer than it did with windows 8. Touchpad acts a bit better, touchpads 3rd button actually provides some nice functionality and most importantly, gsm card worked out of the box (something I never got up and running on windows 8). Once more, for sake of honesty, it shipped with windows 7 so maybe the drivers provided for the gsm card aren't compatible with win8. who knows. Never had any problems with my desktops running Linux nor my previous thinkpad either.
- towb 11y agoI did the switch from OS X to linux about six months ago and I am pretty much using the same tools for front and back end web stuff. Then there is a huge plus for all the free new knowledge you get from using linux as a "power user", so if anything, the switch made it easier to deal with all kinds of things. I suppose the question was more about low level development than in my case, where tools depend more on the system it's run on, but for me it has only been positive.
- elektronjunge 11y agoDevelopment tools on linux continue to be great. A visual studio quality ide would be nice, but realistically I'd continue to use vim and the terminal. 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. Xfce and lxde are great but you occasionally run into some weirdly missing features (no font manager -- why?) that make you pull in gnome/kde and question why you picked a lightweight desktop in the first place. I'm not sold on the tiling window managers, ya the tiling is nice, but they look terrible, require way too much config, and sometimes I just want to use the mouse damn it.
- uxcn 11y agoLinux Mint might be an option. It's essentially Ubuntu, but it swaps GNOME for Cinnamon which does away with a lot of the more recent GNOME changes.
- deleted 11y ago[deleted]
- danwakefield 11y agoUsing xubuntu, switched from crunchbang a year ago after a drive failure. 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. I sometimes get focus issues requiring me to tab through the windows to refocus the correct one. I dislike the practice of littering my home directory with dotfiles. I prefer them to be put in .config. I have 10 directories in $HOME and another 85 dotfiles/dirs there at the moment. New ubuntu versions start you out with capitalized folder names which is annoying. NetworkManager often bugs out. displaying in a tiny one line box you have to scroll through or disabling wifi when i attempt to start a VPN connection. I cant be bothered to learn wicd though
- navinsylvester 11y agoNo gripes since Linux is by far the best development environment for most technologies. I am running Ubuntu desktop(Gnome) vms inside my macbook pro and macbook mini but going to install Ubuntu on metal itself. I like apple hardware not much their OS(especially for development). Use quite a handful of Ubuntu server edition without GUI for development and testing too. CLI can be as ease for development but with right tools and config. Tools: vim/nano, curl, grep, rsync, find, mitmproxy, autossh, tar, syslog, seige, top, wget, netstat, lsof, sed, df, du, ifconfig, iptables -L, ping, dig, traceroute, strace, screen, tcpdump, telnet, history 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.
- uxcn 11y agoI prefer developing with Linux. There are generally more tools available than Mac and Windows. Some of the ones I use are xmonad, tmux, vim (nvim), ag, ycm, clang, gcc, gdb, cmake, make, ninja, perf, valgrind, strace, etc... Compared to Windows, even just having a decent shell with coreutils is huge. If there is something that a tool doesn't already do, I can generally combine other ones to do it. For example, sed can handle basic refactoring. It's also generally easier to install new tools through the package manager (I use Funtoo). I know a lot of people tend to prefer cleanly polished IDEs, and I do use eclipse and eclim for java development, but normally IDEs tend to get in the way for me. As for the specific questions, building definitely isn't an issue and there are plenty of cross-platform build systems when it's needed. Continuous integration is usually handled separately on a build server (hudson, jenkins, team city, etc...). In fact, a lot of the collaborative tools for things like continuous integration and issue tracking are mostly usable via web applications (bugzilla, jira, etc...). My biggest frustration is when tools that aren't usable on Linux get standardized on. Outlook is the easiest example, but for anything where it's absolutely necessary it's extremely easy to run a virtual machine with kvm and libvirt.
- WorldWideWayne 11y agoSome of those exact tools you mentioned might not exist on Windows, but comparable tools absolutely do exist. You might even have to pay for them, but I bet in those cases, you at least get a nice UI as compared to none.
- uxcn 11y agoThere are some similar tools on Windows (e.g. Sysinternals). UIs generally aren't scriptable, which is a serious limitation for me.
- WorldWideWayne 11y agoThe fact that UIs aren't generally scriptable doesn't mean that the dev tools I'm referring to aren't scriptable or otherwise able to be automated. There are a lot of trade-offs that I think Unix-centric devs don't realize, for the simple fact that they don't venture outside of their own ecosystem for various reasons. One of those trade-offs in my opinion is a certain lack of polish that seems to pervade the Unix-dev-tools landscape. There are thousands of instances of this, but one that I recently encountered was that Vim just can't do code folding very well. You can make it fold on syntax or on markers, but not both. AutoFold tries to remedy this, but as you add plugins to make Vim do things that Visual Studio does well, performance goes down. Another things that annoys me when I'm working on nix systems is that I feel like I always have to cobble together my kit before I can begin any real work. I'll take a well thought out, professional dev-kit from a big name company any day over a disparate set of single-purpose bins and libs that I have to string together.
- captn3m0 11y ago1. Fragmentation. Getting something as simple as a bluetooth speaker is a challenge depending on which distro you are on. 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.
- jamespcole2 11y agoMy biggest frustration with Linux development is how poor it has made windows development env look in comparison. Every time I have to fire up a windows VM to do some work for some of our clients that still use MS tech I hate it. Before using Linux as a dev environment I honestly thought windows and the associated dev tools were really good. Now using anything else seems like a huge chore.