Blog THIS IS WHERE I TALK ABOUT MY THOUGHTS & PERSONAL EXPERIENCE

THANKS FOR READING

OSX is not the only great development platform

Stack Overflow reports that that more developers now use OS X than Linux or Windows as their primary OS, and that trend is slowly increasing as less than fewer developers will be using Windows next year and the year after that.

Personally, I think there is a slew of reasons, including its growth, but a larger part being the migration of developers from Windows to OSX who drink, breath, and live Starbucks for a living and deem themselves to be hipsters. Attracted by the UNIX subsystem under the hood, beautiful aesthetics, and straightforward usability approach, more and more coders, adopted OSX as their primary machine.

This migration wasn’t just for Objective-C coders, the language that OSX was primarily was written in. Languages such as Java, C/C++, Python, Ruby and other communities were slowly implemented into the OSX. Apple in newer builds, installed most of the languages, as default with the OSX and lowered the barriers for the technically inclined to code.

XCode And GCC

A down-side to this installed-by-default language support is the lack of compilers for compilation on OSX, like Windows. Sure, this isn’t a huge issue, but the recommended action is to go to the app store and install Xcode. In windows this is usually mingw or Cygwin. XCode will install critical items such as git and more importantly gcc that has been customized to work with the OSX system. Note that the rest of the language ecosystem grew upon C/C++. For example, glut (openGL) applications uses C/C++ and various header files provided by XCode for it’s graphics pipeline and rendering.

Even though XCode is easy to install, having to download it to run a graphics application is somewhat unbearable when the download size is approximately 5gb now and takes more than 15gb to expand.

To summarize if I want to install try a new application or package that uses a C extension or library, I need to:
• Download a large 5gb file
• Spend a decent amount of time installing XCode
• Sacrifice 15gb of disk space to an app they likely won’t use

It’s not about the language

I bring up OpenGL because I love graphics and computer vision. Some of my favorite projects is the Meta 2 and HoloLens. Regardless of this case, this process doesn’t just affect developers like me. It affects all developers. One only needs look at homebrew’s directory for a whole mess of dependences one must go through to get something working.

The thing that kills me is if someone goes outside of their comfort zone into a language they’re unfamiliar, they aren’t given a smooth as possible process. I’ve seen the effects of this on Udemy as well. Many developers no longer want to go through the long process of teaching their students how to install software and send them to cloud based coding sites where no software installation is needed to get started.

It’s not about the platform

As bad as it sounds, I believe it’s not only Apples fault for not adding GCC in OSX. This issue, I feel impacts all other platforms. As a community, we want people to be working on projects, tools, libraries for all sorts of languages. It doesn’t matter if your comfortably sitting in your favorite language, writing programs for some small company or your own personal gain… we want every facet of the software industry to push the envelope to eventually build something great that could redesign the world.

By making it more difficult to build and ship compatible code, we miss out on various perks such as code optimization a OS’s language library may have. We miss out on easy abstractions to rock-solid, battle tested C libraries. We make it harder for people to code.

Fixes

There’s three scenarios here:
• Apple releases their GCC package, by default and includes it in the latest builds of OSX. This would be great. The other option would be adding it to brew.
• Somebody else adds GCC to homebrew. This would be amazing, however, I don’t know how complex the OSX subsystem is and how one would be integrate GCC into Apple’s mysterious system. My guess it’s very complex, otherwise it would have been done.
• Nothing happens and we keep on relying on XCode.

Overall, this is a very frustrating scenario to be in. We are subject to Apple’s whims on this. Many people have been saying this for years, and it’s true: we all give up some perks being on OSX; it’s a trade-off.

Having used Hackintosh, a hackable version of OSX, which runs on almost all PC’s that have supported drivers, I’m happy I made the switch back to Windows. I’m able to do all the things that brew can using the package manager, chocolatey on powershell as well as, I’m able to run exclusive applications that OSX wasn’t able to run.