Maybe the direction Apple and Microsoft are taking is not aggreable in that both are seeking tighter control over what we do with our computers. Both are businesses and obviously will try to extract as much money from us as possible. In the case of Apple, their computers are increasingly closed boxes that cannot be opened and repaired. Instead you're faced to pay ridiculous prices for upgrades and repair, which lines Apple's pockets at our expense. As a what if exercise, I'm thinking over what it would take to supplant macOS with a Linux system (won't ever go back to Windows).
I've been happily using Unix-like systems since 1982 when I found a PDP-11 running Unix V7 in a computer science department computer lab. Within a year or so I'd wangled a job administering the brand new VAX-11/750 running BSD 4.2, and held a position in that team for about 6 years. Since then, except for a brief dalliance with Windows, I've used SunOS, Solaris, Mac OS X, Linux, and FreeBSD systems almost exclusively.
When Apple announced Mac OS X, I jumped in at the first chance -- because it was a Unix with a pretty face that also had a decent Java implementation. At the time I worked for Sun in the Java SE team, and therefore Java support was important.
After about 15 years of using Mac OS X, I'm starting to wonder if or when I should switch to Linux. I can't point to any one thing, but have a nagging feeling that Apple is going to be tightening and tightening their control. Plus, it clicked one day that most of the applications I use daily are extremely portable. Meaning that it may well be feasible to use Linux full-time, and to a large extent that's due to Electron - the desktop application framework that's a weird amalgam of Node.js and Chrome.
In this post I'm going to summarize the application set I'm interested and a few notes about each. Each application type will warrant one or more followup posts exploring alternatives. All will be linked here.
Software Development
I primarily work as a software engineer, and must have good quality tools. Fortunately all the tools I use are readily available for Linux, and are often available in the package management systems. In other words, the environments I use will be precisely the same on Linux versus macOS. Apple may not understand that the Developer Community (all the hip developers use MacBook Pro's) can easily move to Linux-based laptops. The only exception is developers of iOS applications because it may be difficult to do that outside of Xcode.
- Atom is in the Ubuntu application store, simply install it from there.
- Visual Studio Code is available as a
.deb
download - Gitkraken and some other tools are available as downloads from their respective websites
- For Eclipse (I do Spring development) it's widely recommended to not install the Eclipse in the Ubuntu package repository. Instead download Eclipse from the Eclipse website. Afterward use the Eclipse Marketplace to install the required plugins.
In general the vast majority of software development tools run on Linux.
Code editing
- JavaEE development (my day job involves writing Spring applications) is easily done in Eclipse, IntelliJ IDEA, and Netbeans, all of which run on Linux
- Microsoft Visual Studio Code and Atom are both modern developers editors built using the Electron platform. I've used both extensively, and both are extremely excellent. They're readily available on Linux.
- Sublime Text is supposedly a popular developers editor (I've never used it) and is readily available for Linux
- Komodo Edit is a full-featured IDE that's available for Windows, Mac, and Linux. I used it extensively before discovering Atom, and even installed it inside Crouton on a Chromebook.
Programming Platforms This would be compiler toolchains, debuggers, software platforms, libraries, and so on. Virtually everything that we run on Mac OS X is also available on Linux, and is more-or-less the exact same tool. Sometimes the Linux version is newer than the macOS version.
Virtualized systems
- VirtualBox This is an excellent open source virtual computer emulator. You install the desired operating system, and it's like you have a whole new computer running inside. It's available for Windows, MacOSX and Linux
- Vagrant This is a tool simplify creating virtual programming environments. It runs on top of VirtualBox and maybe on top of VMWare. I've never used it, but it's widely recommended and supposedly very nice. It's available for Windows, MacOSX and Linux
- Docker This is a different take on virtual computer environments. Instead of constructing an entire fake computer, it runs the lightest of operating system emulation layers. It relies on "Containerization" within Linux to create extremely light-weight environments within which to deploy application code. It's really cool in case what I just said didn't make sense. Anyway, it runs on Windows, MacOSX and Linux.
Other tools
There are lots of other development tools. The vast majority of them run on Linux as well as other systems. Here's two that I use routinely.
- Postman This is an excellent tool for REST service testing. Like Atom and Visual Studio Code, it is built on the Electron framework. Available for Linix
- GitKraken This is an excellent Git client, and is coincidentally also built on the Electron framework. Available for Linux
- Arduino IDE This specialized IDE supports developing app's for Arduino devices. It runs on Windows, macOS and Linux
Web Browsing
There are a large number of web browsers available for Linux. Of the primary web browsers, the status on Linux is:
- Microsoft Edge Obviously for Windows-only
- Safari For macOS and iOS only
- Chrome For all platforms including Chromebooks
- Firefox For all platforms
- Opera For all platforms
In my case I switch between Chrome and Firefox, and will be satisfied with Linux.
The Ubuntu package repositories do not have Chrome but instead have Chromium. The latter is the fully open source version of Chrome, of course. On the off-chance Chromium was missing something important, I've gone ahead and installed the commercial Chrome build from the Google website.
Multimedia plugins for web browsers
Browser plugins are quickly being abandoned by the software industry. However, some websites still require browser plugins even though non-plugin video and audio playback is very powerful nowadays.
Generally the plugins - e.g. Flash - are proprietary and do not execute on Linux.
Those who use websites still requiring browser plugins will have difficulty with using Linux. Fortunately the number of such websites is shrinking every year.
In my case I don't have a hard dependency on any website requiring a browser plugin. I've seen several websites recently with videos that refuse to play because my browser does not support Flash. The websites in question aren't high enough priority for me to get all worked up over being unable to play those videos.
Word Processors and text editing
Many of us have highly technical requirements for word processing software. I don't, but clearly there are many who do. There are a number of highly competent word processor systems for Linux, or for use in web browsers. For typical folks, the alternate word processors will be perfectly adequate. But there are of course many whose needs will absolutely require their high end word processor.
- Libre Office and Open Office - Libre Office is the preferred of the two because of Oracle's management style over the Open Office project. Both are open source Office Suites offering not just a Word Processor, but Spreadsheet and Presentation and Database applications. Libre Office is a hostile fork of the Open Office project so the applications are nearly identical, but the Libre Office community is stronger than the Open Office community.
- Google Docs - This is an Office Suite developed by Google which runs in web browsers. The suite includes a word processor, spreadsheet, presentation program, and drawing program. Google's staff keeps ramping up features and performance, and it is a quite powerful system.
- Zoho Office - Similar story to Google Docs.
- WPS Office - A suite of applications, word processor, spreadsheet and presentations, that is meant to be a Microsoft Office alternative on Linux. I have no experience with it, just came across it in passing.
- Calligra - A full open source office suite containing not just the word processor, spreadsheet and presentation applications, but diagram editor, project management, and vector graphics applications. Wide breadth of capabilities, in other words.
Speaking for myself, Libre Office and Google Docs are all I need. Much of my writing is instead written using Markdown and is formatted using AkashaCMS for publishing either as eBooks or websites.
Spreadsheets
- Libre Office - Includes a very good spread-sheet application.
- Google Docs - Includes a very good spread-sheet application.
- Gnumeric - An open source spread-sheet app that's widely packaged for Linux systems.
PDF and Image viewing
In macOS, the Preview application is excellent, combining PDF viewing, image viewing, image editing, screen capture, and more, all in one application. For Linux this may require multiple applications.
http://www.omgubuntu.co.uk/2018/01/flameshot-linux-screenshot-tool-annotation - Flameshot is supposed to be an excellent screenshot-capture application. Unfortunately it does not install easily on Ubuntu.
Skype and other Internet video/audio calling
For decades we'd been promised video phones - for example Dick Tracy's wrist-watch-phone - but the telephone companies didn't deliver. It took the Internet and Skype to deliver something like a Video Phone experience. Today there are many alternatives to Skype, such as Google Hangouts, Facebook Messenger, and even Slack.
There are so many alternatives that we can't make a list here. Whatever happens to Skype on Linux, it won't matter because of the large number of alternatives to Skype.
Microsoft is downplaying the Skype app for Linux, for what it's worth. At the same time, the web version of Skype is coming along. It may be that Skype in the web browser on Linux works well enough, or else Skype for iOS or the web version on Chromebooks.
The Web version of Skype does not under either Firefox nor Chrome - on Ubuntu 17.10.
UPDATE On Feb 4, 2018 I noticed that Skype is now listed in the AppStore thing on Ubuntu 17.10. I installed it but there are problems.
First is sound support. I'm using an Intel NUC that doesn't have built-in speakers nor microphone. I've got a headphone/microphone thingy plugged into the headphone jack. Running the Sound Preferences, plugging in that headphone is enough to enable audio output and input according to the Sound Preferences. BUT, the Skype application claimed there was no microphone and no speakers. Going to the Skype Test Call contact to try a test call, and the Call buttons were disabled.
The Sound Preferences show audio input and output both working. I can run Audacity, and record sound using the mic on this headphone, and listen to the recorded sound. I can run YouTube in a browser, and it plays fine through this headphone.
Second is system performance. With Skype running, system performance became dismally dreadfully bad. This NUC is a Core i5 with 16 GB of memory and the OS is installed on an SSD drive. The machine feels very fast and responsive, but with Skype running it became unusable. As soon as I killed Skype, the system performance returned. Sort of.
Twitter apps
I don't often use a Twitter application versus the Twitter website. Supposedly there are extra features available by using an application.
Shared calendar, notes, contacts
One great feature of macOS is the shared system for calendars, notes, and contacts. They sync seamlessly between desktop computer and iOS devices. Apple really wants you to use iCloud services for this, but also allow you to configure other services. I've had success with using Google accounts with these features.
But -- Big Brother? Do I want Apple snooping on these things and perhaps turning them over to the Feds?
This will be a hard nut to crack because of the desirability of syncing this stuff to iPhone/iPad.
DVD, Video, Audio playback
VLC?
What to do with the big pile of stuff I have in iTunes? Especially the stuff I've bought that way? And what if I want to keep buying stuff via iTunes?
Video editing and conversion
There's various video editors for Linux and some of them might even be acceptable. For conversion there's ffmpeg, which has an unfortunately complex command-line user interface.
Photo editing, photo gallery, panorama creator
Gimp? Unsure of what else is available.
Supposedly Darktable is equivalent to Lightroom, but open source. It's available for macOS, the Linux's, and now for Windows. I tried installing it on macOS using MacPorts, and that failed trying to get GTK3 with Quartz support installed.
- https://petapixel.com/2017/12/27/darktable-brings-free-open-source-lightroom-alternative-windows/
- https://www.darktable.org/install/
UPDATE Feb 7, 2018 - installed it on Ubuntu and gave it a quick tour. It has lots of features and capabilities for image manipulation. Looks good.
UPDATE Oct 12, 2022 -- How to connect a digital camera by USB to Ubuntu/Linux
eBook / EPUB reader software
Reading Kindle books on Linux, supporting a switch to Linux No form of Kindle Reader exists for Linux, and the installer for the Kindle Reader for PC crashes when run under Wine. Therefore Linux users cannot directly read Kindle eBooks. They can use the Kindle Cloud Reader.
Obviously Apple's iBooks will not run on Linux. Fortunately that runs on iPad. As does Kindle and other eBook readers.
On Linux I know of the Calibre suite.
iPhone/iPad backup
I have both iPhone and iPad. One of the control points is how Apple limits you from accessing the file system on the device, and thereby limits your options for backing up the device. Instead you're corralled into backing up via iTunes onto your desktop computer, or else to iCloud ($$$'s per month).
It's fairly easy to get automated backup of pictures and a couple other things. But this is a per-application thing because of how Apple set up the system.
It may be better to switch to Android?
Computer backup
In macOS we have Time Machine built-in and it's excellent.
TODO research Linux backup methodologies and tools
Monitoring system attributes -- SSD and battery health etc
Preventative monitoring and diagnosing of system hardware issues is very important. For example, if the battery is running out of useful life one should be forewarned and replace the battery. SSD's are extremely attractive because of their performance benefits, but theoretically run the risk of sudden catastrophic failure. Therefore monitoring the health of your SSD drives is critically important. There are many more possibilities, from diagnosing other kinds of drive failure, to rebuilding file systems, and other hardware diagnostics.
Linux alternatives to many of these capabilities exist. But they tend to be command-line driven rather than GUI driven, and may not be as polished.
TODO find these tools
For some of this, command-line utilities are available. On macOS I have installed a few GUI's that are nice. The importance is having visibility into the status of your computer. For example the SSD Reporter application is telling me about the degradation of the SSD drive in percentage points.
Controlling the Drobo
I have a Drobo for storing vast quantities of files. The issue is running the Drobo Dashboard app - which doesn't exist for Linux. Seriously, the Drobo corporation only supplies the Drobo Dashboard as Windows and macOS applications. Don't they understand the large number of Linux sophisticates who might want to use their boxes?
UPDATE: I've since sold the Drobo - and there are tools like Open Media Vault that perform similar services
http://drobo-utils.sourceforge.net/ -- Drobo Utils is an open source project aiming to allow Linux users to control a Drobo. The website smells of a project that's gone stale, unfortunately. The other unfortunate thing is it doesn't work with network attached Drobo's (I have a Drobo 5N). But it is available on Ubuntu:
$ apt-cache search drobo
drobo-utils - manage data robotics storage units (drobos)
H&R Block tax application, and general accounting
I do my taxes with the H&R Block application. Maybe the Windows version will run on Wine?
Otherwise I use WaveApps - a hosted web app - for accounting.