Recently Flickr increased their feature set to include uploading and storing of video content. This upgrade in feature set has left some Flickrs quite angry. (Additional article providing some insight to this here.)
One argument presented by Flickr users is that currently, Flickr is a photography sight dedicated to photography and photographers.
"We the undersigned members of Flickr, free and pro, agree that video has no place on Flickr. Other sites on the web accept video already, but do not accept photos. We all joined Flickr because of it's dedication to photography and photographers, and we want Flickr to remain true to this dedication. It is our request that this feature and addition to Flickr be removed."
As such, expanding it takes away from the experience and the community. Whether I agree with that or not, it has been my experience that adding features sometimes dilutes your product leaving it less focused at accomplishing the tasks that may have made it very popular. Whether or not this will happen with Flickr remains to be seen as on the other hand, sometimes additional features are what you need to stay on top.
Twitter seems to be facing a similar dilemma. As it currently stands, Twitter is a very focused application with the aim of delivering very short (140 characters) text based messages for users to users. There have been
requests to expand their feature set to include
payloads. As of yet, this request hasn't been granted. However, other services such as
Pownce have filled this niche. I have memberships at both. I use twitter much more often than Pownce. I'm not sure if it is the simplicity of Twitter that attracts me, or the user base. Either way, it will be worth tracking.
To me,
Google App Engine is also occupying the space of limited feature set, they offer web application hosting. Amazon
EC2 seems to be at the opposite end of the spectrum, they offer complete virtual computing. Due to these differences in scope, I do not feel that they are competing products. App Engine's goal is to provide a place to deploy your web app making it highly available. It will only host your web app. You can't currently store files although you do have data storage with
Bigtable. I don't believe this will change. EC2's goals seems to be to provide a service to be able to scale your servers. Both are very simple feature sets although they may seem difficult at times. EC2 is virtual servers. Set them up as you may wish. App Engine is to provide a space for your application to run. I think each would struggle if they tried to accomplish both goals.
My personal opinion is that if you offer an application, decide what it should do and have it do it well. I am wary of expanding applications to handle increasing bigger feature sets. It makes them bloated and if you aren't careful they also become very difficult to use. I have written applications that have this problem. I try to avoid it but sometimes it is difficult to determine when a request will make the overall user experience more enjoyable, or open the road to increasing complexity and problems.