So as a person who develops using Windows, OSX and Linux, here is a much less opinionated reason.
Why do I develop using Linux?
When I am working on LAMP servers, I like to have as much as of a local testing environment as I can. I can have all the same software, and versions of the software, running on my development OS, as will run on the actual server when the Site/Application is hosted.
Why do I develop using Windows?
When I want to develop a program for windows, I could develop on either other platform, but as it probably would not come as a surprise, Visual Studio, and all the tools that go with it, is, without a doubt, the best tools for the job. In addition, many of the best tools, and most polished tools, are available for windows!
Why do I develop using OSX?
Although I have nothing to do with OSx, this is a reason for many, but my reason actually lies very different.
OSX has some really nice, polished programs for development. Many are available on windows, and some are available on Linux. BUT, you have a terminal, with real native SSH support, you have homebrew, basically, it is a great middle ground. A pleasant interface, with great tools, and a terminal you can drop back to, to do real work in.
Why do I NOT use OSX for development?
Hardware, while mackintosh is great for a desktop, iMacs are overpriced junk, and Mac Pro’s are even more of a joke. Notebooks are fine, but severely overpriced. You need to be logical where you spend money, especially when you have limited budget.
Why do I NOT use Windows for development?
SSH, honestly, this is key. While you can use Putty, and other things, it needs native SSH, it is an outright pain trying to manage servers without it. Minor, but a huge pain. Additionally, it is a bad performer. Performance on identical hardware, it falls behind both OSX and Linux.
Why do I NOT use Linux for development?
While almost everything is available, and works just as well as OSX and Windows, there are some tools which are just junk. Some applications just have not been optimised, and run like rubbish compared to OSX and Windows conterparts, and many of these might even be the identical Java Applications. Hardware support can be weird and a hassle.
So, what does a developer like me use?
All of them!
It’s easy like a python script :p
WebApp = “Linux”
Mobile = “Apple”
Desktop = “Windows”
– If you are developing a desktop applications, more often that not, 80% of you customer base are windows, so, you want to give the majority of your customers the best experience possible, so you develop to suit them.
– With Mobile, XCode is way better than the work arounds for compiling and working in Windows, and Android has the same tools on OSX as Windows, nailed both in 1 hit.
– With WebApp, all the reasons I mentioned above.
Done 😀 Guys don’t forget to share the article with you’re friends, they may need it 🙂
Tahar Amine | TheBlaCkCoDeR is a White Hat Hacker, Security Researcher, Penetration Tester and Programmer.