On 10/4/19 10:40 AM, Valeri Galtsev wrote: > My impression is younger generation doesn't value rules that > programmers were following 2-3 decades ago. One of which is: > > Do not make any changes [in the program] unless they are absolutely > necessary. > I have in the past agreed with this assessment more than once. And I _am_ somewhat of an old hand at this, having run Unix and Unix-like systems for a bit over 30 years. The fact of the matter is that, even though some of the old ways work just fine and don't need to be changed, many more times I've seen that, if the old way was a kludge to begin with, maybe there really is a better way to do it. Take the transition from horse and buggy to automobile for instance. Iron rim tires work just great for the buggy, not so great for the automobile; a change had to be made in an old technology (the wheel) to meet the needs of the new automobile. Lots of wheelwrights probably fought that change, too. I've seen the old ways, and there are more kludges out there than some would like to admit. (obOldWayRef: article on 'the kluge' from the 1966 Datamation book 'Faith, Hope, and Parity.') Just remember: the old ways back then was punch card and batch; what do you mean you want more than one person to use such an expensive thing as a computer live, wasting its valuable time? Many seem to forget just how subversive Unix was back in the day relative the the old ways. > ... > Yet one more thing is: building superstructure on top of what actually > works. The definition of what works can and does change over time. Sure, an iron rim wheel can work for the new automobile, but the basic change in what the wheel needed to do (with buggy the wheel doesn't need to provide good traction, that's what hooves are for, and narrow and smooth work best; with the automobile all of a sudden the drive wheels need to provide traction, and even though the iron-rim wheel still works after a fashion on smooth ground, there is a better way to do it). I can just hear the old-school wheelwrights saying "well, if it gets stuck in the mud then just don't go in the mud!" or "why would anyone want to go faster than the horse-drawn buggy could?" or "why would you need to turn that quickly and at that speed?" or "why in the world would you want brakes to stop you that quickly?" and the list goes on..... I _am_ old-school in thought, but I do consciously make the effort to understand the newer reasoning, rather than be the greybeard that constantly talks about how I did it in the old days. Heh, in the old days I made it work with K&R C, 1MB of RAM, and an 8MHz CPU.... and I griped about the misfeatures then!..... Today, I'm doing things with containers, virtualization, dynamic load balancing, software-defined infrastructure/IaaS, etc that the old ways simply cannot handle. NetworkManager/systemd/etc in CentOS are far from perfect, but at least they're trying to solve the newer problems that the old ways in many cases simply cannot.