Some struggled with font rendering between a 1080p monitor and their Retina displays as well.
Some struggled with font rendering between a 1080p monitor and their Retina displays as well.
This is one area where I'd have to concede the Apple experience is objectively suboptimal.
However, the Python ecosystem isn't doing anyone any favors here.
C++ ecosystem sucks a lot when you have to build 5 libraries using 5 different building systems. Linux package managers do that for you.
Or, God forbid, you want to use clang or gcc. Or intel's whatever.
Plus there are DLLs and COM libraries as well.
Apple isn't, either. They ship a version of Python by default that is woefully out of date and conflicts with any other Python that you install, and what's more, some of their tools (notably, LLDB) freak out if you have a newer Python on your $PATH.
I'm still not sure I know the best way to install Python packages. It seems someone has something bad to say about any given method (pkg mgr, pip, venv, etc).
These days I tend to recommend using https://pipenv.readthedocs.io/ or https://poetry.eustace.io/ which will automate creation of those virtual environments and provide a nice interface for managing versioned package installs (i.e. `pipenv install foobar` will record the exact version you installed, including SHA-256 hashes, for repeatable installs).
If you're in the Red Hat world, note also that they're making some big (and I think welcome) changes to isolate the Python they use from the version developers use, which will also allow tracking newer versions faster:
https://developers.redhat.com/blog/2018/11/27/what-no-python...
If there’s no requirement from some OS feature to have a particular package preinstalled, I would rather not even have it in the base system if I’m just going to have to replace it with an updated (and updateable) version.
Linux and the multiple variants have been horrible. Also, you commented about Python 2-3, I agree I had issues with OS X. But you are ignoring the fact that installing software on Linux is still a mess of resolving all the dependencies and the package manager. Where in OS X, it is just a file move to App.
Nowadays, I run dev code on a Linux docker container. I do pretty much anything else on OS X.
As far as installing apps, I guess it depends on what you're trying to install. In my experience installing apps is easier on Linux than on any proprietary OS, so long as you're installing open source applications and working within the package manager and keeping your system up to date. If you want to run proprietary software on your open source OS, then yeah it's more difficult since Linux distributions aren't really designed for it.
My second mainline Linux install was a copy of RedHat on a laptop.
Mind you, this was RedHat 5.1 on an old 486 laptop with 8 meg of RAM, PCMCIA, etc. Sometime in 1995 or 96, I forget.
Several re-compiles later, I had that entire system working - all drivers for all the hardware, including the built-in modem (plus sound and PCMCIA ethernet).
I got lucky there.
I had an Asus laptop that would only pickup wifi if I hibernated it first. I have a Dell touchscreen model that took a full day to get the touchpad to work at all as Ubuntu kept defaulting to the screen. Too afraid to do a fresh install of the current (or any other) distro because I can't remember how I fixed the touchpad issue.
> But you are ignoring the fact that installing software on Linux is still a mess of resolving all the dependencies and the package manager. Where in OS X, it is just a file move to App.
This is also highly dependent on specific experiences. I haven't had any issues with conflicting dependencies on Arch linux in the past few years. And personally I appreciate a system package manager for all software instead of having to download applications and doing drag and drop for installation
BTW, on either platform your best bet IMO is installing all your scripting languages within some kind of version manager. I like pyenv, rbenv, and nodenv since they work exactly the same way between the three languages.
Similarly, TeX installation is hard and it's forcefully shoehorned on the installation, and you can't do anything better in the current situation.
My solution is to run a Linux VM for these situations. For programming and server-like purposes, a headless minimal installation is fine. For TeX authoring, an XFCE installation is very handy and not impacting battery life in a visible way.
Installing MacTeX has always been one of the most straightforward things I can imagine.
When they were working on these problems, I was in the middle of my Ph.D., and I needed a stable TeX installation, fast. I installed a Linux VM, all my woes went away, and that method just stuck.
I just checked the MacTeX page now, and it looks like they solved the problems I mentioned above, but currently I'm too lazy and need that TeX installation keep working, so I'll not retry it now.
OSX comes with some software such as git and python2 preinstalled. However they do not usually keep that software up to date and there is no way for you to change that, which means that community package managers need to be used to install more up to date software versions in parallel to the system ones
1. brew install pyenv 2. pyenv install 2.7.x 3. pyenv install 3.x 4. cd work; pyenv local 3.7.x (by default, all projects under "work" will use 3.x) 5. cd work/legacy; pyenv local 2.7.x (but this one will be on 2.x)
then for each project, I'll create a separate virtual environment.
For various reasons, I have about 6 separate python versions and a dozen or so mini projects all working flawlessly as separate virtual environments created under separate versions managed by pyenv, and I always have the latest pyenv thanks to brew.