A fear of change is natural for any person, as change is stress (by definition), work, and uncertainty. Programmers are no exception to this rule, but have the unfortunate luck of being in an industry that changes constantly.
Indeed, there is no stopping evolution and innovation in technology. Change seems to be inherent in any modern technology, as technology is a means to improve efficiency, and improvements to technology further improve this efficiency. Market forces themselves will always drive change in technology.
There is no escape for the programmer. He (or she<cough>) is forced to deal with change or find their skillsets in a state of perpertual decline in need by the market, in usefulness to the consumer, and in support for by complimentary technologies.
Yet so many programmers don't seem to recognize their own aversion to change and instead curse new technologies with irrational arguments whose true root is in the fear they have of change.
But technology evolves so quickly with so many fads that it is impossible for even the most diligent programmer to stay up-to-speed with all emerging technologies. Therefore, a programmer must choose carefully which new technologies he or she commit to learn. So, resisting change is good up to a certain point, as it reduces the liklihood of wasting time on technological fads.
Its when this resistance to change prevents programmers from ever evolving, leaving them stuck in some war against innovation itself, that it becomes detrimental to the programmer, and society at large.
A good example is the fanatic x86 assembly language programmer who refuses to admit that assembly language programming is of increasingly less viability. Such a programmer stands firm on their irrational arguments, refusing to admit that a good C/C++ compiler will out-optimize the vast majority of their efforts.
How many times have we C++ programmers cursed Visual Basic guys. Sure, they are all lamers, but the fact is that they often fulfill the requirements of a project in less time and effort than the same project done in C++. Languages that make programming easier, despite the merits (or lack there-of), are so often condemned just for making things easier for new programmers. This says something itself about our human nature, but I digress...
And now .NET is on the horizon. Its been here for a while actually, and is constantly improving. It has its advantages and disadvantages, as does any programming platform, but managed code in general, and .NET in particular, has proven itself to not be some fad. Its clearly the future, and we need to embrace it instead of fear and resist it.
What we've worked so hard for so many years to learn will eventually become antiquated; this is an unstoppable market force. We can fight it, but we can't stop it. In the end, its best to take what we've learned and use it in the pursuit of mastering the latest programming technology.
Fortunately for us old unmanaged programmers not all is lost. C++ is still C++, even if its .NET. VB is till VB, even if its .NET.
The market makes our transition to new technologies as easy as possible, since this is in the best interest of the work-force at large. But no matter what the particular situation, change will always seem more difficult and scarier than it actually is.
A good programmer must be ready to learn new technologies and abandon previous technologies. He must accept change as an unstoppable force, embracing it for the increases in efficiency it provides, instead of condemning it with irrational arguments that only thinly mask the fear of change.