Software Developers Should Have Sysadmin Experience
As a grumpy evil sysadmin, I think the good Professor misses where the real disconnect is, at least nowadays: stack management.<p>Why do things like Docker exist? Because developers got tired of sysadmins saying &quot;sorry, you can&#x27;t upgrade Ruby in the middle of this project&quot;. Why does virtualenv exist? A similar reason.<p>Containerized ecosystems (which is to say basically all of them now) are really a sign of those of us on the sysadmin side of the aisle capitulating and saying that developers can&#x27;t be stopped from having the newest version of things, and I think that&#x27;s a bad idea.<p>15 years ago, when a project would kick-off, as a sysadmin I&#x27;d be invited in and the developers and I would hash out what versions of each language and library involved the project would use. This worked well with Perl; once the stacks started gravitating to Ruby and Python it was a dismal failure.<p>Why? Because those two ecosystems release like hummingbirds off of their ritalin. Take the release history for pip[1] (and I&#x27;m not calling pip out as particularly bad; I&#x27;m calling pip out as particularly average, which is the problem): in the year 2015, pip went from version 1.5.6 to 8.1.1 (!) through 24 version bumps, introducing thirteen (documented) backwards incompatibilities. Furthermore, there were more regression fixes from previous bumps than feature additions. You&#x27;ll also notice that none of these releases are tagged &quot;-rc1&quot;, etc., though the fact that regressions were fixed in a new bump the next day means they <i>were</i> release candidates rather than releases. Ruby is just as bad; the famous (and I&#x27;ve experienced this) example is that an in-depth tutorial can be obsoleted in the two weeks it takes you to work through it.<p>Devs are chasing a moving target, and devs who haven&#x27;t been sysadmins may have trouble seeing why that&#x27;s a bad idea.<p>[1]: <a href="https:&#x2F;&#x2F;pip.pypa.io&#x2F;en&#x2F;stable&#x2F;news&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pip.pypa.io&#x2F;en&#x2F;stable&#x2F;news&#x2F;</a>