Sorry if I came across the wrong way. It's just that I find the "replace program x" idea to be counterproductive. It makes it far too easy to dismiss everything.

Maybe the goal is not to "replace" Skype (that would probably imply duplicating all its features, right?) but to offer alternatives for doing some, maybe even all, maybe even more than you can currently do using Skype.

We cannot just assume that everyone wants to replace other programs/solutions whenever they offer an alternative. It may just be additive.

You have given an example: You use many different networks for different things. None of them are exclusive. You can use them all if you like.

It might be easier to get uptake of something "new" (and nurture that infamous "network effect") if it is not framed as "replacement for enormously popular program x that users already know how to use and which works good enough".

Does that make sense?

If I have a cool alternative OS to share with HN, how far do you think I will get if I frame it as a "replacement for iOS/OSX/Linux"? Not very far. The problem is that even if you do not explicitly claim it is a replacement for anything, HN'ers still assume that's what you are implying by even mentioning it.

This is nuts. If someone offers me an OS/program/solution that can do something I can't currently do with the existing OS/programs/solutions I use, I'm not going to disregard it simply because it duplicates some of the functionality of those programs.

I don't automatically think of the choice as "either-or", I think of it as "should I add this to my options". I ask what can this offer me? Can I split out the functionality in this program that I cannot get in existing programs? But I know many users do view things as either-or. It would be foolish to ignore that. "You can never replace program x." OK, we hear you.

This is why I like small programs that only do one thing. If the user is going to view your using your program as an "either-or" decision (it must _replace_ what they currently use) instead of a "can I use this in addition to what I'm already using" decision, then the chances of deciding not to try your program are significantly increased if your program is some sort of do-everything whiz-bang solution. That's because when you offer so many features, some of those the user is already getting from other existing OS/programs/solutions. They are effectively forced to see things as either-or.

What if, e.g., someone offered just the NAT traversal function of Skype, and someone else offered an encryption program, and yet someone else offered a simple open source command line client (e.g. built with pjsip) that developers could write their own GUI's for? None of them would be trying to "replace" Skype, but using those programs in combination, you could indeed construct a Skype alternative. You might actually be able to do more than Skype can do because it would be a more flexible system. As it stands, you are stuck with that Skype UI. And you're stuck with Microsoft. But if you had an open source command line client that anyone could write a GUI for... and solutions to traversing NAT... and solutions for keeping third parties from tampering/intercepting/eavesdropping...