A lot of people really like the design (UX and aesthetic)
The unixy stuff is more “built in” than WSL on Windows
Shit’s expensive
Still have vast software availability
Apple really talks a good talk on privacy and such
Linux:
Everything has really rough edges
All desktop environments are full of papercuts/bugs
Counter to the above point, there are a TON of UX choices, which is neat
Minimal software availability
The only option that is (mostly) free software, where you actually own and control your own machine
I don’t mean to rub anyone the wrong way and I’m not preaching, but the last bullet point is the one that matters the most to me and I suspect it always will be the most important for me, personally. If I can get a machine that runs Linux, even in a fairly hobbled way, I’m going to take it over other options where I don’t know whether my machine is going to just not let me use it one day (literally happened to my ex with Windows Vista) or whether it’s going to send information about what software I’m running on it to headquarters, etc. No amount of polish and convenience is really worth it to me. But for others, the calculus is different. That’s okay, too.
the penultimate point, about software availability, depends a lot on what software you need. both my work and hobby coding are in the area of programming languages and tooling, and the communities and development process around a lot of them are very much linux-first.
I like this breakdown too. As someone who literally wrote every line of code that powers their desktop environment (sans the X11 server, but including the X11 client, WM, pager and so on), I really appreciate the ability to build and customize my own bespoke UX from the ground up. Every other environment I’ve tried just seems to be locking things down more and more, making it harder to customize things to my liking.
As someone who has been using your X11 WM for a few years, I appreciate your efforts! Now moved back to macOS mostly because of annoying inconsistencies in ecosystem around Linux, but I really miss the “don’t raise window on click and focus” feature. So far I’m not aware of any alternatives out there.
Also, I’ve been impressed by how well Android x86 (that counts as desktop Linux too, right?) integrates with MBP 2015 touchpad. There was no force touch support, but multitouch experience was on par with that of an Android running on a phone with touch screen. That is to say that it’s way better than macOS, and goes in no comparison with multitouch support in GNOME and other Linux-based distros—e.g. I’ve had a lot of issues with scrolling being apparently designed only for mouse wheel scroll-by-line interactions.
Oh wow, I didn’t realize anyone besides my wife and I used Wingo. Neat!
and goes in no comparison with multitouch support in GNOME and other Linux-based distros—e.g. I’ve had a lot of issues with scrolling being apparently designed only for mouse wheel scroll-by-line interactions
Yes, the state of affairs is truly terrible compared to Mac. I’m happy when two finger scrolling works at all. But like, I have to disable tap-to-click on my touchpad because otherwise the software (or hardware?) isn’t good enough to detect my palm and I start getting spurious clicks. I’d love to have a clicky trackpad, but so few laptops have those.
I’ve been vaguely aware of that project, yes. I think I just assumed that I would eventually benefit from it automatically, but maybe that’s a wrong assumption. I’ll take a closer look, thanks.
I used wingo for about a year myself, and I quite liked it! I mostly switched away because I wanted to explore the landscape, and then I started trying to run Wayland desktops exclusively. It’s a great little project though (wingo). Thanks for spending the time on it!
t I really miss the “don’t raise window on click and focus” feature
oh yeah that is such a killer improvement. When I switched to Blackbox WM back around 2007 I left on sloppy focus and click doesn’t raise. A lot of people look at one without the other but I think they need to be used together… and then it is just so much nicer than anything else out there.
I’ve heavily customized my copy of blackbox (and wrote my own taskbar, terminal emulator, and many other things) over the years and I never want to leave it. Always painful to have to use other systems without it.
Thank you, I’ve been thinking about this since reading your comment. It has convinced me to move back to using linux as a daily driver.
Such horrendous behavior we have come to expect from Microsoft Windows, Google Android, and many aspects of iOS and Mac OS, as well as our web-browsers and mobile applications. Well, we don’t have to. CentOS is far superior, because this means my computer is no longer going to actively spy on me for the sake of profits or more nefarious reasons.
Of course, I’ll be starting out with centos 7 for stability’s sake, but if I need to upgrade over the years for compatibility I may use fedora, as long as all the software is free and, here’s the biggest factor, as long as it does not actively spy and log my activitiees.
Linux productivity software is fine, but there are rough edges for the power user
Interesting. For me, it is the exact opposite. I used Linux as my main desktop from 1994 to 2007. In 2007 I switched to macOS as my main desktop OS. The last few years I have slowly been moving back to Linux as my main desktop. After a short adventure with the M1 MacBook Air, I decided that the Mac ecosystem is definitely on a trajectory that I don’t like anymore, and returned the M1 Mac and sold my last Intel Mac.
What I like about the Linux desktop is that it is so much beter for the power user. Better profiling (perf), better observability (eBPF, yes there is DTrace, but the eBPF ecosystem is so much more exiting), better customizability, better development tools, better package managers, native containers, etc.
What I dislike is the lack of high-quality productivity software (and since when are e-mail clients and calendaring apps not productivity software?). Sure, we have LibreOffice, GIMP, Inkscape, Scribus. But I would love to be able to use Microsoft Office, the Affinity Suite, OmniGraffle, etc. Many productivity apps are just too far ahead of open counterparts. So, even though I moved away from the Mac, I now have to keep a Windows partition around to run Microsoft Office.
FWIW DTrace is completely broken out of the box on OS X. Apparently it’s fixable but you have to disable SIP. This makes me extremely sad.
If I find myself in the position of needing to understand something very weird that a piece of software is doing, if it’s portable across unices then it’s sometimes easiest to run it in a Linux VM since things like strace actually work there. :(
When something isn’t working on my Linux workstation I similarly take it over to an illumos VM where truss and DTrace are available haha, so I know the feeling.
Not going to lie, I think I’d be tempted to do the same if I did know dtrace (and to a lesser extent illumos, but eh I assume it’s well made enough to not be difficult).
I don’t because of a lack of familiarity with the tools.
When I’m using Linux I still miss ftrace from BSD. strace is great except that the probe effect is so bad.
What I dislike is the lack of high-quality productivity software (and since when are e-mail clients and calendaring apps not productivity software?).
This is something I’ve noticed as well. Linux developers prioritize things that they’re interested in (perf, eBPF, DTrace), meaning that the stuff that they don’t care about (productivity software, especially email) lags behind Windows/macOS by years (if not decades) - but commercial developers won’t port their stuff to Linux, because (in addition to the market being small) Linux users have been habituated to not pay for software!
I’m inclined to say that this is a product of the FSF’s rabid anti-commercial-software propaganda, but maybe there’s another reason.
I think it’s simply more to do with power structures – like, the Mac has a good email client, because someone at Apple pays people to make it, and more importantly, decides what it’s going to do. Free software has tended to operate without a singular product vision, so in order to make progress, the people involved seem to try and clone what they’re familiar with.
but commercial developers won’t port their stuff to Linux, because (in addition to the market being small) Linux users have been habituated to not pay for software!
I’m inclined to say that this is a product of the FSF’s rabid anti-commercial-software propaganda, but maybe there’s another reason.
I thought we debunked this theory when Steam came to Linux.
The truth is that it’s just the old chicken and egg problem about small market share and market share won’t grow until peoples’ favorite software is available.
I thought we debunked this theory when Steam came to Linux.
Computer users have completely different expectations for games and productivity software, and are far more willing to pay for the former across every platform. Steam coming to Linux did not “debunk” that theory at all.
The truth is that it’s just the old chicken and egg problem about small market share and market share won’t grow until peoples’ favorite software is available.
Please don’t say things like “the truth is” without any irrefutable substantiating evidence.
Meanwhile, that’s your spin on things. I would then ask you why macOS productivity software is so much better-developed than Linux, when the former already has a tiny market share compared to Windows.
Computer users have completely different expectations for games and productivity software, and are far more willing to pay for the former across every platform. Steam coming to Linux did not “debunk” that theory at all.
I agree that computer users are much more willing to pay for games across every platform. I’m not sure how that debunks my debunking. I’m asserting that Linux users are just as willing to pay for Steam games as people on any other platform (though we obviously don’t have hard data on that). If that’s true (or even close to true), then I think that does debunk the argument that they aren’t buying other software because of “being habituated to not paying for software”. Linux forums EXPLODED when Steam came to Linux. People were losing their minds to throw money at Valve. I would think that the anti-spending habituation would take time to wear off, but it did not seem to in the internet circles that I frequent (and the small handful of people I knew in meatspace that ran Linux also buy/bought Steam games).
Along similar lines, I don’t think I know any Windows users that are buying Microsoft Office or Adobe PhotoShop for personal use, either. It seems to me that the willingness to pay for entertainment and not for productivity software is more or less universal…
Please don’t say things like “the truth is” without any irrefutable substantiating evidence.
Fair enough. I suppose I could’ve been more clear in indicating that this was a statement of conjecture. (But irrefutable? That’s a high bar for a semi-casual discussion about human behavior, no? ;) )
Meanwhile, that’s your spin on things. I would then ask you why macOS productivity software is so much better-developed than Linux, when the former already has a tiny market share compared to Windows.
Can you give examples? I ask that genuinely, just so I can understand what we’re talking about. I do mostly run Linux on my personal machines and have a Mac for work. But I’m a software dev, so I really don’t do things like PhotoShop, Microsoft Word, etc. So I just don’t know what we’re talking about. I know that when I was in science, the Linux machines all had MATLAB and Mathematica installed on them. Those are pricey.
But, I can offer some hypotheses other than Linux users not liking to pay for things other than games:
Apple’s market share is still a gazillion times bigger than desktop Linux’s. If there’s a threshold for when it would become profitable to support a platform, it’s entirely conceivable that Macs have crossed that threshold and Linux has not.
Related to the above point, there isn’t even one Linux platform. It’s probably harder to develop (and distribute) for Linux than either of the other major platforms. These days it is probably easier with Snap and Flatpack and whatnot, but historically this has not been true. So the cost would be higher to port to Linux than to port to Mac, for example.
The “chicken and egg” scenario that I mentioned before.
Similar to the “chicken and egg”, but maybe people who use Linux don’t need the same kind of productivity software for the ways they are productive with their machines. For example, I know several people who run Linux and pay for IntelliJ licenses. So, even if $TOTAL_NUMBER_OF_LINUX users was large enough, there still just aren’t enough of them who want PhotoShop functionality to make it worth it.
the stuff that they don’t care about (productivity software, especially email) lags behind Windows/macOS by years (if not decades)
Another thing may be is that if you have been using Linux for most of your life like me, I have no idea what this productivity software has to offer me. E.g. I can use Email, send and recieve messages, send plaintext messages, my client understands the headers, etc. That is what I imagine Email to be. What would an Email-Salesman tell me to change my mind, and switch to some propriatory client that is entierly different?
the stuff that they don’t care about (productivity software, especially email)
I think it’s a little trickier. A lot of Linux developers do care about some kinds of productivity software, but many of the people in this category are also not very excited about GUI apps, so a lot of the actively maintained and innovative software is either terminal software or even an emacs package, making it a bit inaccessible to people looking for Windows/macOS style apps.
For example I use mu4e as my email client for a few years now. It’s actively developed (multiple yearly releases, regular new features, quick bugfixes, etc.). In my opinion has one of the best UIs out there for a power user, but it is almost certainly not what someone migrating from Mail.app wants.
People who don’t want to pay can do this via piracy as well, and also take advantage of anybetter software that may not have a counterpart on Linux. Also, free software is not about not paying. If the values of free software collide with the commercial intentions of software developers does not mean that the former is propaganda against the latter.
People who don’t want to pay can do this via piracy as well
Piracy happens on Linux too - so now you have two reasons why your application won’t make as much money. (well, three, but the third (tiny market share) isn’t relevant)
If the values of free software collide with the commercial intentions of software developers does not mean that the former is propaganda against the latter.
Beyond the general “values of open-source”, the FSF in particular (which I specifically mentioned) has engaged in anti-commercial-software propaganda.
I feel exactly the same way, although I don’t use most of the mentioned apps (Photoshop, Calendar, Mail, etc)
After discovering i3 and investing way too much time customizing my shell experience I’m ready to ditch OSX for good. My maxed out ThinkPad x1 Gen8 screams relative to my maxed out 16” MBP (granted it has all the performance sucking endpoint protection spyware installed). That said, part of my day job is iOS build tools so it won’t be so easy to fully get away :)
I switch to my laptop, which I have hooked up to the same screen. I checked the CrossOver database, from from which I inferred that e.g. recent Office versions do not really work. Running Windows in a VM would definitely be possible, but haven’t set it up yet.
I just had a look and yes the star ratings have been dropping for the recent versions. It’s a bit of a shame because I remember using it years ago and it felt surprisingly ‘native’ - even in how snappy it was.
Yeah, I also used CrossOver Office in the early ’00s and it was amazing. I think one of the issues is that back then, productivity applications were still pretty much shrink-wrap, static pieces of software. Nowadays, things like Office (especially with Office 365) are constantly updated and therefore a moving target.
I should try the VM route again, but the last time it was not that great. I really dislike VirtualBox and AFAIR graphics acceleration was not really great with SPICE. VMWare probably doesn’t work well with NixOS and Fedora.
i think the most effective thing linux laptop producers could do to increase adoption is to improve the touchpad drivers and make it as nice an experience as Mac. As a non power user of the Mac specific software this was the biggest downside of other laptops I have tried.
Not the parent poster, but yes. I do a modest percentage of my work using a laptop as a laptop.
In pre-pandemic times, I had frequent in person meetings. In pandemic times, I sometimes have to be where I can see/hear the kids.
With a Mac, I just use the trackpad. It’s not something I’d do 8 hours a day, but I have zero problems using it when I’m mobile. On linux, I either schlep around a mouse, which is inconvenient, or use the trackpad, which is also frustrating.
All those things in “Linux also hides some gems” are super cool because they reveal the other, uh, problem, and the reason why OS X sucked so much life out of the Linux desktop back in the 00s. And still does.
6 months are enough to see these cool things. In another 6-10 years, on the other hand:
Tracker/search will probably be at the third or fourth incarnation. About as many apps will support its latest incarnation as today. If you multiply that by 3 or 4 it’ll be a decent number – but otherwise it’ll probably be just enough.
Most of the extensions being mentioned won’t work anymore
Gimp and Inkscape will be using GTK 4 and will be a little weird because everything else will be on GTK 5
Journal will not really work anymore because one of its dependencies related to font-rendering will be effectively abandonware. Most distributions will stop packaging it.
Nautilus will go through another major redesign. It will not be able to show icons smaller than 64x64. Finder will most certainly still be a dumpster fire but it’ll still be the same dumpster fire you remember from 2021.
Finder will most certainly still be a dumpster fire but it’ll still be the same dumpster fire you remember from 2021.
The truth hurts. Since Mac OS X just turned 20 years old, I’ve been rereading Siracusa’s old reviews. The Finder is more reliable now, but much of its behavior is just as inscrutable as in the brushed metal days.
The original Finder was an odd beast for two reasons:
First, it was a Carbon application. Back when OS X launched, Apple wasn’t sure if they could get developers to adopt Objective-C and so they had three developer environments. Carbon was a pure-C update of the classic MacOS Toolbox, layered on top of CoreFoundation (C APIs giving similar functionality to the NeXT Foundation Kit), Cocoa (a slightly updated OpenStep) and ‘Mocha’ (officially called something no one remembers), which bridged Java with Cocoa, allowing developers to write native Mac apps in Java. The Mocha stack was really impressive at the time. It used much less memory than other JVMs (it was the first to share standard library class data across instances) and it bridged things like Java arrays and strings transparently with their Cocoa counterparts. NeXT had largely given up getting developers to use Objective-C and had rewritten their flagship WebObjects product family in Java, so Apple thought that it was probably the future.
Second, it was really two applications. There was a big internal fight going on between the Apple and NeXT folks, who both had good and self-consistent UI models that didn’t compose well. It tried to implement both the Classic MacOS spatial Finder and the NeXT File Browser UIs in the same application. It was aggressively modal as a result: you could switch between the two modes by either pressing a button or (sometimes) navigating to a different directory.
Eventually they gave up on the spatial model. It worked really well in the old Apple System days, when people typically had a few dozen files and spatial memory helped find them. It doesn’t scale at all to thousands of files because people’s spatial memory doesn’t scale that well.
Gimp and Inkscape will be using GTK 4 and will be a little weird because everything else will be on GTK 5
When I started with Linux/BSD around 2000, everything used their own toolkit. Had 10 applications? Chances are you had at least 4 different toolkits, 4 different looks, 4 different file dialogs.
Things have improved a lot since then especially if you’re using one of the desktop environments that come with a suite of applications (although KDE offered a lot of this in 3.x as well; I never understood why GNOME ended up getting the bigger mindshare, as KDE always seemed miles ahead to me).
Eh, things have improved in the last 20 years as in there are now only two toolkits. However, the level of integration that was possible 10-15 years ago, via things like Qt’s gtk2-style or QtCurve, is long out of reach by now. Things look less weird only insofar as KDE is shipping a Breeze theme for GTK3, with various quirks because GTK3’s CSS is a little quirky – but you still get two different file dialogs, two always slightly (at best, if you’re using Breeze) different looks, two vastly different interaction models (e.g. the infamous “single click browse totally not a bug” in GTK3 from a while back, different scrollbar behaviour etc.).
If you stick to a single desktop environment that’s not a problem, but you could stick to a single desktop environment back in 2003, too :-).
If you stick to a single desktop environment that’s not a problem, but you could stick to a single desktop environment back in 2003, too :-).
From what I remember it was a lot less smooth though; the desktop environments now are a lot more integrated and complete than they were in the Gnome 1.x and early Gnome 2.x days.
you still get two different file dialogs, two always slightly (at best, if you’re using Breeze) different looks, two vastly different interaction models (e.g. the infamous “single click browse totally not a bug” in GTK3 from a while back, different scrollbar behaviour etc.).
Two is better than four? 🙃 But there is clearly still some work ahead; arguably things like file selectors shouldn’t even be a part of the toolkit but just an independent process, which would also solve things like this.
I think this is because we have no language that people like for doing GUI development. We see a lot of web based applications for this reason. There are some hopes that rust will have good GUI eventually and maybe that will fix some things. You are right though, we are still working on the foundations. If you live in a terminal (which many linux users gravitate towards) then you feel this much less.
we have no language that people like for doing GUI development
This is pretty much it.
I’d love to write/hack/contribute to GUI applications on Linux, but I have pretty much the choice between the 1970ies’ garbage language (C), the 1980ies’ tire fire (C++) or various “bindings” that are usually incomplete, completely undocumented, and even more complicated to use than going with C directly.
that rust will have good GUI
Not sure Rust is a good language for this: there is a lot of complexity that one simply doesn’t care about when writing GUI applications.
None of these languages are a large enough improvement over C/C++, considering that none of bindings allow you to not know the underlying C/C++ artifacts anyway.
JavaScript being so trendy is certainly responsible for the current crop of “native” (i.e. Electron) apps but the rest of the situation is entirely of our own (i.e. the open source community’s doing). If you compile a 15 year-old Win32 application that is effectively “finished”, you get that app running against today’s Win32 API, with 30 years of bugfixes and up-to-date support. If you compile XMMS from 15 years ago, or the old KDE 3 applications, you’ll get applications running against GTK 1.x or Qt 3.x.
Basically, the “modern” Linux desktop isn’t a 30 year-old environment, it’s just the latest, third or so, in a series of 10 year-old environment. It’s pretty much where the Windows desktop was back in 2003 or so – way better than back in 2014, for example, but pretty much where it was back in 2010.
The big problem isn’t that it’s hard to compile XMMS because it’s hard to compile GTK 1 anymore – which is what NixOS & co helps you with – the problem is that it’s a bad idea. If you’re compiling a 20 year-old Win32 application today, you’ll be linking it against libraries that are still supported and have 30 years of bugfixes. If you’re compiling a 20 year-old GTK app, you’ll be linking it against a library that has been abandoned for 15 years, has shaky UTF support. Specifically for XMMS you probably won’t be able to get it make a hiss, either, because none of the sound servers it supports still work (maybe the ALSA plugin would still work, not sure). NixOS & co. certainly make it easy to compile and deploy long-abandoned code, but once you’ve done that, it’s not like you can do much with it anymore.
The fact that Win32 is backwards-compatible to such an embarrassing degree doesn’t just mean it’s annoying to write against, it also means that 30 years’ worth of applications still get 30 years’ worth of bugfixes and improvements. GTK, and KDE Frameworks being what they are, means you get a few years’ worth of applications, with a few years’ worth of improvements and bugfixes.
Note that GNUstep can still compile most applications that were written for mid ‘90s OpenStep, as well as more recent Cocoa applications (though, at this point, it’s a decade behind Cocoa in a lot of places). There are a bunch of other open source projects that have similar or better backwards compatibility guarantees. In the open source world, I’d settle for source compatibility (not needing binary compatibility) but that’s rare among the big buzzwordy projects. I suspect that this is because a lot of the commercial funding for these comes from entities that want to keep you on an upgrade treadmill because their business involves selling support and certifications.
Free apps for customizing Linux are not as good as paid apps for customizing Mac.
The OP is clearly willing to pay for software, so I think a more evenhanded comparison would be, “even if one is willing to spend money, the apps available for customizing Linux are not as good as the apps available for customizing Mac.”
Free apps for customizing Linux are not as good as paid apps for customizing Mac.
You say that, perhaps you mean to insert the word “Desktops” after those operating systems. My window manager setup has no equal on mac. Mac users don’t want it, it has all the sharp edges I use to my advantage.
I’ve spent years on mac and years on linux, and mac is definitely prettier but for my specific UX use case linux window managers give me a better user experience. More keyboard-only control and much more control over window placement and resizing with the keyboard. Then, there’s libs/package management on mac… that’s another sob story.
Two things make developing on the mac livable for me: homebrew and yabai.
I do a lot of docker for work now, and compared to linux performance is still brutally bad on the mac. Doing things in a linux VM at AWS etc. makes it tolerable.
Edit: The one piece of software I can’t let go of on the mac is OmniGraffle. It has no equal.
the only email client with a native “conversation view” is Geary, which is in early development and still very buggy
Eh.. is it really that buggy? I really don’t have any problems with it, but then I’m not a heavy email user and kind of an email-hater.
Screen tearing with the intel driver. Come on. This was solved on xorg and now with Wayland it’s back
There is no screen tearing on Wayland (modulo really bad compositor bugs), it’s literally a BIG point of the whole protocol. There is no “intel driver” with Wayland, compositors use generic EGL/DRM/GBM interfaces, provided by Mesa (where the Intel drivers are iris for new stuff and i965 for old stuff, nothing is called intel).
The author is definitely using xorg, considering the mentions of xdotool etc.
Xournal is an obscure app
Wait, why would you use the ancient xournal? You’re looking for xounalpp.
I’ve used PopOS as my main driver for the last couple of years, on two different machines.
I agree with the write up here. I need a great calendar app. It’s my life. The calendar app on MacOS is the only app I know that works for me aside from Google Calendar. Same goes for the email client.
The thing is I hate using web apps, I need to run the apps to feel comfortable, I hate working out of a tab in a browser.
Linux is also not as polished. I have to spend more time on just running the system then I do with MacOS. There is always something going wrong. The big annoyances for me are:
Videoconferencing in Firefox works badly and often crashes the whole system.
I often have problems with USB headsets if they are plugged in our out, need to reboot to get it to work.
-Trackpad feel is horrible
I often get problems with package managers getting into problems.
I’m going back to MacOS later this year. Not convinced with Linux. I really would like to love it, but I just don’t.
Sounds like a lot of these problems are correlated with PopOS. Have you considered using a more reliable package manager for example? Nixos is quite popular and you can just take a config off the shelf to try it.. For example something like this: https://github.com/hlissner/dotfiles (made by the guy who made the popular doom-emacs configuration).
I wouldn’t recommend using NixOS unless you really want to get deep into the weeds of things, and this is coming from someone who loves using it as her daily driver.
Linux is not something you try for six months, at least in my opinion that is not a sensible strategy (unless you try every few years again I guess). Rather what makes sense is to make it your own, stake out a small territory that you are comfortable with and extend your customization until you can do everything you need to do. You will use your computer your whole life, join the free software side and that’s one more potential customer on the Linux side. We can start doing these crowdfunding / reverse auction style things and once there is enough of us then it will start to be enticing for good developers to fix long standing issues, even very difficult ones, monetary incentives work wonders.
On a more personal note: I remember always being afraid of the idea of “packaging software”, I was a child when I started using Linux and had no clue about programming or the courage to engage with it. However, these declaratively configured systems like nixos and guix are a complete game changer… I’m moving to guix for various reasons; freedom, bootstrapping, no systemd - which is excellent except being a ridiculously huge C codebase with featurebloat, I feel the same way about linux and want to get onto another kernel eventually, so don’t mind me, I’m a weirdo….
However ! with all that said, I think the primary win is that guile scheme is an excellent choice for programming the whole system!! It is a super simple programming language that I could teach my girlfriend in a week (she has no clue about math or programming but could understand the four rules of evaluation and eventually solve simple problems, even using recursion) and the documentation online is super awesome, all the keywords are hyperlinks to pages containing further information and/or examples (for example: https://guix.gnu.org/manual/en/guix.html#Defining-Packages).
The thing that will make this blow up is once we have the social network we need to share our configs and compose them, the successor to old.reddit.com/r/unixporn, guix has the really nice first class feature of opening any config in a vm with just one command (see: https://guix.gnu.org/manual/en/guix.html#Invoking-guix-system and scroll to the vm entry). Nixos can also do all these things but it feels so much more complicated and inaccessible.
re: tearing, I tried using the most recent Ubuntu release on my intel laptop and it was tearing like all hell. switching to wayland got rid of the tearing but I started seeing random pixels glitching out all over the screen.
I’m still using Macs as both my personal and professional computer, but been wondering what’s next on both sides. First, my personal machine is 10 years old, and getting a new Mac is expensive. Second, it’s getting frustratingly hard to use Macs as a development machines, when code has to run on Linux. Despite unixy nature, they are diverging hard… getting Valgrind to work is nigh impossible, many packages that work nicely on Linux are still lagging on Macs. I believed that Nix will solve my issues of having means to easily bring dependencies to projects, but getting the Mac side to work is starting to take more and more time…
I’ve been using Linux as my main desktop since 1996 or so. I have an M1 MBP, as well.
I stick with Debian stable, trying out testing during each hard freeze season. I use X, not Wayland, XFCE instead of GNOME, and am typically running many many terminals mostly running SSH sessions elsewhere, both Chrome and Firefox, LibreOffice, and a music player.
In terms of smoothness, the M1 MBP is indistinguishable to me from my Pentium G3258 with an RX460 video card. The Mac is displaying on the built-in 2560x1600; the Linux box has a 3840x2160 HDMI screen. Both have 16GB RAM. They have equal quality sound output, though the desktop has much better speakers hooked up.
The Mac is boring, and a little stodgy: if I want to change something about its behavior, I have about a 50% success rate in being able to do that, usually because Apple hasn’t provided a choice. The Linux machine is reliable and flexible: if I want to change something, I can usually figure out how to do it, and there might be several different ways of accomplishing it. Once I change some bit of desktop behavior, I usually try it out for a few weeks and then either revert to the old behavior or make it permanent.
The last time I looked at a bit of proprietary software on a Mac and thought that I might want that on another OS was OmniGraffle. Dia isn’t quite as nice, but most of the time it’s not worth agonizing over the differences.
I bought this ThinkPad P52 for $3000 USD and I got a six core Xeon (12 with hyperthreading) 128GB of RAM, three drive slots, and a 4k multitouch OLED screen.
The next version is more like $4000 USD for roughly the same stats (more cores, ECC RAM), but you can’t buy a mac laptop in this class.
I’ve upgraded the drives since I got it, it now has 3TB of the fastest NVMe storage and I have one slot unused.
For my use case of “get off the internet and have enough local resources for heavy software development” a Mac is not a good choice.
The original Mac came out in my last year of university and there were a couple in the graduate lab. I moved a lot of my VAX activities over to it. The LaserWriter came out in my first year working and I got my employer to get one and hooked it to the Data General VAX-equivalent they used. Next job, everyone got Mac Pluses, then IIcx/ci, Quadra, PPC. Late 90s I started using Linux as a server for the Macs. My personal machine was always PPC, then Core 2 Duo. I often ran Linux in a VM, or had a separate headless box.
Apple left me with the Xeon Mac Pro. Very expensive, capable of far more RAM and I/O and high end graphics cards I simply didn’t need, but slow CPUs (with many cores). My employer gave me an 8 core 2.26 GHz Mac Pro to use. I built an i7-860 Hackintosh that totally kicked its arse despite being only 4 cores. Later I built an i7-4790k Hackintosh. Apple put those same CPUs in iMacs, but at a far higher price due to having to pay for a (lovely, huge) new screen every time you upgraded. I prefer to get a good screen and keep it for many years.
When I built a 6700k machine I decided to leave it as Linux and run OS X in a VM when required (instead of the reverse), and I’ve continued to do that with a tiny but wicked fast i7-8650u NUC and 32 core ThreadRipper.
I’ve got an M1 Mac Mini (actually two – I wanted 16 GB but they were not available until near Christmas, but 8 GB farrived Nov 19). They are lovely. I was one of the first people to get Ubuntu running in a VM on the M1. http://hoult.org/arm64_mini.html
As soon as booting Linux natively on the M1 is working well I’ll be switching to that – that’s a killer CPU. I’m supporting marcan with that https://www.patreon.com/marcan
I’ve never used Apple email or calendaring apps. I used to use Eudora, but now use gmail and google calendars and also sheets. If I write English text it’s in AsciiDoc. I don’t have any need for fancy photo or video editing. The vast vast majority of the non-programming things I do are now in a web browser, and Chrome works the same everywhere.
I use Apple Notes on iOS and then Notes in icloud.com on Linux. I haven’t found anything that works better. Ok, maybe beorg/mobileorg, but it’s not as effortless on mobile. Notes is damn near perfect.
It is also fully IMAP accessible, like most providers.
iCloud contacts and Calendar are also accessible via carddav and caldav respectively. Though you need to generate an API access token on iCloud.com.
I actually have really good experiences running my own Carddav and Caldav servers on iOS and MacOS. (God, I sound like such a shill these last few days! - macs are good but I really do prefer the commandline and tiling window manager ecosystem of Linux, personally)
I actually have really good experiences running my own Carddav and Caldav servers on iOS and MacOS.
Same here. It also works fine on Android. It’s a pain with Thunderbird though and I haven’t really found anything on Windows that works well with them.
One of the huge things that Apple did for usability (and that Android somewhat copied) was to separate system services from the UI. The address book, calendar, spell checker, and so on are all system services that any application can use. On Windows, Office implements its own ones of these and I get the impression that there was a lot of pressure from the Office team 20 years ago to prevent Windows from implementing them and enabling competitions. Cocoa’s NSTextView is a joy to use and includes a complete (and completely configurable) typesetting engine that lets you flow text however you want, replace the hypenation engine, and so on. Windows’ rich text control is awful in comparison. As a result, everyone who needs anything nontrivial implements their own version and the UI is massively fragmented.
I’ve been using the Mac off and on for ~12 years and the thing which stands out to me about MacOS is the size of UI elements. I’ve found that in every OS release the UI has gotten larger. In everyday use it’s possible to hide the dock and be left with only the menubar, but when I think about the web browser, or mail app what I want to see is content and not the interface. I think Linux, maybe for its lack of maturity in scaling actually excels in this area. Window chrome is kept to a minimum and emphasizes the content, not the system providing it.
An issue I’ve encountered with brew is with software versions. Homebrew assumes that you want the most recent version of all the software. There is no simple way to install a previous version of a piece of software without digging around the git repo and finding the commit for that version, downloading the script, and manually telling brew to use that script.
Homebrew is also pretty poor when it comes to version pinning. It only pins the specific version specified. There is no way to pin match on major versions. Which means that when a point release of a software package is released you must manually unpin the old version, install the new version, and then re-pin the new version.
I’m thinking about buying an m1 air as my next laptop… does anyone have recommendations for a docking station that supports two 4k screens (from a m1 mac, it seems like there is some constraint here to only “display link” docking stations), a wired keyboard, and a wired mouse?
I think M1 only officially supports one external display, though reportedly there are ways. Check into that limit before you buy. We’re anticipating new hardware announcements at WWDC in June, which might give you some more straightforward options.
I don’t know the specifics, but a client of mine claims he managed to get two 4K monitors going by using a specific Dell USB-C dock. Might be worth investigating if you don’t want 3rd party software to make it work.
It all sucks. It’s just a matter of prioritizing.
Windows:
Mac:
Linux:
I don’t mean to rub anyone the wrong way and I’m not preaching, but the last bullet point is the one that matters the most to me and I suspect it always will be the most important for me, personally. If I can get a machine that runs Linux, even in a fairly hobbled way, I’m going to take it over other options where I don’t know whether my machine is going to just not let me use it one day (literally happened to my ex with Windows Vista) or whether it’s going to send information about what software I’m running on it to headquarters, etc. No amount of polish and convenience is really worth it to me. But for others, the calculus is different. That’s okay, too.
the penultimate point, about software availability, depends a lot on what software you need. both my work and hobby coding are in the area of programming languages and tooling, and the communities and development process around a lot of them are very much linux-first.
I like this breakdown too. As someone who literally wrote every line of code that powers their desktop environment (sans the X11 server, but including the X11 client, WM, pager and so on), I really appreciate the ability to build and customize my own bespoke UX from the ground up. Every other environment I’ve tried just seems to be locking things down more and more, making it harder to customize things to my liking.
As someone who has been using your X11 WM for a few years, I appreciate your efforts! Now moved back to macOS mostly because of annoying inconsistencies in ecosystem around Linux, but I really miss the “don’t raise window on click and focus” feature. So far I’m not aware of any alternatives out there.
Also, I’ve been impressed by how well Android x86 (that counts as desktop Linux too, right?) integrates with MBP 2015 touchpad. There was no force touch support, but multitouch experience was on par with that of an Android running on a phone with touch screen. That is to say that it’s way better than macOS, and goes in no comparison with multitouch support in GNOME and other Linux-based distros—e.g. I’ve had a lot of issues with scrolling being apparently designed only for mouse wheel scroll-by-line interactions.
Oh wow, I didn’t realize anyone besides my wife and I used Wingo. Neat!
Yes, the state of affairs is truly terrible compared to Mac. I’m happy when two finger scrolling works at all. But like, I have to disable tap-to-click on my touchpad because otherwise the software (or hardware?) isn’t good enough to detect my palm and I start getting spurious clicks. I’d love to have a clicky trackpad, but so few laptops have those.
Have y’all been following this effort to improve Linux touchpads to match Mac usability? https://bill.harding.blog/2021/02/11/linux-touchpad-like-a-mac-update-firefox-gesture-support-goes-live/
Oh, didn’t realize they were accepting financial contributions. I’m now a sponsor too! Thanks again for the heads up.
I’ve been vaguely aware of that project, yes. I think I just assumed that I would eventually benefit from it automatically, but maybe that’s a wrong assumption. I’ll take a closer look, thanks.
I used wingo for about a year myself, and I quite liked it! I mostly switched away because I wanted to explore the landscape, and then I started trying to run Wayland desktops exclusively. It’s a great little project though (wingo). Thanks for spending the time on it!
oh yeah that is such a killer improvement. When I switched to Blackbox WM back around 2007 I left on sloppy focus and click doesn’t raise. A lot of people look at one without the other but I think they need to be used together… and then it is just so much nicer than anything else out there.
I’ve heavily customized my copy of blackbox (and wrote my own taskbar, terminal emulator, and many other things) over the years and I never want to leave it. Always painful to have to use other systems without it.
As a mostly happy Mac user, I 100% concur with these bullets.
Thank you, I’ve been thinking about this since reading your comment. It has convinced me to move back to using linux as a daily driver.
Such horrendous behavior we have come to expect from Microsoft Windows, Google Android, and many aspects of iOS and Mac OS, as well as our web-browsers and mobile applications. Well, we don’t have to. CentOS is far superior, because this means my computer is no longer going to actively spy on me for the sake of profits or more nefarious reasons.
Of course, I’ll be starting out with centos 7 for stability’s sake, but if I need to upgrade over the years for compatibility I may use fedora, as long as all the software is free and, here’s the biggest factor, as long as it does not actively spy and log my activitiees.
Xfce4 is simple, stable and polished. The only rough edge I can think of is alsa vs jack vs pulseaudio. This will hopefully be resolved by pipewire.
XFCE introducing CSDs give rise to concerns though – if I wanted to have unreliable window decorations and behavior, I could pick Gnome?
I hope that gets corrected in the future. (Along with introducing the ability to use a better language to write XFCE applications.)
Interesting. For me, it is the exact opposite. I used Linux as my main desktop from 1994 to 2007. In 2007 I switched to macOS as my main desktop OS. The last few years I have slowly been moving back to Linux as my main desktop. After a short adventure with the M1 MacBook Air, I decided that the Mac ecosystem is definitely on a trajectory that I don’t like anymore, and returned the M1 Mac and sold my last Intel Mac.
What I like about the Linux desktop is that it is so much beter for the power user. Better profiling (
perf
), better observability (eBPF, yes there is DTrace, but the eBPF ecosystem is so much more exiting), better customizability, better development tools, better package managers, native containers, etc.What I dislike is the lack of high-quality productivity software (and since when are e-mail clients and calendaring apps not productivity software?). Sure, we have LibreOffice, GIMP, Inkscape, Scribus. But I would love to be able to use Microsoft Office, the Affinity Suite, OmniGraffle, etc. Many productivity apps are just too far ahead of open counterparts. So, even though I moved away from the Mac, I now have to keep a Windows partition around to run Microsoft Office.
FWIW DTrace is completely broken out of the box on OS X. Apparently it’s fixable but you have to disable SIP. This makes me extremely sad.
If I find myself in the position of needing to understand something very weird that a piece of software is doing, if it’s portable across unices then it’s sometimes easiest to run it in a Linux VM since things like strace actually work there. :(
When something isn’t working on my Linux workstation I similarly take it over to an illumos VM where
truss
and DTrace are available haha, so I know the feeling.Not going to lie, I think I’d be tempted to do the same if I did know dtrace (and to a lesser extent illumos, but eh I assume it’s well made enough to not be difficult).
I don’t because of a lack of familiarity with the tools.
When I’m using Linux I still miss ftrace from BSD. strace is great except that the probe effect is so bad.
This is something I’ve noticed as well. Linux developers prioritize things that they’re interested in (perf, eBPF, DTrace), meaning that the stuff that they don’t care about (productivity software, especially email) lags behind Windows/macOS by years (if not decades) - but commercial developers won’t port their stuff to Linux, because (in addition to the market being small) Linux users have been habituated to not pay for software!
I’m inclined to say that this is a product of the FSF’s rabid anti-commercial-software propaganda, but maybe there’s another reason.
I think it’s simply more to do with power structures – like, the Mac has a good email client, because someone at Apple pays people to make it, and more importantly, decides what it’s going to do. Free software has tended to operate without a singular product vision, so in order to make progress, the people involved seem to try and clone what they’re familiar with.
I thought we debunked this theory when Steam came to Linux.
The truth is that it’s just the old chicken and egg problem about small market share and market share won’t grow until peoples’ favorite software is available.
Also because Valve had two really good reasons to seek out wider OS support: the Windows and Mac App Stores.
Computer users have completely different expectations for games and productivity software, and are far more willing to pay for the former across every platform. Steam coming to Linux did not “debunk” that theory at all.
Please don’t say things like “the truth is” without any irrefutable substantiating evidence.
Meanwhile, that’s your spin on things. I would then ask you why macOS productivity software is so much better-developed than Linux, when the former already has a tiny market share compared to Windows.
I agree that computer users are much more willing to pay for games across every platform. I’m not sure how that debunks my debunking. I’m asserting that Linux users are just as willing to pay for Steam games as people on any other platform (though we obviously don’t have hard data on that). If that’s true (or even close to true), then I think that does debunk the argument that they aren’t buying other software because of “being habituated to not paying for software”. Linux forums EXPLODED when Steam came to Linux. People were losing their minds to throw money at Valve. I would think that the anti-spending habituation would take time to wear off, but it did not seem to in the internet circles that I frequent (and the small handful of people I knew in meatspace that ran Linux also buy/bought Steam games).
Along similar lines, I don’t think I know any Windows users that are buying Microsoft Office or Adobe PhotoShop for personal use, either. It seems to me that the willingness to pay for entertainment and not for productivity software is more or less universal…
Fair enough. I suppose I could’ve been more clear in indicating that this was a statement of conjecture. (But irrefutable? That’s a high bar for a semi-casual discussion about human behavior, no? ;) )
Can you give examples? I ask that genuinely, just so I can understand what we’re talking about. I do mostly run Linux on my personal machines and have a Mac for work. But I’m a software dev, so I really don’t do things like PhotoShop, Microsoft Word, etc. So I just don’t know what we’re talking about. I know that when I was in science, the Linux machines all had MATLAB and Mathematica installed on them. Those are pricey.
But, I can offer some hypotheses other than Linux users not liking to pay for things other than games:
Another thing may be is that if you have been using Linux for most of your life like me, I have no idea what this productivity software has to offer me. E.g. I can use Email, send and recieve messages, send plaintext messages, my client understands the headers, etc. That is what I imagine Email to be. What would an Email-Salesman tell me to change my mind, and switch to some propriatory client that is entierly different?
I think it’s a little trickier. A lot of Linux developers do care about some kinds of productivity software, but many of the people in this category are also not very excited about GUI apps, so a lot of the actively maintained and innovative software is either terminal software or even an emacs package, making it a bit inaccessible to people looking for Windows/macOS style apps.
For example I use mu4e as my email client for a few years now. It’s actively developed (multiple yearly releases, regular new features, quick bugfixes, etc.). In my opinion has one of the best UIs out there for a power user, but it is almost certainly not what someone migrating from Mail.app wants.
People who don’t want to pay can do this via piracy as well, and also take advantage of anybetter software that may not have a counterpart on Linux. Also, free software is not about not paying. If the values of free software collide with the commercial intentions of software developers does not mean that the former is propaganda against the latter.
Piracy happens on Linux too - so now you have two reasons why your application won’t make as much money. (well, three, but the third (tiny market share) isn’t relevant)
Beyond the general “values of open-source”, the FSF in particular (which I specifically mentioned) has engaged in anti-commercial-software propaganda.
What didn’t you like about it? I personally love my M1 MacBook Air, but my preferences certainly aren’t universal truths.
I feel exactly the same way, although I don’t use most of the mentioned apps (Photoshop, Calendar, Mail, etc)
After discovering i3 and investing way too much time customizing my shell experience I’m ready to ditch OSX for good. My maxed out ThinkPad x1 Gen8 screams relative to my maxed out 16” MBP (granted it has all the performance sucking endpoint protection spyware installed). That said, part of my day job is iOS build tools so it won’t be so easy to fully get away :)
Do you reboot into Windows to run Office, use virtualisation software, use CrossOver, or something else?
I switch to my laptop, which I have hooked up to the same screen. I checked the CrossOver database, from from which I inferred that e.g. recent Office versions do not really work. Running Windows in a VM would definitely be possible, but haven’t set it up yet.
I just had a look and yes the star ratings have been dropping for the recent versions. It’s a bit of a shame because I remember using it years ago and it felt surprisingly ‘native’ - even in how snappy it was.
Yeah, I also used CrossOver Office in the early ’00s and it was amazing. I think one of the issues is that back then, productivity applications were still pretty much shrink-wrap, static pieces of software. Nowadays, things like Office (especially with Office 365) are constantly updated and therefore a moving target.
I should try the VM route again, but the last time it was not that great. I really dislike VirtualBox and AFAIR graphics acceleration was not really great with SPICE. VMWare probably doesn’t work well with NixOS and Fedora.
i think the most effective thing linux laptop producers could do to increase adoption is to improve the touchpad drivers and make it as nice an experience as Mac. As a non power user of the Mac specific software this was the biggest downside of other laptops I have tried.
I second this, I use a Mac at work and an xps13 otherwise and this frustrates me so much.
The second point is wifi and Bluetooth stability that is completely unreliable compared to macOS…
You use a touchpad when you’re at work?
questions like this make me not want to participate in this website.
I use a Magic Trackpad on my stationary computer. It’s better for everything except precision pixel painting, especially for your body.
Not the parent poster, but yes. I do a modest percentage of my work using a laptop as a laptop.
In pre-pandemic times, I had frequent in person meetings. In pandemic times, I sometimes have to be where I can see/hear the kids.
With a Mac, I just use the trackpad. It’s not something I’d do 8 hours a day, but I have zero problems using it when I’m mobile. On linux, I either schlep around a mouse, which is inconvenient, or use the trackpad, which is also frustrating.
Many prefer to cyble between multiple mouse inputs to combat carpal tunnel and other strain related injuries. I much prefer a touch pad myself.
All those things in “Linux also hides some gems” are super cool because they reveal the other, uh, problem, and the reason why OS X sucked so much life out of the Linux desktop back in the 00s. And still does.
6 months are enough to see these cool things. In another 6-10 years, on the other hand:
The truth hurts. Since Mac OS X just turned 20 years old, I’ve been rereading Siracusa’s old reviews. The Finder is more reliable now, but much of its behavior is just as inscrutable as in the brushed metal days.
The original Finder was an odd beast for two reasons:
First, it was a Carbon application. Back when OS X launched, Apple wasn’t sure if they could get developers to adopt Objective-C and so they had three developer environments. Carbon was a pure-C update of the classic MacOS Toolbox, layered on top of CoreFoundation (C APIs giving similar functionality to the NeXT Foundation Kit), Cocoa (a slightly updated OpenStep) and ‘Mocha’ (officially called something no one remembers), which bridged Java with Cocoa, allowing developers to write native Mac apps in Java. The Mocha stack was really impressive at the time. It used much less memory than other JVMs (it was the first to share standard library class data across instances) and it bridged things like Java arrays and strings transparently with their Cocoa counterparts. NeXT had largely given up getting developers to use Objective-C and had rewritten their flagship WebObjects product family in Java, so Apple thought that it was probably the future.
Second, it was really two applications. There was a big internal fight going on between the Apple and NeXT folks, who both had good and self-consistent UI models that didn’t compose well. It tried to implement both the Classic MacOS spatial Finder and the NeXT File Browser UIs in the same application. It was aggressively modal as a result: you could switch between the two modes by either pressing a button or (sometimes) navigating to a different directory.
Eventually they gave up on the spatial model. It worked really well in the old Apple System days, when people typically had a few dozen files and spatial memory helped find them. It doesn’t scale at all to thousands of files because people’s spatial memory doesn’t scale that well.
When I started with Linux/BSD around 2000, everything used their own toolkit. Had 10 applications? Chances are you had at least 4 different toolkits, 4 different looks, 4 different file dialogs.
Things have improved a lot since then especially if you’re using one of the desktop environments that come with a suite of applications (although KDE offered a lot of this in 3.x as well; I never understood why GNOME ended up getting the bigger mindshare, as KDE always seemed miles ahead to me).
Eh, things have improved in the last 20 years as in there are now only two toolkits. However, the level of integration that was possible 10-15 years ago, via things like Qt’s gtk2-style or QtCurve, is long out of reach by now. Things look less weird only insofar as KDE is shipping a Breeze theme for GTK3, with various quirks because GTK3’s CSS is a little quirky – but you still get two different file dialogs, two always slightly (at best, if you’re using Breeze) different looks, two vastly different interaction models (e.g. the infamous “single click browse totally not a bug” in GTK3 from a while back, different scrollbar behaviour etc.).
If you stick to a single desktop environment that’s not a problem, but you could stick to a single desktop environment back in 2003, too :-).
From what I remember it was a lot less smooth though; the desktop environments now are a lot more integrated and complete than they were in the Gnome 1.x and early Gnome 2.x days.
Two is better than four? 🙃 But there is clearly still some work ahead; arguably things like file selectors shouldn’t even be a part of the toolkit but just an independent process, which would also solve things like this.
I think this is because we have no language that people like for doing GUI development. We see a lot of web based applications for this reason. There are some hopes that rust will have good GUI eventually and maybe that will fix some things. You are right though, we are still working on the foundations. If you live in a terminal (which many linux users gravitate towards) then you feel this much less.
This is pretty much it.
I’d love to write/hack/contribute to GUI applications on Linux, but I have pretty much the choice between the 1970ies’ garbage language (C), the 1980ies’ tire fire (C++) or various “bindings” that are usually incomplete, completely undocumented, and even more complicated to use than going with C directly.
Not sure Rust is a good language for this: there is a lot of complexity that one simply doesn’t care about when writing GUI applications.
GTK’s bindings are fairly complete because they are autogenerated.
Python - https://pygobject.readthedocs.io/en/latest/
Vala - https://valadoc.org/
JS - https://gjs-docs.gnome.org/
None of these languages are a large enough improvement over C/C++, considering that none of bindings allow you to not know the underlying C/C++ artifacts anyway.
JavaScript being so trendy is certainly responsible for the current crop of “native” (i.e. Electron) apps but the rest of the situation is entirely of our own (i.e. the open source community’s doing). If you compile a 15 year-old Win32 application that is effectively “finished”, you get that app running against today’s Win32 API, with 30 years of bugfixes and up-to-date support. If you compile XMMS from 15 years ago, or the old KDE 3 applications, you’ll get applications running against GTK 1.x or Qt 3.x.
Basically, the “modern” Linux desktop isn’t a 30 year-old environment, it’s just the latest, third or so, in a series of 10 year-old environment. It’s pretty much where the Windows desktop was back in 2003 or so – way better than back in 2014, for example, but pretty much where it was back in 2010.
I have been shilling guix and nixos elsewhere in this thread so I’ll continue hammering this: that’s exactly a problem that reproducible builds solve.
The big problem isn’t that it’s hard to compile XMMS because it’s hard to compile GTK 1 anymore – which is what NixOS & co helps you with – the problem is that it’s a bad idea. If you’re compiling a 20 year-old Win32 application today, you’ll be linking it against libraries that are still supported and have 30 years of bugfixes. If you’re compiling a 20 year-old GTK app, you’ll be linking it against a library that has been abandoned for 15 years, has shaky UTF support. Specifically for XMMS you probably won’t be able to get it make a hiss, either, because none of the sound servers it supports still work (maybe the ALSA plugin would still work, not sure). NixOS & co. certainly make it easy to compile and deploy long-abandoned code, but once you’ve done that, it’s not like you can do much with it anymore.
The fact that Win32 is backwards-compatible to such an embarrassing degree doesn’t just mean it’s annoying to write against, it also means that 30 years’ worth of applications still get 30 years’ worth of bugfixes and improvements. GTK, and KDE Frameworks being what they are, means you get a few years’ worth of applications, with a few years’ worth of improvements and bugfixes.
Note that GNUstep can still compile most applications that were written for mid ‘90s OpenStep, as well as more recent Cocoa applications (though, at this point, it’s a decade behind Cocoa in a lot of places). There are a bunch of other open source projects that have similar or better backwards compatibility guarantees. In the open source world, I’d settle for source compatibility (not needing binary compatibility) but that’s rare among the big buzzwordy projects. I suspect that this is because a lot of the commercial funding for these comes from entities that want to keep you on an upgrade treadmill because their business involves selling support and certifications.
Alternative titles:
If you’re accustomed to a lot of Mac apps, you’ll have a harder time migrating out.
Free apps for customizing Linux are not as good as paid apps for customizing Mac.
Stop trying to edit pdfs on Linux.
As is usual with these things, it all depends on your usage patterns.
The OP is clearly willing to pay for software, so I think a more evenhanded comparison would be, “even if one is willing to spend money, the apps available for customizing Linux are not as good as the apps available for customizing Mac.”
Yeah that’s fair. I was taking for granted that Linux doesn’t have much of an eco-system for paid apps. OP alluded to that, I think.
You say that, perhaps you mean to insert the word “Desktops” after those operating systems. My window manager setup has no equal on mac. Mac users don’t want it, it has all the sharp edges I use to my advantage.
I was trying to include keyboard configuration. Like Karabiner vs xmodmap, which feels like some of OP’s complaint.
But yeah, this conversation strengthens the case that this is a large state space, and it’s impossible to generalize.
I’ve spent years on mac and years on linux, and mac is definitely prettier but for my specific UX use case linux window managers give me a better user experience. More keyboard-only control and much more control over window placement and resizing with the keyboard. Then, there’s libs/package management on mac… that’s another sob story.
Two things make developing on the mac livable for me: homebrew and yabai.
I do a lot of docker for work now, and compared to linux performance is still brutally bad on the mac. Doing things in a linux VM at AWS etc. makes it tolerable.
Edit: The one piece of software I can’t let go of on the mac is OmniGraffle. It has no equal.
LibreOffice Draw is the real PDF editor :D
But yeah, I kinda do wish reordering pages wasn’t “beyond the scope of Evince”.
Eh.. is it really that buggy? I really don’t have any problems with it, but then I’m not a heavy email user and kind of an email-hater.
There is no screen tearing on Wayland (modulo really bad compositor bugs), it’s literally a BIG point of the whole protocol. There is no “
intel
driver” with Wayland, compositors use generic EGL/DRM/GBM interfaces, provided by Mesa (where the Intel drivers areiris
for new stuff andi965
for old stuff, nothing is calledintel
). The author is definitely using xorg, considering the mentions ofxdotool
etc.Wait, why would you use the ancient xournal? You’re looking for xounalpp.
I, for one, had never heard of xournalpp before. Thanks for the link!
I don’t see any reason to use Linux unless your primary activity is writing code. And I say that as someone who uses Linux exclusively.
I think it’s astronomically better for programming, and significantly worse for basically everything else.
I’ve used PopOS as my main driver for the last couple of years, on two different machines. I agree with the write up here. I need a great calendar app. It’s my life. The calendar app on MacOS is the only app I know that works for me aside from Google Calendar. Same goes for the email client. The thing is I hate using web apps, I need to run the apps to feel comfortable, I hate working out of a tab in a browser.
Linux is also not as polished. I have to spend more time on just running the system then I do with MacOS. There is always something going wrong. The big annoyances for me are:
I’m going back to MacOS later this year. Not convinced with Linux. I really would like to love it, but I just don’t.
Sounds like a lot of these problems are correlated with PopOS. Have you considered using a more reliable package manager for example? Nixos is quite popular and you can just take a config off the shelf to try it.. For example something like this: https://github.com/hlissner/dotfiles (made by the guy who made the popular
doom-emacs
configuration).I wouldn’t recommend using NixOS unless you really want to get deep into the weeds of things, and this is coming from someone who loves using it as her daily driver.
? I use PopOS daily and have no such issues. It’s just a customized Ubuntu after all.
Linux is not something you try for six months, at least in my opinion that is not a sensible strategy (unless you try every few years again I guess). Rather what makes sense is to make it your own, stake out a small territory that you are comfortable with and extend your customization until you can do everything you need to do. You will use your computer your whole life, join the free software side and that’s one more potential customer on the Linux side. We can start doing these crowdfunding / reverse auction style things and once there is enough of us then it will start to be enticing for good developers to fix long standing issues, even very difficult ones, monetary incentives work wonders.
On a more personal note: I remember always being afraid of the idea of “packaging software”, I was a child when I started using Linux and had no clue about programming or the courage to engage with it. However, these declaratively configured systems like nixos and guix are a complete game changer… I’m moving to guix for various reasons; freedom, bootstrapping, no systemd - which is excellent except being a ridiculously huge C codebase with featurebloat, I feel the same way about linux and want to get onto another kernel eventually, so don’t mind me, I’m a weirdo….
However ! with all that said, I think the primary win is that guile scheme is an excellent choice for programming the whole system!! It is a super simple programming language that I could teach my girlfriend in a week (she has no clue about math or programming but could understand the four rules of evaluation and eventually solve simple problems, even using recursion) and the documentation online is super awesome, all the keywords are hyperlinks to pages containing further information and/or examples (for example: https://guix.gnu.org/manual/en/guix.html#Defining-Packages).
The thing that will make this blow up is once we have the social network we need to share our configs and compose them, the successor to old.reddit.com/r/unixporn, guix has the really nice first class feature of opening any config in a vm with just one command (see: https://guix.gnu.org/manual/en/guix.html#Invoking-guix-system and scroll to the
vm
entry). Nixos can also do all these things but it feels so much more complicated and inaccessible.I’ve havet’d had these problems in years. Maybe it was a wrong distro choice on the author’s part.
re: tearing, I tried using the most recent Ubuntu release on my intel laptop and it was tearing like all hell. switching to wayland got rid of the tearing but I started seeing random pixels glitching out all over the screen.
I’m still using Macs as both my personal and professional computer, but been wondering what’s next on both sides. First, my personal machine is 10 years old, and getting a new Mac is expensive. Second, it’s getting frustratingly hard to use Macs as a development machines, when code has to run on Linux. Despite unixy nature, they are diverging hard… getting Valgrind to work is nigh impossible, many packages that work nicely on Linux are still lagging on Macs. I believed that Nix will solve my issues of having means to easily bring dependencies to projects, but getting the Mac side to work is starting to take more and more time…
I’ve been using Linux as my main desktop since 1996 or so. I have an M1 MBP, as well.
I stick with Debian stable, trying out testing during each hard freeze season. I use X, not Wayland, XFCE instead of GNOME, and am typically running many many terminals mostly running SSH sessions elsewhere, both Chrome and Firefox, LibreOffice, and a music player.
In terms of smoothness, the M1 MBP is indistinguishable to me from my Pentium G3258 with an RX460 video card. The Mac is displaying on the built-in 2560x1600; the Linux box has a 3840x2160 HDMI screen. Both have 16GB RAM. They have equal quality sound output, though the desktop has much better speakers hooked up.
The Mac is boring, and a little stodgy: if I want to change something about its behavior, I have about a 50% success rate in being able to do that, usually because Apple hasn’t provided a choice. The Linux machine is reliable and flexible: if I want to change something, I can usually figure out how to do it, and there might be several different ways of accomplishing it. Once I change some bit of desktop behavior, I usually try it out for a few weeks and then either revert to the old behavior or make it permanent.
The last time I looked at a bit of proprietary software on a Mac and thought that I might want that on another OS was OmniGraffle. Dia isn’t quite as nice, but most of the time it’s not worth agonizing over the differences.
I clearly need to update my blog posts about the Mac -> Linux transition.
I bought this ThinkPad P52 for $3000 USD and I got a six core Xeon (12 with hyperthreading) 128GB of RAM, three drive slots, and a 4k multitouch OLED screen. The next version is more like $4000 USD for roughly the same stats (more cores, ECC RAM), but you can’t buy a mac laptop in this class. I’ve upgraded the drives since I got it, it now has 3TB of the fastest NVMe storage and I have one slot unused.
For my use case of “get off the internet and have enough local resources for heavy software development” a Mac is not a good choice.
The original Mac came out in my last year of university and there were a couple in the graduate lab. I moved a lot of my VAX activities over to it. The LaserWriter came out in my first year working and I got my employer to get one and hooked it to the Data General VAX-equivalent they used. Next job, everyone got Mac Pluses, then IIcx/ci, Quadra, PPC. Late 90s I started using Linux as a server for the Macs. My personal machine was always PPC, then Core 2 Duo. I often ran Linux in a VM, or had a separate headless box.
Apple left me with the Xeon Mac Pro. Very expensive, capable of far more RAM and I/O and high end graphics cards I simply didn’t need, but slow CPUs (with many cores). My employer gave me an 8 core 2.26 GHz Mac Pro to use. I built an i7-860 Hackintosh that totally kicked its arse despite being only 4 cores. Later I built an i7-4790k Hackintosh. Apple put those same CPUs in iMacs, but at a far higher price due to having to pay for a (lovely, huge) new screen every time you upgraded. I prefer to get a good screen and keep it for many years.
When I built a 6700k machine I decided to leave it as Linux and run OS X in a VM when required (instead of the reverse), and I’ve continued to do that with a tiny but wicked fast i7-8650u NUC and 32 core ThreadRipper.
I’ve got an M1 Mac Mini (actually two – I wanted 16 GB but they were not available until near Christmas, but 8 GB farrived Nov 19). They are lovely. I was one of the first people to get Ubuntu running in a VM on the M1. http://hoult.org/arm64_mini.html
As soon as booting Linux natively on the M1 is working well I’ll be switching to that – that’s a killer CPU. I’m supporting marcan with that https://www.patreon.com/marcan
I’ve never used Apple email or calendaring apps. I used to use Eudora, but now use gmail and google calendars and also sheets. If I write English text it’s in AsciiDoc. I don’t have any need for fancy photo or video editing. The vast vast majority of the non-programming things I do are now in a web browser, and Chrome works the same everywhere.
I have been using Linux and BSD as my only desktop since the mid 90s without much hassle at all. I must be very lucky.
You can use apple mail on Linux in the browser in the form of iCloud.com, surprised they didn’t mention this route.
The author uses Gmail, not iCloud, as their mail provider. Mail.app is a generic IMAP/POP3/ActiveSync client.
I use Apple Notes on iOS and then Notes in icloud.com on Linux. I haven’t found anything that works better. Ok, maybe beorg/mobileorg, but it’s not as effortless on mobile. Notes is damn near perfect.
Does anyone know if there are any alternatives?
It is also fully IMAP accessible, like most providers.
iCloud contacts and Calendar are also accessible via carddav and caldav respectively. Though you need to generate an API access token on iCloud.com.
I actually have really good experiences running my own Carddav and Caldav servers on iOS and MacOS. (God, I sound like such a shill these last few days! - macs are good but I really do prefer the commandline and tiling window manager ecosystem of Linux, personally)
Same here. It also works fine on Android. It’s a pain with Thunderbird though and I haven’t really found anything on Windows that works well with them.
One of the huge things that Apple did for usability (and that Android somewhat copied) was to separate system services from the UI. The address book, calendar, spell checker, and so on are all system services that any application can use. On Windows, Office implements its own ones of these and I get the impression that there was a lot of pressure from the Office team 20 years ago to prevent Windows from implementing them and enabling competitions. Cocoa’s NSTextView is a joy to use and includes a complete (and completely configurable) typesetting engine that lets you flow text however you want, replace the hypenation engine, and so on. Windows’ rich text control is awful in comparison. As a result, everyone who needs anything nontrivial implements their own version and the UI is massively fragmented.
I’m finding I’m actually liking ChromeOS, these days. The linux VM is an adequate escape hatch, and the security is excellent.
I’ve been using the Mac off and on for ~12 years and the thing which stands out to me about MacOS is the size of UI elements. I’ve found that in every OS release the UI has gotten larger. In everyday use it’s possible to hide the dock and be left with only the menubar, but when I think about the web browser, or mail app what I want to see is content and not the interface. I think Linux, maybe for its lack of maturity in scaling actually excels in this area. Window chrome is kept to a minimum and emphasizes the content, not the system providing it.
What is “conversation view”? I can’t really tell from the screenshots. How does it differ/compare with thread sort?
As someone who uses brew, can you tell me what I am missing?
An issue I’ve encountered with brew is with software versions. Homebrew assumes that you want the most recent version of all the software. There is no simple way to install a previous version of a piece of software without digging around the git repo and finding the commit for that version, downloading the script, and manually telling brew to use that script.
Homebrew is also pretty poor when it comes to version pinning. It only pins the specific version specified. There is no way to pin match on major versions. Which means that when a point release of a software package is released you must manually unpin the old version, install the new version, and then re-pin the new version.
I’m thinking about buying an m1 air as my next laptop… does anyone have recommendations for a docking station that supports two 4k screens (from a m1 mac, it seems like there is some constraint here to only “display link” docking stations), a wired keyboard, and a wired mouse?
Reddit points me at this, but it seems to have grown to 1.5x the price, is only sold by third parties, and came out 3 years ago, so I’m wondering if that’s still the best recommendation: https://www.amazon.ca/dp/B071YTQBXM/ref=olp_aod_early_redir?_encoding=UTF8&aod=1&th=1
I think M1 only officially supports one external display, though reportedly there are ways. Check into that limit before you buy. We’re anticipating new hardware announcements at WWDC in June, which might give you some more straightforward options.
I don’t know the specifics, but a client of mine claims he managed to get two 4K monitors going by using a specific Dell USB-C dock. Might be worth investigating if you don’t want 3rd party software to make it work.
Edit: a place to start: https://www.dell.com/community/Networking-Internet-Bluetooth/D6000-Docking-Station-USB-devices-with-M1-Mac/td-p/7789186