Why is there a stereotype of it being better to developing applications inside Linux vs Windows?

989 views

Why is there a stereotype of it being better to developing applications inside Linux vs Windows?

In: Technology

5 Answers

Anonymous 0 Comments

Linux OS is free. This means the barrier to entry is low. Windows OS license is $100-$200 a pop. This means more people can jump into Linux systems.

Traditionally Linux has been packaged in varying levels of configuration. You want a small version? Ok but it’ll miss these things. As long as you don’t use those things you’re fine. Want a really skeleton version? Ok but be prepared.

Want a minimal windows for desktop? It was really really hard to get. Only recently in past 5 years did Microsoft start releasing smaller versions of windows for enterprise use. But the desktop versions are all full blown. You can’t get a copy of windows without 500 preloaded printer drivers. Or 1000 kinds of misc devices that you might never encounter.

Anonymous 0 Comments

Linux was historically a lot easier to develop for, I suppose. In Windows you had to find some tools, often illegally if you didn’t have the money to pay for them. In Linux they’re all there from the start, you install them the same way you install the system itself. The availability of lots of free and high quality tools under Windows is a relatively new development.

Also Linux is a lot more open to experimentation. Want to change the user interface, or the kernel itself? The source for all of that is available. In Windows such things are far harder and much less flexible. Eg, modern Windows still keeps [ancient fixed size dialogs from times immemorial](http://www.downloads.netgear.com/files/answer_media/images/IPv4_properties.png) (I think that dialog looked like that in Windows 95?). You want to make that window bigger because scrolling is annoying? Well, too bad. Nobody at Microsoft saw the need to bother to improve that bit in two decades, and you don’t get to either. On Linux, if something bothers you, you can change it.

Anonymous 0 Comments

There are two things that I would say are the main reason.

1. Linux is open source, for application development this means you have everything at your fingertips to figure out why your thing doesn’t work. Building an application that doesn’t work because you have corruption on your screen, you can debug it and debug your graphical libraries too, GTK+, OpenGL, your graphics drivers, and the kernel APIs, they are all available. If your graphics driver is causing your application to break you can debug it, pull up the code, and fix it yourself. Now usually that doesn’t go that far, but a bug in your toolkit (GTK+) isn’t all that uncommon, it’s also not uncommon to have bad documentation and you can find the error in the documentation and fix your application that way.
2. Linux is ultimately designed by developers, and generally if someone wants to write a feature it’s going to get accepted if they do the work. Someone is debugging a bug and thinks it’s in GTK, and thinks that GTK could benefit from debug tools, they’ll write that tool and they’ll accept it. This tends to result in a lot of libraries having a lot of developer-centric features.

Microsoft on the other hand largely takes different views on them.

1. For debugging system libraries, they leave that to Microsoft employees, so when you encounter an error in a system library, or something doesn’t work as documented you have two choices. Ask online (like reddit), or ask Microsoft (and they won’t help you for free). Also Microsoft might be busy and doesn’t have your system, so it’s probably going to take Microsoft longer to do it than if you just had all the stuff their employees had. To compensate, they tend to have better documentation, but it’s not perfect, and you still have problems.
2. Microsoft adds features their users want, if you can get by without some feature because only developers need it, they probably won’t add it, it confuses the idiot user. They want usability with minimum effort, and they don’t care that much about the developers. That means the tools don’t really work as well as they do on Linux.

Anonymous 0 Comments

Linux has a standard set of development tools bundled with the O/S. On the other hand, Windows has a variety of competing standards, most of which are proprietary.

Linux also encourages command-line development, which is far more accessible than learning a specific IDE. IDEs also change over time and the selection of IDE will vary widely by company.

Linux is (mostly) platform independent. So you’re not tied to a specific hardware platform (much) compared to Windows.

Lastly, Linux requires no license management. While institutions can get free or reduced-cost versions of software, doing so still requires an arrangement with vendors that can add a bureaucratic layer.

These features tend to make Linux a favorite in the academic community – where most people learn to code. They take these biases with them out into the world.

That being said, most professionals’ enthusiasm for Linux wanes the further they get from academic because they start to experience the glaring flaws of open source platforms – the lack of effective professional support, the requirement for deep in-house expertise, the validation and security problems inherent with open source, the lack of hardware support, etc.

Anonymous 0 Comments

It’s not a stereotype. You’d have to actually be a developer to understand, but essentially it comes down to clutter.

In Linux you have an editor of your choice and the terminal to test the program on. And usually with Linux systems they come with the tools to make programs like the gcc compiler, and python interpreter to name a couple of examples.

On windows you have to use An IDE, you have to learn the IDE and how to use the IDE, and it’s annoying to work with because sometimes they make extra unnecessary files. You can’t even get gcc on windows without having to use some third party application called mingw.

Visual studio, as an example, is absolute overkill for writing C programs. When I could just go on Linux and just write and test my program as I see fit.

There are instances where you just can’t avoid Windows, like when you need to use its system libraries but I think you get the idea.