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.
The only feature that sets Darwin apart from FreeBSD is launchd instead of init. The rest is mostly downsides like a weird file system. You can get dtrace on many other OSs today too.
Finding an Alternative to Windows 10
That non-optional phone-home, non-optional updates, ads on startmenu, little QA (buggy like never before) - Windows up to Win7 was so nice, since Nadella everything went downhill, so sad, but true. Good that Win7 is supported until 2020, and promising alternatives are around the corner with Google Android/Fuchsia, macOS, Linux - although, the transition will be painful and but necasserry. It's a little late and all trust is gone, but maybe they fire the CEO and make a u-turn.
I ask this as someone who hasn't really used Windows for 10+ years, could someone who knows please discuss the state of privacy in Windows 10?
Is this a non-issue because you can turn off all the monitoring? How would one go about that?
Is it a non-issue because Windows 10 doesn't send private information back to Microsoft? What does it send back?
The phone-home and forced-update-reboot are the big problems for me:
The phone-home behavior of Windows 10 is a repellent. Turning it all off is non-trivial. The easily accessible privacy settings don't disable everything. There are various lists of firewall rules, scripts, policy settings etc. I can't recommend a specific source, but I think there are some well-maintained lists/scripts on github. To be honest, I'm not sure whether anyone knows exactly what goes back to Microsoft (not being tin-foil hat about it, I just don't think it's well documented).
The no-choice-auto-update-reboot thing is also terrible (I've lost data on more than one occasion from unsaved files when Windows forces a reboot while I'm afk). This can be disabled with a lot of work and research. Some people say manual updates will re-enable it. Note that I really do want to keep my machine up to date, but ideally I don't want to have to reboot, and when I do have to reboot I want to choose exactly when. I didn't buy a UPS so my computer could reboot randomly by itself.
As for "ads on startmenu, little QA (buggy like never before)":
Running Windows 10 Pro I have not seen any advertising.
The system runs fine for me. Arguably it runs with lower memory usage than Win 7. I agree that Win 7 is very stable, and that's been my experience with Win 10 too. That said, I only started using Win10 in mid 2016, so perhaps earlier builds were worse.
Overall I would have been happy to stay with Win 7. So far I've found Linux GUI to be less polished, but maybe I'll get used to it.
If you're looking for clipboard management, there are tons of linux solutions for that, see: https://wiki.archlinux.org/index.php/list_of_applications#Cl...
As for an alternative to Karabiner, I use Xmonad and manage my keymapping through the use of Xmodmap (https://wiki.archlinux.org/index.php/xmodmap)
elementaryos is perfect for a MacOS user but it feels like it's not ready yet for day to day use.
I usually find if I need something specific for production use, it's in some Linux distro, and I'll either SSH into one for work, or fire up a VM with that distro in it and SSH into it. The best dev environment I've been able to conjure up is using WinSCP to act as a bridge to whatever system I'm connecting to, and just using a local great text editor in Windows (Sublime Text, etc.). When you save, WinSCP just seamlessly saves it back to the server.
I'll keep a Putty instance permanently ssh'd in and flip to that for console stuff.
On OSX I've setup a network mount to the same linux machine/VM with SSHFS and edit with pretty much the same text editors and use iterm2 that's permanently ssh'd into the same machine/VM so the experience is virtually identical (with the exception that SSFHS can be a bit fragile).
Most of the other apps I choose are cross platform because I work on a similarly mixed OS team. I think every team should be mixed OS because it forces the teams to choose cross platform tools instead of locking themselves into platform specific choices.
I don't dev from my Android devices, but I do push stuff to them frequently, so they all have Servers Ultimate on them and I'll frequently setup ftp servers on them to move files or ssh servers so I can remote in and do some simple maintenance without have to do it on a small screen or fidget with an on screen keyboard.
If you aren't doing something really specialized on OS X, I'm not sure I understand what the crisis is except for people building too much of their identity into what device they're carrying around.
Apple's hardware is the best, by far, but at $3k a pop, I can buy 4 or 5 perfectly fine and similarly specc'd Windows Laptops, or 6 or 7 better specc'd desktops. If one breaks, just throw it away and buy whatever the newer one is and keep your hardware fresh.
If most of what you're doing is looking at a console, or editing in a text editor, it only takes an hour to get a new machine up and functional again anyways.
So much drama.
NeXT's adoption of UNIX was just a way to fulfill expectations of the newly created workstation market.
No serious NeXT application was a pure UNIX one, just like on Mac OS X.
I never saw a NeXT full of xterms and vi, rather with applications that took full advantage of the desktop frameworks, including the devtools.
For a long time, it has been my workflow to almost never develop on the host machine. I find Virtual Machines to be preferable for a lot of reasons. Am I unusual in this regard?
Try Classic Shell 
I really really like the ability to search apps with a few keystrokes and I really really like to be able to search clipboard history with another few keystrokes.
Nothing I've found are doing both or one as good as Alfred.
GNOME does this out of the box. It's possible to add this to e.g. StumpWM, i3 or AwesomeWM too.
Similar functionality is available in emacs with Helm: search through all callable functions by just typing a few characters.
> I really really like to be able to search clipboard history with another few keystrokes
Emacs does this, with yank-pop (M-y); Helm turns this into helm-show-kill-ring, which offers extremely convenient searchability.
I really can't recommend emacs highly enough: it's everything one could want in an operating environment.
* For searching and browsing, Listary Pro is pretty good.
* For text expansion, AutoHotKey
* Automating, maybe AutoHotKey again.
* Clipboard stuff - Ditto, Clip X
As I mentioned in another post, Scott Hanselman's giant developer tools list is particularly useful:
I haven't tried it, but Albert may be worth a look : https://github.com/ManuelSchneid3r/albert
My first operating system was Windows 95. I then upgraded to 98, and later XP. I decided to go with a Mac in 2008 after Windows Vista just couldn't get itself together.
My impression is that both operating systems are very close to parity. I use the same apps on both, including a lot of Unixy stuff that now works fine on Windows. Even the Windows font rendering is a lot like the Mac's now.
The Mac ecosystem still has a huge advantage in hardware quality, but I think Microsoft has caught up in software quality.
Seriously, i can't comprehend why they take a paying customer (me) and frequently think i want to see their ads my operating system is some kind of blog.
(The ad in question is for me to try some new microsoft product.. i forget which one offhand, Office Live? no idea. I usually see too much red when it happens to even read.)
These seem to recur once after each Windows Update reboot. Anyone know of a way to permanently disable these?
Note that if you're on Insider builds, there have sometimes been build-to-build update issues that reset some settings, which can result in this toggle being reset. IMO that's a serious bug you should report, but (hopefully) wouldn't make it to a stable release.
(disclaimer: MSFT employee on the Edge team)
Like, i cannot even stress how pissed off it makes me.
If there's something in Rails you can't do in Windows proper, you can still opt to use Vagrant on Windows for a more pure unix experience.
I switched about a month ago and, to be honest, I've been pleasantly surprised with Windows 10, with modern, top-of-the-line Windows hardware, and especially with Ubuntu on Windows.
I prefer the mac but apple seems to be really working hard to blow it.
you can switch back to default F1... keys
> Removing all legacy ports necessitating the use of dongles for everything
Somewhere have to start the transition
> Prioritising thinness and weight over everything else
Batterylife is the same
Worst thing on the new rMBPs: No silent trackpad click option m(
I use OS X just as an client.
By removing every single legacy port long before there's anywhere near ubiquitous USB-C? Even USB-C cables themselves are more commonly sold as USB-A to USB-C. I love having usable DisplayPort/Thunderbolt, HDMI, and USB-A on my 2013 rMBP - I never need a dongle. If I went to a 2016, I'd need at least 3, every day.
Battery life is certainly not the same, and the lack of a 16GB option or a faster processor is a well-missed loss.
Is it certainly not the same? It seems pretty much the same to me. Lack of a 16GB option? I have a 16 GB TB mac.
The FUD is getting old.
Quite a few folks including Consumer Reports would differ with you on that point.
For example when they re-tried with Chrome (instead of Safari) the found exactly the same, and in some cases better, battery life.
Not following... the physical key is gone, replaced by the touch bar?
Another problem with the touch bar is unintended touches. I constantly found myself accidentally resting a finger on the Esc key, which of course caused all sorts of weirdness in various apps.
Finally, as a touch typist the touch bar was simply distracting. I never look at the keyboard, but the touch bar really wants you to look down, which is a source of distraction, especially when it changes contents in the periphery of your vision.
If the touch bar brought lots of utility, I might have learned to deal with it, but it is really is of limited value. Emojis? There's cmd-ctrl-space for that (the touch bar doesn't have search so you'll be scrolling a lot to hunt down the right emoji). Safari tab previews? They're idiotically tiny. And so on.
I appreciated Apple's innovations in the past, but imho Apple shows little understanding of their remaining users in the "pro" market, or rather unwillingness to cater for them. Pro users want predictable work horses and a roadmap for their software purchases, not the new shiny and Apple doing away with basic functionalities of a computer system such as standard keyboards and ports.
Why didn't Apple make touch bar optional on the higher end Macbook Pros?
I doubt anyone is going to remove CTRL or [ anytime soon, so getting used to that would future-proof you quite well.
Why not just set Caps Lock to Esc? Works well with Vim and you don't wanna use Caps Lock anyway.
I use Karabiner Elements to set it that way. Karabiner doesn't work with Sierra.
What do people want? A bunch of ports that not everyone needs or wants to waste space when I could have more multipurpose USB-C ports?
Got USB-A mice and keyboards? Ok, buy a docking station or USB-C to USB-A hub and never think about it again. Got a mouse you like to carry around that isn't wireless? Pickup a small adapter to get you through the transition. The only thing I can think of is ethernet but again, not everyone is going to use that. I do want ethernet, but the USB-C Thunderbolt adapter is fine. It certainly isn't the only laptop going without ethernet today. Again, why waste a port when you can have these reversible universal ports. Miss MagSafe?
Either way, the complaints about the ports don't hold much water once properly researched and the change is inevitable.
The reason I passed on the new MBP15 is the 24% reduction in battery capacity from 2015.
I needed a new machine so I bought an Acer Chromebook to tide me over until Apple gets a form-fitting large capacity battery in the MBPs. My configuration is $3000 and I'm just not going to spend that sort of money unless it's near-perfect. I may build a PC and remote into it as per the article until the next MBP once again matches its high price but I won't hand them 3K for a battery that's 3/4th the size of the 2015 model (66% capacity for the 13").
Why you wouldn't just throw in a legacy USB jack though is really odd. You can do anything with an adapter, but I just want to jam that old thumbdrive right in, without adapters or docking stations. I'd certainly give up a type-c port (if there are several) for a legacy usb port just to be able to do that.
What most people seem to want other than ethernet is a HDMI cable (or port) and something like this will work direct from a new MBP. When I was going to buy one, I was going to grab one of those just to keep in my bag.
When I talk to normal/non-techies about this issue, they often see it as a non-issue and/or terrifying.
Why not help Windows and Mac users by writing more software for the preferred environments?
Installing a foreign operating system is like installing a different language on your PC. You must have other motivation than normal users.
Can we stop using the term "clean" to describe interfaces? Clean doesn't really mean anything in design and also is a one sided term without an opposite term that is not disparaging. Are all other interfaces that are not clean, dirty? Or unsanitary? Or cluttered? It becomes and absolute term like beautiful or professional which are all really just fluff terms for "good".
It actually conveys pretty well that the interface is uncluttered and with a minimal aesthetic, with lots of space, etc.
>Are all other interfaces that are not clean, dirty? Or unsanitary? Or cluttered?
Don't really understand the objection. "Clean" has been part of UI vocabulary, and before that, of aesthetic criticism (in fine arts, architecture, industrial design, etc) for ages. ("Clean lines", etc).