I have seen people recommend doing development under Linux rather than Windows. Can anyone give me a list of reasons for or against using Linux for the development environment? I'd like to present a case to my bosses.
I have seen people recommend doing development under Linux rather than Windows. Can anyone give me a list of reasons for or against using Linux for the development environment? I'd like to present a case to my bosses.
If you're building firmware that will be released in a product, on your desktop or laptop PC as a sort of personal build server, or on your own DIY Linux installation then that's a complete mess.
Give the problem to the IT team (or the engineering support team if that exists in the org), it's their whole purpose in life to meet the computing needs for you to do your work. Installing the build tools on some random PC setup is not easy to replicate, when people move on or if an old project needs to be revisited and the re-built firmware image looks slightly different. Once you have a dedicated build environment (whether that is a physical machine or virtual, whether it is Linux or Windows), properly maintained and backed up! then you're completely free to code on whatever OS you feel comfortable with (and whatever the IT team is willing to support).
If you're building firmware that will be released in a product, on your desktop or laptop PC as a sort of personal build server, or on your own DIY Linux installation then that's a complete mess.
Give the problem to the IT team (or the engineering support team if that exists in the org), it's their whole purpose in life to meet the computing needs for you to do your work. Installing the build tools on some random PC setup is not easy to replicate, when people move on or if an old project needs to be revisited and the re-built firmware image looks slightly different. Once you have a dedicated build environment (whether that is a physical machine or virtual, whether it is Linux or Windows), properly maintained and backed up! then you're completely free to code on whatever OS you feel comfortable with (and whatever the IT team is willing to support).
This matches closely with what my company does.
Developers can build software on their personal device, for develop, test and debug purposes. But the deployable software is built with build services, based on assets that are checked into source control.
IDE and OS dependencies, except exceptions , are not to be checked in.
The work on my own equipment is my freelance work for smaller clients who can't provide the appropriate equipment.
In my career, I have discovered there are two categories of IT departments. Some see their mission as "Enablers" to make sure the money-producing parts of the organization have everything they need. Those are a good indication of a well-run and prosperous company. The other category are the "Gatekeepers" who see their mission is to protect the company's assets at ALL costs, even if it means shutting down the money-producing parts of the company. These are a good indication of an autocratic and poorly-run company. Most have even off-shored their IT, which makes absolutely NO sense given the security concerns! These groups tend to have also bought into the Microslop lock-down mentality. They're even to the point where I can't attach a removable drive to the laptop to transfer a boot image to an embedded device I'm testing.
There needs to be a balance between the two, especially where engineering teams are involved.
Sadly, more and more companies are going the "Gatekeeper" direction.