Philanthropy and altruism in software programming

For some reason I’ve been spending an unhealthy amount of time looking at instances of software deprecation recently. As readers will know, this is the process by which certain features are left in software even though they have been superseded and been made redundant.

This is rather like our ‘vestigial’ appendix in some ways I suppose, we carry it with us but it serves no real purpose. Having said that, carrying deprecated features inside newer versions of software is useful (to some degree), this is because it helps preserve backward compatibility.

CAVEAT NOTE: There is an important note to be made here. There is a strong case to argue this both ways and say that deprecated features also have the potential to get in the way and, in some cases, can lead to clunky “bloatware” software being created.

I also seem to be writing a lot about cloud computing ‘democracy’ (sharing of APIs and open standards) right now too; and the combination of this topic alongside software deprecation makes me think warm positive thoughts, in that we might just be able to do good things for software developers some of the time.

Allow me to elaborate further… Leaving deprecated features in existence (for however long) of course gives programmers the chance to get their head around new code structures and (if necessary) work towards compliance with new standards.

Open standards, open source and an open collaborative community focused approach in general all seem to distil further towards my argument for software programming unselfishness. So shouldn’t more of our programming and data management practices have a touch of this kind of philanthropy and altruism?

The problem with altruism in software though is that too much of it leaves the barn door open to accountability, so eventually we always get to the point where we need to draw a line in the sand.

Website has a lovely definition use case for my last words there i.e. drawing a line in the sand. It says, “The president has drawn a line in the sand, which means that if the foreign troops are not removed, they will be attacked.” Makes you think, doesn’t it?

What all this openness really comes down to is compatibility. So for an industry view on this topic, Computer Weekly spoke to Mark Quirk, Azure product manager, developer & platform group, Microsoft UK. “Compatibility view was added to Internet Explorer 8 (IE8) so that a user viewing a web page with mark-up features unique to IE7 and deprecated due to standards compliance or bug fixes in IE8, could still render the page in the way it was designed.”

“Of course the best scenario is that as web standards evolve and browser vendors implement those standards, so that all the web pages on the Internet are updated to conform to the latest thinking. Right! … and then of course there’s the real world.”

“Compatibility view remains a feature of Internet Explorer 9, now with emulation features for IE8 as well as IE7. For the developers working on Internet Explorer this model provides a way to update the browser to use the most up-to-date agreed standards or conventions whilst ensuring ‘legacy’ support for those sites that won’t be updated.

“Today there are recommended methods detailing processes to create webpages that will stand the test of time across versions and different browsers. But until we’ve all had chance to build pages this way, Compatibility view plays its philanthropic part,” said Microsoft’s Quirk.

Yes I know I’ve placed this story in our Open Source Insider blog. Yes I know some of the technologies discussed here are proprietary. I also know that a true philanthropist wouldn’t complain and feel the general level of goodwill that I have tried to convey OK? 