Quote:
As for your second point, you're looking at it in such a way that nothing would ever be done. You're looking at it as if it were an endless loop where IRC won't improve because mIRC isn't going to support it right away, and mIRC won't improve because IRC doesn't have new features and so on.

Yup, I'm rather pessimistic here. I have a weird assumption that for a distributed system to evolve dynamically, its protocol, client- and server-side software must be designed and developed by people working in tight collaboration with each other.

Quote:
Instead, there is nothing wrong with looking at it the same way as other things are done. For example, graphics cards (top end) have features and abilities added to them that are not used in any games or apps at the time they are developed... and, in some cases, for months or even as much as a year after. But, because they are developed with the goal of the features being used in the future, then game developers can go ahead and start adding the features as they need them. The same would work perfectly well with IRC. If a feature is added to IRC that won't be used immediately, but which people are sure will eventually be used once mIRC and other clients are updated to use it, then there will be improvement. With your view of it, nothing would ever be done.

I see a difference that appears significant to me. Graphic cards are made by people who compete for the customer and continuous improvement is the only way for them to survive. But even so, they do work closely with software developers. NVIDIA and Microsoft are making DirectX because they simply cannot afford investing into things that may never get supported. Microsoft and DirectX developers work together, sorting issues and discussing new features.

You can see that there's an abyss between the free and commercial worlds. But one thing still unites them - they exist solely to make the customer's experience better than it was yesterday.