What OS should I used daily (Linux or OS X)?

1 points by airswimmer ↗ HN
I had been using Linux for decades. And I am used to the software and packages on GNU/Linux(Debian). But recently I got a Mac, preparing to develop iOS apps on it. But I found that gradually I had to migrate/port some other Linux tools for OS X. It really costs time to do so when you replace the development environment. GNU/Linux has great tools for developing most things in console. But it doesn't come along with some elegant DE (I am a KDE fun) as OS X has.

I am obsessed with the UI/Easiness of OS X. But I still want the convenience/productivity of GNU/Linux.

Do you have some ideas?

(P.S. The `homebrew`(unofficial OS X package manager) stuff is cool but it can never compare with `apt-get` or `pacman` or `emerge` or `yum` or `gg my friend` )

Have you ever experienced this? How did you live with it?

10 comments

[ 4.1 ms ] story [ 34.8 ms ] thread
docker for mac will allow you to run anything you want inside a container. I like to use temp containers to build things without the pain of setting up tools
Yeah. But docker is a just a container. Not only do I sometimes develop things in console ( for services) but also develop tools in DE (such as PyCharm, IDEA, QT creator, android studio).

What's the difference if you install GNU/Linux on a Mac, will you regret it?

with a little bit of tweaking you can run desktop apps in containers. check out Jessie Frazelle's dockerfiles: https://github.com/jessfraz/dockerfiles

edit: to answer your question: you'll probably encounter bugs and glitches, as the hardware may not be fully supported. i've heard of issues with wifi, bluetooth, power management, etc.

Yeah docker won't get you GUI software like QT Creator to use those on my mac (when I had a mac) I used a regular virutal box vm with a full xubuntu install.
check out https://hub.docker.com/r/zachdeibert/qt-creator/

desktop apps in docker are just a matter of mounting relevant drivers and files in the container

Okay. So basically this guy uses docker to set up a X11 server with qt creator and other development environment in a server. Meaning while, the user can use a local X11 client to connect to the X11 server which do the real computing.

But this highly depends on the quality of Internet. Every PC can do it with a X11 client.

This is a good try, but not very practical.

Why do you think homebrew can't be compared with apt-get or etc?
Homebrew depends on git when fetching sources. Sometimes it fails at compiling or so. Not like the binary fetched directly from `apt-get` or others.

For other GNU/Linux package managers, they have package distribution standard (testing). Homebrew maybe give us latest package but I can't be sure whether it's stable and reliable for production.

`apt-get` or others are backed by companies or major communities.

---- But words in short, I really don't want to carry 2 computers (ThinkPad & MacBook) to work, travel or anything. Do you have some suggestions?

I would advice MacPorts.org instead of homebrew.

With package managers such as macport and homebrew, you can run on Darwin freedom/open source programs, including a lot of GNU software that you also find on Linux. You can also compile those freedom/open source programs yourself, or get binaries produced from them (eg. http://emacsformacosx.com).

The alternative, is to run Linux binaries on a Linux system, with two choices here: have a linux box on the network, or use a virtual machine in your MacOSX system. I'd advice Virtual Box, which is a freedom/open source x86 virtual machine provided by Oracle.

In terms of user interface, you have coarsely three classes of programs: CLI, X11 and native GUI (Cocoa).

For all the CLI commands, there will be no difference of user experience between a Linux binary and a Darwin binary of the same program (apart from the differences of feature in the host OS, it may be significant for some system tools).

Some freedom/open source applications have multiple backends, including a native Cocoa one, and in this case, it is indeed a very good idea to compile it on the MacOSX system to use the native Cocoa user interface. emacs is such an example, with http://emacsformacosx.com.

But the best is to use a X11 server on MacOSX. https://www.xquartz.org/ Then you can run both the freedom/open source programs compiled on MacOSX and Linux programs running either in a virtual machine or on another machine on the network, with all user interface inside X11 on the MacOSX screen. Of course, you can run all the KDE programs here or there. And you can also change the window manager, if you don't like quartz-wm which decorates the X11 windows like Cocoa windows.

Notice that virtual machines provide a (graphical) screen emulation too, but in general I find it slower and more inconvenient to use, than running the X11 server on MacOSX.

Thank you. I have dig a bit into xquart and found it to be a nice X11 tool.

Firstly, so did you refer that you work on Linux and connect to your MacOS which is running a X11 server using xquarts?

Secondly, how do you manage the files on your Linux machine if you use your Mac as the main machine? Do you use SSHFS to mount your Linux drives on your MacOS? (I'm used to the environment that Linux gives me, and try to work on Mac without giving up Linux tools)