Want to start a career in app or web development? This article might help you in choosing the best operating system for the development job. For those, who are pressed and don’t want to read the whole post to find what is the best operating system for development? Here is the answer:
If you have a Mac or MacBook or willing to invest money then go for it. It is best of the both of the worlds. For others, who do not have a Mac or already has a PC or Desktop, Linux should be your go to the platform. And, you should start with Ubuntu Linux.
Now, for the guys, who want the rationale behind the conclusion and the pros and cons of using the Linux operating system, keep reading.
In early 2010, I started working in a company as a PHP developer. It was a startup and they were using PHP – MySQL as a backend there. When I joined there, I noticed they were using Windows for development and their choice of IDE was PhpED (NuSphere). Please don’t think that it is bad editor. In fact, some of the features that PhpEd had been pretty cool like inbuilt Smarty support, but it came with a price tag which was I thought too much for a startup who are still in the product building phase. One would also need to purchase separate Microsoft Windows license for all the PC’s. Combining the cost of both for whole team was making it very expensive affair.
I have used Linux since my college days and trust me it was a terrible experience back then to install Linux into a laptop. I remember wasting days in just making my laptop WiFi driver work under Linux flavor I can’t remember. One of my college friend suggested Fedora which was on version 5 back then and it was a pain in the back also. But in the process of finding a solution for every hardware compatibility, I started becoming a fan of Linux operating system and its simplicity.
By 2009, Linux started to take shape (thanks to the effort of the large open source community) and installing the Linux operating system was quite straightforward and less quirky. Most of the time, drivers were supported right of the box and the UI was getting refreshed too.
Why I chose Linux over windows for web development?
Because of the new born confidence in Linux and the fact that the final production deployment was to be on LAMP servers (Linux, Apache, MySQL, PHP), I suggested Fedora 13 as an operating system for the development and Eclipse as the IDE for web development. Eclipse is known for Java development, but many don’t know that it is a very scalable IDE and PHP support with the plugin is very good. The major reason was to avoid proprietary cost with no compromise on development. And, it gave us testing environment close to production servers because now production and development machines were on the same operating system.
It was a decision that worked out very well with a few exceptions that we’ll discuss later in the post. It became our go to solution for production servers, development, and testing machines.
For over 10 years now, I am still using Linux as my preferred development machine. I moved to Ubuntu in my new company because, lately Ubuntu has become GOTO standard for using Linux on a Desktop or Laptop. We have also moved from eclipse the VS Code for Web and Android Studio for Android app. Here are some pros and cons.
Benefits of using Linux over Windows as a development machine
- Zero Software Cost: Linux is open source and most of the Linux flavors come free of cost. That means, you have no cost upfront (for most of the Linux softwares). It is a boon for startups and freelancers who are new to the development and do not have money for softwares.
- Terminal: Because Linux is still command line predominant operating system. Terminal application is super fast and fun to type in Linux as compared to CMD tool for windows. Be it autocomplete, history or environment variables. Everything works flawless and save a hell of a time compared to windows. And on top of that, command line editors like
viare just absolute gem.
- Stability: The Linux filesystem is super stable as opposed to Windows. Common problem with windows are: they can hang anytime. You won’t even notice what happened and suddenly you will see a Blue Screen Of Death (infamously known as BSOD). It is so time killing and annoying. Then, the viruses will keep creeping into the system from pen drives and whatnot. Thankfully, Linux file system is way less complex and more importantly stable. Rarely a Linux system crashes. You may see one or two programs crashing, but not the whole system and they are less prone to viruses than Windows.
- Software Updates: Windows system are renowned for the updates that require frequent restarts. One of the most annoying things that I find in a Windows OS is the installation of the updates at the time of boot. Man, it’s so time consuming and frustrating and you will encounter them frequently sometimes within days or two. Linux updates are fairly regular, fast and require much less restarts.
- Faster Response: Totally based on my personal experience. LAMP has been just faster than WAMP.
- Support for different Languages: Every programming language has support for Linux machines. In fact, python comes preinstalled with Linux. Linux Operating system was designed for the purposes of the learning an operating system. Unless you are developing iOS apps, you can use Linux for virtually any programming language development. In fact, new technologies like NodeJS have better modules compatible with Linux OS and requires much less of work.
Not everything is bells and whistles in Linux and it has some fair share of its own disadvantages.
Drawbacks of using Linux as a development machine
- No Microsoft Office: This might be Linux’s biggest drawback that there is no support for Microsoft Office documents. We can use LibreOffice in Linux but compatibility with MS Office docs is not that great. Technically, this is not the fault of Linux itself, but it is a drawback of using Linux. We can easily mitigate it by using Google Docs. But, companies do use MS Office at a large extent and editing MS Word document is not that good in LibreOffice.
- Printing: This was a major issue 7-8 years back, but now printer companies are more keen in providing drivers in Linux too. Linux does have its own open printing API but it loses some of the hardware features provided by the printer companies.
- No support for iOS/MacOS Development: This should come with no surprise as Macs are proprietary and Apple wants you to purchase their own systems for iPhone app development. So, if you want to have a career in iOS or MacOS development, you need to have MacOS enabled hardware.
Finally, none of these drawbacks apart from 3rd one is a show stopper for you and once you get along with Linux, I strongly believe that you will have a hard time reverting to the Windows operating system.
If you have a Mac or MacBook or willing to invest money then go for it. It is best of the both of the worlds. It is based on Unix operating system and is tools are very similar to Linux one’s. But Macs are expensive.
Don’t think twice and dive into the world of programming by choosing the right tools.
Made it so far? Subscribe for more interesting posts. Cheers!