I also found that there were a lot of workarounds/alternatives to software/tools that I thought I would miss on Mac. I've managed to find pretty much everything I needed and/or realized I could easily live without the stuff I couldn't find alternatives for.
Having said all of that, if you have a dependency on something like XCode because you're maintaining an iOS app, you're kinda stuck with a Mac. My experience with Hackintoshes is that even if you buy the right hardware off the latest Hackintosh compatibility list, it's still a bit of a time suck. Alternatively, you could also run OSX in VMWare Workstation/Player, but you don't get graphics acceleration and some OSX software won't run properly in a VM.
It would break with any updates, half the time xcode just wouldn't work, and it would sometimes be so slow that you'd need to wait minutes for some fancy animation to run.
And this wasn't even to get around buying a MacBook, we had one, I just wanted to compile and sign a hybrid app for iOS easier than using another physical machine.
Then we also found later that you can't sign an app on OSX while SSH'd into the machine... It just fails with a generic signing error.
So now I have a MacBook with remote-desktop software that's just permanently on in the corner of the room so I can open the GUI once a month or so and re compile and sign the latest version of our app...
Cygwin works for 50%, but not for everything.
I've tried Win 10 with Subsystem for Linux (Ubuntu Bash) and unfortunately it is not even close to production ready. Besides, I'm terribly disappointed with Win 10 after having been really happy with Windows 7 since its release.
It works somewhat, but I'm very happy with my work provided 2015 MB Pro with only 16GB of ram. With Brew, Docker, etc. everything works great. If work hadn't paid for the Mac, I don't think I'd buy a new model due to the price and lack of upgradability, no escape key, ports, etc.
That being said, I've just installed Fedora 25 on a second m2 drive I put into my one Win 10 laptop. So far it is pretty good for dev work. It's not perfect, but it's approaching usability with a small Win VM for Office.
But i've had extremely good results by using the terminal and "GNU-ish tools" provided by "git for windows" which has worked fantastically. I can interop with the windows system perfectly, I get all my favorite tools like git, cat, sed, grep, awk, all the bash shell stuff, and ssh and more, and it looks a lot nicer than the default cmd.
Until the interop with the "host" windows system is better, and they push the fixes to the missing features like inotify and some others, I'm gonna stick with that.
If you're running Win10 Anniversary Update (AU), know that this was our first formal release of the Windows Subsystem for Linux (WSL) and was, as we made very clear prior to release, missing several key features and capabilities. However, we wanted to get it into users' hands ASAP so that we could asked the community for help to identify what worked and what didn't.
And the community leapt to help-out, resulting in literally hundreds of fixes to WSL and to the Windows Console.
We've continued to release improvements over the last several months through the Windows Insider builds (release notes: https://msdn.microsoft.com/en-us/commandline/wsl/release_not...), and have posted updates and highlights via our blog: https://blogs.msdn.microsoft.com/commandline/.
All these improvements have resulted in Bash/WSL now being very, VERY usable as a real-world dev environment. We've a few more fixes and improvements in the pipe that'll emerge in the next few weeks, but you can feel confident that Bash/WSL is rapidly becoming a viable, highly productive, genuine, Linux compatible environment for running your favorite *NIX-first tools, platforms and technologies.
On the flipside, Ruby remains a nightmare to install natively and Ubuntu Bash is the easiest way to work with it. There I really do miss having a working "watch" for Jekyll builds.
I cheated and used RubyInstaller for Windows, and it's worked great for me for the past couple of years, but I guess it really comes down to how you use it and what you need.
Eventually I always seemed to hit a non-cross-platform-capable makefile somewhere, and could only throw my hands up in despair and give up.
Definitely a lot easier in the Ubuntu on Windows userspace. (Though I was still fighting some weird fires with rvm and whatnot. Given I pretty much only ever need Ruby for github-pages/Jekyll work, I'm sure there is much I don't know about Ruby and a lot of the pain of the Ruby ecosystem to me is simply the fact that of the major 'modern web dev' ecosystems [node, python, ruby] it is the one I know and use the least.)
The issue I get with watch is that it doesn't properly detect added files in a watched subfolder, although changes and deletions are detected with no issue.
My guess is that it's missing something that being logged into a desktop session would have (e.g. Keychain access).
I did have keychain access, and was able to fully unlock the keychain and use it in other areas. However after chasing down several issues (including the keychain expiring after 300 seconds by default, moving the keys around between different keychains, various "jump up and down and spin around 3 times"-esque solutions of using multiple commands on the same line, or different lines, or in different orders, or others). I finally eventually figured out that I could unlock the keychain on the system manually, ssh in, then i'd have till it timed out to sign, only to have it be rejected on the upload...
Once I moved to just using a remote-desktop software and doing it through the GUI, it just worked. However now it's a 2 step process where our build system does literally everything but the signing then i need to manually remote in and click a button to sign and upload.
The system is working right now, so I kind of don't want to mess with it until we get some time, but I'll definitely take a look at that.
For what it's worth Windows 10 now has a bash shell based on Ubuntu available.
It's a full Ubuntu userland and you can even run graphical (X) applications. I've used it for Pebble development, running the (python + ARM GCC) SDK and QEMU-based emulator all on Windows. I've run into a few minor issues but for the majority of tasks it works great -- I've completely stopped using my Ubuntu VM and do all my Linux tasks in WSL.
The WSL has potential to become a very useful tool. So much so I'm considering switching from macOS on my next laptop or so. Unfortunately unlike your case, my workflow depends on a lot of networking code. WSL still has many gaps in the socket emulation pieces. It'll likely mature over time, and it's impressive that some people are already able to switch from a Linux VM!
A co-worker is also using it to run cross compilers for embedded linux hardware devices (various patched versions of GCC and such) and it's been flawless for him, which I found quite impressive too.
In my view, Windows 10 is still miles away in consistency across the entire system, compared to macOS. Windows 10 actually made it worse, because it's trying to accommodate both Windows 7 and Windows 8 design.
Currently I don't think we have alternatives to macOS. I understand that I sound like a grumpy Apple fanboy, but Windows is't ready to replace macOS. The distance between macOS and Windows have increased in the later years, and not because Apple have improved anything, it's Microsoft who have made Windows worse.
In my view GNU/Linux distributions are still miles away from Windows 10 in consistency across the entire system.
Give Elementary a go, you may be surprised.
I wrote "consistency across the entire system". I immediately believe that they did a lot of GUI polish and polishing of the default apps. But polishing the GUI of a POSIX-like system does not deliver consistency (only GUI polish). There is still the whole UNIX-like subsurface (like it or not), which delivers completely different abstractions than the GUI does (this is clearly not consistent).
For example rio (https://en.wikipedia.org/wiki/Rio_(windowing_system)) implements Windowing as private namespace (a central element of Plan 9) - very consistent.
BeOS (for which currently under the name HaikuOS they try to reimplement it in an open source way) is another example of an OS which was designed from beginning on to have a GUI and is thus also very consistent.
I do think they try a bit too hard to look like macOS, but if you're going for the best desktop Linux experience, why not copy the best commercial ⁎nix desktop?
I agree completely about BeOS/Haiku; BeOS was my daily driver for several years until the death of the company caused me to have to move on. I have yet to find a modern OS that even comes close to that kind of cohesive, sensible, practical approach to desktop computing. Haiku is coming along well, but it's still not stable enough for daily use beyond dogfooding for Haiku devs.
I have never seen a GNU/Linux distribution where I didn't have to configure some things via modification of configuration files in a text editor. Even these two differences (GUI vs. text file editing) is much more different than a few different design styles in Windows' control panel. Also the way settings are set in configuration files is IMHO even more different among different GNU/Linux applications than the different design styles in Windows' control panel.
Windows 10 isn't a good example of consistency, but every GNU/Linux distribution I have seen is much worse.
It's a bit of a blemish that there are two control panels, but almost no users are ever exposed to Win32. You can do virtually everything (from updates to domain join to adding/removing Windows components) from the modern Settings app. The legacy control panel is just that, and is irrelevant for most users. I'd love to see it modernized, but there are many much better uses of resources (security! performance! battery life!) than modernizing 90s-era utilities that few customers are ever exposed to.
But then again I rarely install new things, only have a few base programs I run routinely, and reformat regularly.
I've just had a ton of issues with the mouse becoming unresponsive... and then having to do a restart, whereas on El Capitan and Yosemite I could basically leave my computer on for forever.
Same here! Also i start to suffer from 'update-fatigue' when using Windows. The endless updates, reboots, and god knows what it's doing in the background which consumes resources... it all just feels so clumsy. I've never experienced anything like this in OSX.
I know you should save often and bad things can happen like a power outage or a glitch or something, but those things are rare. My Windows 10 machine choosing to reboot itself without telling me? At least once a week.
Imagine if you had random power outages once a week, and having a UPS plugged in couldn't stop it.
First of all you can set the time interval when the Windows will be able to update https://i.imgur.com/BZNadeE.png
And even if you are working in this time Windows ask you what do you prefer - reboot now or later.
I'am not Windows fanboy. I sue MacOS, Windows and Linux at the same time.
When I'm done with my work for the day on Windows and I go to bed, I'm never sure if everything will still be there when I wake up. Far too often I wake up and I'm at a login screen with all of my active windows and documents closed. That's incredibly disruptive, and there's no way to stop that.
There is no way to tell Windows 10 "don't reboot until I explicitly ask you to do so".
MS "needs" (?) to prioritize "don't torment your users". Of course, for corporate captives, they can torment away with impunity since The Management has already decided You Must Endure... (and probably locked out the setting in question, as well)
No, no they don't.
If the user knows what they're doing, they run Windows Update manually at times when it's convenient for them (e.g. just before going out to lunch) so that they never encounter a forced reboot situation.
If the user doesn't know what they're doing, they exactly the people who need to be forced to the latest update so they don't wind up inadvertently joining a botnet.
And, of course, there are ways to forcibly disable WU for really advanced users but at that point whatever befalls them is quite clearly their own responsibility.
So, win-win for everybody but the malware makers.
Like IBM and Oracle, MS is in the position of "Management says we've already won, so suck it, users!"
Payback ... and all :-)
I still like the Mac's unobtrusive "get it tonight after I shut down" option, though :-) (or Ubuntu's "I'll get it when I'm good and ready", but that's not a system for worker bees)
Really? Windows has its share of hair pulling annoyances to be sure, but endless might be overstating it.
In my experience since switching, I find that resource consumption is comparable to OSX. I get that this is anecdotal, but I leave my main machines on 24-7, and I basically only reboot when an update forces me to, which sometimes is once a week (when there are frequent updates), but most of the time it is for stretches longer than two weeks.
I'm managing a friend's Win10Pro machine and so far it's been awesome. On the other hand, OSX which I'm running seems clunky and old-fashioned.
Though I still miss:
1. MacBook's touchpad :-(
2. Emacs-like keybindings everywhere in OS (like MacOS has).
I use it to spin up linux images that contain all the devtools that I need, and mount files/code from windows in there. For a terminal just enter the image with exec /bin/sh. To get a consistent experience I also use msys bash (which is bundled with git for windows) for terminal use on windows. With that setup entering and exiting linux containers feels very similar to on OSX.
The downside of docker for windows is that you need HyperV activated, which weans VirtualBox no longer works. The older boot2docker solution worked together with VirtualBox - however it didn't support filesharing between windows and docker containers, so there's unfortunately a tradeoff.
I've tried docker for windows, and even WSL+Ubuntu+Bash, and it's just not as good. I use conemu, VS Code, and Chrome more than anything else.
I thought that was true on any OS... :/
All word-of-mouth, of course.
Not really surprising (dev version, comes with warnings about compatibility, ...). But why would you let that hold you back for trying it out for what you are going to use it for? Counter-anecdote: I've ran gui apps like SublimeText, gcc, ... without crashing; also see other comments. tldr; try it first-hand instead of relying on anecdotal proof it isn't, or is, ready.
WSL (i.e. the horrendously named Bash on Ubuntu on Windows)
Note that 'WSL' and 'Ubuntu on Windows' and 'Bash on Ubuntu on Windows' are seperate terms for different things
The bash subsystem is interesting, but I'd go with the virtualization solution first.
Recently, however, I stumbled upon Figma, a web-based, real-time collaborative interface design app (i.e., a competitor of Sketch). After convincing my group to experiment with it for a school project, I was pleasantly surprised.
- It's web based, so it works on Linux.
- It imports .sketch files
- It's real-time (you can see everyone's cursor and selection). This was great, because it meant we didn't have to walk through the snow to get to campus to have a discussion about tweaking a few elements.
I understand that some people may still need access to Sketch to work with people on their team or at their company. But for me, I'm officially striking Sketch off the list of software that's tying me down to macOS.
The reason is direct manipulation. You're not thinking in terms of the DOM's static flow when trying to create a design. Instead you want a medium where you can quickly transfer the idea in your head to a tangible form and try out different layouts, typography, colors, and visuals.
But there still exist the problem of converting that design into code, and that is a wasteful exercise. You might have found Protoship UIPad, a tool I'm developing (in early alpha), useful there. It can convert Sketch designs into code - HTML/CSS and even React. Sketch has been incredible for that sort of stuff. It is a vector design tool and its design elements are fully expressible through CSS and SVG, unlike say Photoshop which is a raster tool.
> This claim is typically met with skepticism. Isn’t generated code unusable? Are the elements going to be absolutely positioned? Would the CSS classes be named correctly, and how reusable would they be?
Of course you had to code everything by hand yourself - you didn't ask for code, you asked for design templates.
Any tool can be used incorrectly in bad hands. The problem of choosing to work with talented and competent designers is largely unrelated from the choice of tool.
This and the massive misunderstanding – where two parties agree to "templates", and one delivers mockups to the other who expects coded pages – tells me that Sketch is a subject in the story, but it isn't at fault.
Sketch users can be very knowledgeable designers and very good communicators. Sketch itself doesn't teach design, and it doesn't solve communication issues either.
I also requested a responsive design.
What I got was as useful as a PDF.
Sorry, just kvetching on Sketching.
I just felt it was a waste of time that some basic coding skills could have solved. ;)
It took me a week or so to get used to i3, but once I did I can't see myself ever going back. I've been using i3 at work and at home for about year now, and every time I get on my (Mac Book) laptop it's a frustrating experience: I feel like I spend more time trying to figure out how to get to the window I want that actually using it...
Alfred. Alt+Space by default (note you can also remove keybinds of Spotlight to make room for Alfred because I use Cmd+Space for Alfred and Alt+Space for iTerm2 fullscreen, running tmux via tmuxp).
EDIT: As joobus wrote above, I also recommend Amethyst. There's a small learning curve with the keybinds but that's it. Oh, I and I recommend Flux (remember you can temporarily put it off).
Cmd-j/k for next/prev space, cmd-h/k for switching windows. Cmd-H/J/K/L for desktops 1-4. I spend most days in vim/screen anyway so it feels natural.
Try swiping up instead. That'll give you a list of spaces to choose from. Certainly not as direct as your non-OS X WM but faster than stepping through each one.
Unfortunately the Linux desktops were actually worse than the barebones window managers like i3: there was some sort of glibc bug that screwed up clock display on GNOME for at least a year. GNOME assumed glibc did it right, which was a reasonable assumption...but an incorrect one, but with i3 I could control this.
Now that I'm on Mac I look back in amazement at the time I spent on Linux learning ultimately useless stuff like why a bug in glibc would mess up my GNOME clock but not an i3 clock.
Systemd makes using i3 so much easier. No more fiddling with consolekit and dbus just to get working external drives (logind solves the problem of local authentication), no more fiddling with symlinks to set time (timedatectl to the rescue).
> Unfortunately the Linux desktops were actually worse than the barebones window managers like i3: there was some sort of glibc bug that screwed up clock display on GNOME for at least a year. GNOME assumed glibc did it right, which was a reasonable assumption...but an incorrect one, but with i3 I could control this.
Gnome nowadays use timedatectl AFAIK to set time too. The last time I had a issue with setting date or time in Gnome was pre-systemd days.
While some people may not like systemd, I find tools like timedatectl, localectl and hostnamectl to be quite useful. They work much better than trying to write a shell script or parse something.
Systemd is relatively nice now, but the disdain for it wasn't just 'hate train'.
No, it is mostly hate train. I only read one or two solid (technical) arguments against systemd. And no, no one of them is found in the regular systemd-hate sites.
> Also, the primary developers have a poor attitude.
I think the community have a worse attitude them the core developers, however this is mostly anectodal observation.
> eg: goodbye to all your old ways of looking at logs
systemd enable syslog.service
Here you go, all your old logs in the place you expect them.
There's an invisible pink unicorn who knows the winners of every horse race, but only I can see and hear her. Of course, I'm not going to tell you the winners; that's my secret!
Did you get onto the systemd stuff late? I got in midway along and found a few things that were iffy. One of the definite problems was the core developers' disdain for other people's use cases - even Torvalds said he was ambivalent about systemd itself, but the developers were pretty user-hostile and that was a problem.
> Here you go, all your old logs in the place you expect them.
Cool. In the same vein, do we have centralised logging in systemd yet? Or do we still have to run another syslog tool to ship them? Last I looked half a year ago, the consensus was still "ship them through rsyslog/syslog-ng", so you still have to run your old syslog in parallel. Only the IPU knows why they would make a new journaling system for a primarily-server OS, and keep kicking the "centralisation" can down the road.
Yes, the anti-syslog commentary went too far, but there were a lot of problems with it, especially before it had been battle-hardened. But whether or not you do or don't like systemd, you'd be crazy to say that it fits in with that unix principle I mentioned above.
Perhaps some of us value our freedom?
Perhaps some of us find that it helps to develop on the same platform on which we deploy?
Perhaps some of us find that we don't, actually, spend all that much time on 'admin, busy-work type issues,' having decided on good, solid distros which fit our use cases (Debian works for me, others prefer RedHat)?
At the end of the day, though, it really is about freedom for me. You complain that you must tweak your system; I value that I can tweak mine.
For instance, take sloppy focus. On my Linux machines, I can type in one window while interacting with another, and I use that ability fairly often. On my Mac, I have to spend time resizing and rearranging windows because I have to click a window to type there, and clicking raises it to the foreground, obscuring my other windows. Does the amount of time I spend managing windows outweigh the configuration time for the Linux box? I doubt it. But the end result is that my Linux machine feels like I built it exactly to spec. I value the fact that my OS, window manager, etc. do exactly what I want them to do in the same way that many people value the trackpad. I'm absolutely as annoyed and frustrated by the fact that the maximize/fullscreen button on my OS X windows moves my window to Space N+1 instead of keeping it where it is where a quick Cmd-Tab would bring a background window quickly back on top of the still-visible fullscreen window than I am that the trackpad on my Arch Linux box is less reliable at interpreting a gesture.
You know kinda like you do with apple machines.
everything i have worked out of the box. and, as a plus, android usb tethering works a lot better on linux than on osx (thanks to networkmanager)
If anything, my plan would be to move more of my life into Emacs so that I'm even less exposed to stupid ideas from my OS/laptop vendor.
I have been using i3 on a netbook for the last two days and I can definitely see how it would be lovely. But then again, Linux has changed a lot since I was into it seriously and I'm sure I will experience pain if I have to do anything substantial to tweak it, like symlink timezone files.
The time I spent setting those things up has been more than made up for over the last year as I've spent less time managing windows and more time just doing work.
Also, KWM has focus follows mouse.
So Fedora has been my main distro of choice for a couple years now. I still hesitate to order RHEL licenses at work, unless the client specifically has a good argument for choosing RHEL I tend to lean them towards CentOS.
And I can speak from 12 years of professional sysadmin experience in BSD and Linux that yum or dnf is a very stable package manager.
I've had more issues on Debian 6,7,8 than I've ever had on CentOS or Fedora.
RHEL is the Linux distro for production systems that you want to just run without any tinkering or surprises.
To me, that just seems like a long term win.
For me, it's Devonthink Pro (http://www.devontechnologies.com/solutions/writers.html) in particular and also Lightroom. Yes, there is progress on Dark Table, but there's too much useful software on OS X and despite Apple's faults its laptop hardware still leads the pack.
Yes, the lack of ports on the new MBP is annoying. If I had to buy a new MBP today I'd just get the last version—which is still fantastic—refurbished, and kick the hardware can down the road a couple years.
If you want an alternative for graphics work (or other development), try Windows.
For other web development, in general, you'll be able to work well with Linux.
Keeping work on different machines quickly starts to become unmanageable, that's why MacOS still leads. It gives the best of most options on the best hardware.
P.S. - I tried ElementaryOS last month, for couple of hours and didn't find it an alternative in any way. It's UI is quite clunky (of course, since they are trying to copy Macs UX, but don't have the finesse). The eye candy can't make it a Mac alternative in any way; it's still Ubuntu under the hood, and less intuitive than Ubuntu.
A smarter way is to use python for automation. There are lots of graphics libraries and bindings to do what ever you want.
I moved from OSX to Linux recently too and I am generally pretty happy with multi-monitor and pseudo-tiling support in gnome3. I can do most of my window movement and application switching with few shortcuts (it requires few gnome extensions). Such as -
1. switch application with shortcut rather than alt-tabbing (something like - Super-1 for Emacs, Super-2 for terminal etc). It requires a gnome extension.
2. Tile the Windows with shortcuts. Currently gnome3 has limited support but it mostly works out of box.
3. Launching or switching application with a global shortcut. Requires a gnome extension.
4. Move Window between monitors etc.
Such things usually requires at least 2 or 3 paid apps on OSX. Divvy, Sizeup etc.
Oh and 1Password works perfectly okay via Wine, including the browser extension. So, that is one thing you should checkoff your list if that is stopping you. :-)
I just finished importing my 1Password data into https://www.enpass.io looks like it might turn out to be a good option.
Here's my build (http://pcpartpicker.com/list/pYWQMp), which runs into some driver issues but can be fixed with Kext utility. This setup allows me to do CUDA programming + Deep Learning stuff natively in OSX, while having access to pretty Mac software. It's great, I highly recommend it!
 - https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act
This level of risk is fun but not for the faint of heart.
Oh? What has changed?
> This level of risk is fun but not for the faint of heart.
Read: as soon as a new patch comes out for macOS you are either running around with known security vulnerabilities (as well as missing reliability fixes), or you're a guinea pig entirely unsure if it breaks anything and if so how much effort it is going to take to get the patch applied. Why? Mainly due to drivers.
Besides, good luck finding a well working laptop with good macOS support.
I gave up and bought a MBP 2015 instead. Very nice machine. Expensive, but nice.
For a workstation or MP replacement it'd make more sense. The MP hasn't been updated for 4 years and with physical access to the quick machine its easier to fix issues. You're also guaranteed not on the go, so you got all the tools you need at your disposal. However there is still a risk for loss of productivity and worst of all you can't plan it. Because you don't know when Apple does release their software updates.
The fact that Apple hasn't done this already is because it's insignificant, not because of some benelovence on Apple's part. They're not going to encourage unlicensed use of the OS. The OS is there to sell the hardware, not vice versa.
there was only one rule and i believe the same i truth now, if you plan to run hackintosh u better watch what hardware you get. if you do that u can run hackintosh without problems.
I don't have the nerve to learn all the other features anyway...
> All I want from a desktop is little icons for launching programs. One of those icons should launch a command shell. That's it.
Whether or not that is acceptable for your use cases depends. For me, I already have a Surface Pro 3 for ultra portable needs. Because of that, I found myself never using my Macbook Pro when I couldn't plug it in. And given how slowly cpus are gaining in performance these days, if plausible, it makes more sense to me to focus on performance over battery & weight.
Edit: I'm appreciating the feedback for "why not?" and am sending it around to people in the community. :)
I'm in love with some of its big ideas, like per-project dependency files that mostly eliminate my need for VMs and container management tools, and being able to read my OS configuration in a single file.
On the other hand, most of my work these days ends up as a Dockerfile and Docker images anyways, and the benefits of Nix package management could be had with Nix alone (not NixOS).
So at the end of the day I'm running a slightly buggy KDE 5 desktop that I haven't invested the time in fixing. I have a cool package manager, but I'm using it with one global nix environment. Packages are not hard to find once I know what I'm looking for, but discovering those packages and their nix-specific names can be tricky at times.
That said I'm new to desktop Linux, and it's hard to fault NixOS for most of the (relative) difficulties I've encountered.
1. Switched my notebook from NixOS back to Debian. NixOS’s advantages are not actually advantages in my practical reality.
2. NixOS being such a niche distro makes it _such a pain_ to use random binaries from not-yet-packaged software, which I do often enough.
3. Also, the Nix packages I use are sometimes a bit broken. That also happens in Debian, but I don’t know enough Nix to fix stuff myself.
Beware: I’m a Debian Developer, so my view is obviously biased. That said, I think the trouble I had is representative for trouble other people might have with NixOS. In total, I used it for about half a year, I think.
NixOS is one of those "this has to be the future" things for me, but a future i can't currently use, despite wanting it. I hope someday i can make the switch.
Also, Elementary is pretty.. and call me vein, but that is nice. Generally i want the OS to "just work" and pretty gives me the false, emotional impression that it will.
Perhaps coming by #nixos on Freenode for an afternoon could get you over the configuration hurdle?
I remember I tried NixOS in a VM on a Thursday and was so smitten that I replaced OSX on Saturday.
Edit: I really appreciate your feedback on this!
It's not purely the syntax, but more difficulty finding API documentation to match "what i want to do". Eg, if i wanted to add a package, or if i wanted to add a custom package, what function would i use? (not a question directed at you). If i wanted to add a chroot, what would i use? What args are available on those functions? etcetc
The documentation was a massive frustration to an already confused person.
On top of that, it seemed every package/binary i wanted wasn't available in Nixpkgs, or was outdated in Nixpkgs - so i had to learn how to modify the binaries for pretty much everything i did. And, when you don't know what you're doing, this is a massive barrier to entry.
I'm not too savvy on Linux and runtime requirements of binaries, so finding the requirements of a binary or setting up chroots for binaries that i could not modify was very time consuming. I spent most of my time doing that, in fact.
The concept of NixOS represents time saved to me. Reproducible builds based on a idempotent config, awesome! But in reality, i had to figure out how to make everything i wanted idempotent, and it was just a massive barrier.
I'm super smitten, i think the documentation just needs a bit of work. I would love to run it on my home server and also Nixpkgs on my Mac.
For what I use it for (light web dev) it is the same or better than OS X.
The only thing stopping me from throwing out OS X completely are the Adobe apps (InDesign in particular) but even with that I have switched to doing most of 90% of my work on paper or in a text file then only complete layouts in OS X.
It presents a huge list of OSes but then it just says "After evaluating each I was left with a top 3." Without providing any reason as to why.
To top it there is no QubesOS and no NixOS on the list. This in 2017.
So, perhaps future posts will provide more details, etc.
(I will also say that macOS's menu bar app buttons were not designed with focus follows mouse in mind!)
Except for "natural clipboard support" (dunno what you mean) and "Emacs" (I am a vim user, so I set up vim shortcuts) I have everything you said in my i3 setup, however for every application instead only for terminal.
I'd assume the author means the same shortcuts as every other app, which would be Ctrl-C/V on Linux. Obviously that wouldn't work in the terminal emulator, but I don't see why you can't remap it to Meta-C/V (as MacOS uses) for that.
You could even remap it globally: http://askubuntu.com/questions/102846/remapping-keyboard-sho...
Pretty sure that has to do with you being used to different keyboard shortcuts, not with any inherent properties of the terminal app. I'm currently experiencing this the other way around (working on OS X being used to Ubuntu), and struggling with it as well.
The next screen is my editor, next browser, finally email/comms. ConEmu is OK on windows, and I've tried a few different linux terms, but not is as easy/nice to use by a mile.
"I’ve also run various Linux distributions and BSDs since around 2000, so am quite familiar with them"
Therefor i consider, it is not even a switch just more dedicated usage. Clickbait blogpost, if you ask me.
Most likely (hopefully, if you have a big powerful workstation) you use at least some big fat desktop application such as XCode, Visual Studio, AutoCad, Photoshop, Chrome, Mathematica, Office, ...
Just pick an operating system that works well with your hardware and your big fat desktop applications. All that terminal stuff will likely run anyway.
And instead of ordering dirty cheap hackintosh with up to 4 CPU Xeons with all memory he can get and compatible wifi, that will be no thin and no light and he can run familiar terminal window to remote build his diamond code while listening to sound of coolers,
He starting to search OS with better GUI than OSX (Elementary it is) and dreaming about hardware you can run FreeBSD (like PS/2 mouse and glorious VESA 2.0 12801024?)
I expect next article will be a tour to the wonderful world of 15" 1366768 Celeron laptops that let you upgrade memory (up to 8Gb!), spacious replaceable 4200 hard drive and have USB 2.0 ports and VGA in addition to HDMI 1.4.
People will know in detail how good terminal window run there on FreeBSD with Elementary OS theme (without 2D acceleration of course).
He makes alot of sense, that mate.
The Intel Skull Canyon NUC is what I'm using, with Elementary running on Virtualbox in Windows 10 (waiting for the Samsung 960 EVO to sell globally before setting up a native install).
The one massive problem for me that keeps me going back to the laptop is that the Mac absolutely nailed keyboard layout by separating the command and control keys. And no other OS is currently able to do so.
I use the basic emacs shortcuts for navigation in all the apps that support them (crtl a,e,n,p), and the command key to issue commands like close tab, save, new tab etc.
This is absolutely impossible to replicate on any other OS (AFAIK). I can map the command key to the control key, but that's about it - it just becomes a new way to hit control. Being able to consistently map and access the command key (as SUPER) simply can't be done.
> The one massive problem for me that keeps me going back to the laptop
> is that the Mac absolutely nailed keyboard layout by separating
> the command and control keys.
Traditional X11 programs have (had) fully configurable key bindings in their app-defaults.
Today, KDE (and other Qt) programs at least allow individually changing shortcuts to use Super. Qt has an internal switch to use Super everywhere, but it's hard-coded to the Mac platform. Perhaps eventually there will be enough pressure from OS X refugees to make it a user configurable setting.
I use these settings and find them quite handy.
Of course, that doesn't give you new-tab/close-tab/save on M-t/w/s, for that you have to install some Firefox addon etc. – not quite OS-wide consistency :(
The bottom line is that Linux tends to have better hardware support, especially for laptop hardware and power management.
When you run into problems, you'll usually have a much easier time finding vendor support or online community help for a Linux distribution than for FreeBSD.
Under the hood, FreeBSD is a lot simpler than Linux, and a lot of people like it for that reason. But if you want a generic Gnome/KDE/tiling WM/etc. desktop experience, and you don't need any BSD-specific features, I think Linux is the way to go. After all, we are talking about a replacement for MacOS here, which is pretty well integrated with the hardware and does not require a lot of tinkering to get working.
I've been playing around with various BSDs over the past couple of years, and I really want to like any of them enough to keep installed, but this is exactly the issue I've run into with freebsd and it's derivatives. On both my last laptop and the current one, I can get everything working to a fairly reasonable state, but there are minor but annoying hardware issues I just don't have to deal with in Linux.
In my most recent attempt (installing TrueOS on my spare SSD), some apps occasionally crash when I use the Intel video driver, so I'm forced to use scfb, which is a bit slower and doesn't render fonts as nicely. Additionally, the wifi tends to be a bit slower; I average around 4-5 MB (not Mb) down on Linux, but top out around 2 MB on TrueOS. I also have to use Firefox instead of Chromium on FreeBSD and its derivatives, as there always seem to be some bugs in the FreeBSD port; right now, it renders some bizarrely-shaped section of the window in a deep shade of yellow covering part of the URL bar and the top of the page, and signing in to Google to sync my extensions and history hasn't worked for like 10 major versions of Chromium.
I really like DragonflyBSD; it works a bit better for me out of the box than FreeBSD (I don't need to configure to not have the fan running at full blast all the time, and I've strangely had fewer issues with Chromium despite it using the same ports tree as FreeBSD with some custom patches), but I've had issues running any display manager other than Slim, and even that hasn't worked that well for me, as I've never been able to get the numlock and auto-login settings working (yes, I know, autologin is "insecure", but I always have FDE on my machines, so if someone can get past that, I don't think the login screen will stop them). Unfortunately I haven't been able to try it out lately; on my current laptop, BSDs weirdly seem to think that my screen resolution is 1024x768, and the only way I've found to fix that is by setting the GOP in EFI, which is not an option for DragonflyBSD currently. I've spent more time than I'm willing to admit trying to follow the manual EFI installation inductions I found on the DragonflyBSD mailing list; I think I got it to boot once, but apparently the snapshot I was using panicked when trying to load the specific wifi driver during startup (although I found out later it could load it fine after it was fully booted), and I've never gotten it to boot since, so I'm not convinced I wasn't mildly hallucinating or something. Every now and then the Dragonfly Digest will have some post talking about some new small step towards EFI support though, so I'm optimistic that someday soon I'll be able to boot it on my current laptop and discover a whole new set of reasons why I can't use it.
OpenBSD, on the other hand, works pretty great for me out of the box in terms of the GUI and hardware, but I'm not fond of the packaging system; I tend to like to have fairly recent versions of apps, so updates come a bit slowly compared to what I'm used to. Even worse, pkg_add is kind of horrifying to me compared to what you get on FreeBSD-based systems; for reasons I can't comprehend, it seems to query for updates individually for each package you have installed rather than first just getting a list of updated packages and then downloading the updates for the packages (if there are any). I'm unfortunately too spoiled to wait several minutes just to find out that there aren't actually any updates for my system.
I've never been able to get far into setting up NetBSD. A couple of years ago I got it installed but couldn't get Xorg to start up, and I've been unable to get the installer to boot on the most recent release; it prompts me to select the boot device from a number of options, and I've tried all of them, and none of them work. The issue seems to be fixed in the more recent snapshots, but I haven't been able to figure out how to install with FDE (I found the option to encrypt the disk, but it seems to be independent from the installation itself, and neither encrypting the disk before or after the installation seems to result in a bootable encrypted system), and I'm too stubborn to install it without.
NetBSD also gave me a bizarre halt-the-world problem on installation the first few times ("Old BPB too big") until I skipped the first sector.
I figure this laptop is old enough if it isn't supported by now it won't ever be.
Everything on my hardware works (ThinkPad W530). The WWAN(3g) connection, Wifi, SD Card Reader, Power Management, multi monitor setup, external disk in the Modular Bay ...
Also having ZFS and ZFS Boot Environments on a system is great for updates/changes. You are literally bulletproof.
The BSDs are great for very specific tasks, but I find more general use users will prefer Linux with GNU userland. It has wider hardware support and a larger community for resources such as documentation and troubleshooting.
In short the idea is that You create snapshot (BE) of the current system state (filesystems), then make changes/upgrades. If something went wrong, then You reboot to that snapshot (BE) like nothing had happened.
About GNU userland, I also use SOME GNU tools like 'gls' (GNU ls) or 'gawk' (GNU awk). They are provided by the FreeBSD sysutils/coreutils package/port, I also use sysutils/moreutils like 'vipe' or 'vidir'.
The documentation part on FreeBSD is much better then on Linux, check the Handbook, or Wiki, or FAQ, or plain old MAN PAGES with useful examples. I sometimes read/use ARCH Linux wiki or Gentoo WIKI but for most of the time FreeBSD documentation is second to none. Even with a lot less people then Linux has.
BTW, while there are a lot more Linux people out there then BSD people, remember that Linux people are fragmented over about thousand Linux distributions while there are only several BSD distributions.
I do not want to sound 'bad' here but I also found many times that 'BSD people' known more about Linux then 'Linux people' if You know that I mean.
Reading the linked article, I have some observations, particularly about the requirements Wesley lists:
> One tool for each job.
This strikes me as a somewhat peculiar requirement. The Mac certainly doesn't work that way, particularly since OS X, and as long as the different tools available aren't hurting you, their availability won't be much of a problem.
> A sensible/minimal selection of pre-installed applications.
To me, a more useful requirement would be "no bloatware". Linux distros in particular often come with a ton of pre-installed applications, but they are generally good applications, and having them does not cause any harm.
If you buy a Windows computer, on the other hand, you'll likely find its installed Windows version to be borderline unusable due to all of the preinstalled manure.
> Simple, easy to use/understand interface
As somebody who has used Macs since the early 90s, I'd argue that ever since Mac OS X, the Mac hasn't really offered that. It's still ahead of most Windows versions (excluding perhaps Windows 8, but clearly including Windows 10, which sadly has reintroduced much of the clutter from earlier Windows versions), but many Linux distros are now much cleaner and simpler than OS X (both Elementary and Pixel come to mind as examples of this).
So to some degrees, Wesley is requiring these operating systems to offer things that the Mac hasn't truly offered since the late 90s. This is not entirely unfair; as a Mac user, he's used to the Mac's oddities and flaws, and so it is perhaps useful to require the system he's switching to to be better than Mac OS in some respects.
Still, I think it's fair to point out that the Mac itself probably couldn't easily fulfill all of these requirements.
Granted, I feel the exact same way about macOS (with slightly less concern about malware, to be sure).
And I do mean Server as X Windows switches the common usage of client and sever.
Should be great when it comes out of beta, though - a good terminal and we'll be all set.
you can install what you want on macOS and you can install what you want on Windows. Both have custom terminal apps
It's not listed in his requirements and Win10 may satisfy him.
There are lots of free things in life that have an inferior free alternative or only free alternatives and this may be one of them.
And I said you don't need to pay for anything if you want to do Rails programming. In fact, here, the "inferior alternative" for this task may be the proprietary one.
Another thing would be using his computer for gaming. In that case, I wouldn't object, of course.