The GNU Manifesto suggests that the needs that (will) arise with free software development, such as support and advertisement, can be met by entrepreneurial programmers. This exemplifies the extent to which the community is the foundation for software. However, it is evident that it is programmers, coding essentially for no pay, that account for the development of the software; thus the community is primarily, if not totally, comprised of programmers.
One question I have about this model is the distinction between users and programmers. Part of this can be answered by saying that the user is the programmer, and vice versa. Thus, the use of the software facilitates its continuous improvement and expansion. However, the skill of programmers is not possessed by a large market of the population. Wikipedia works because writing English is easier than writing code for the vast majority of us. Can users then be required to be a programmer? For the software to become prevalent and benefit the public, the answer must be no.
Then, where is (or is there) a transition from the software being meant to be used by programmers to be used by the general public? The quality of user interface is crucial to this question. And I think this poses a major problem for the free software movement. If the software is primarily being used and developed by programmers, it is very unlikely to be packaged neatly and tidily like so many of the popular Apple programs. I think a mechanism for developing user-interface in addition to content is necessary for free software to compete with privately developed software in the general public. Furthermore, in the present market, if good ideas are developed in free software, the ideas can be taken and used by private software developers. Thus, a distinct advantage of free software is taken away. This leaves the main question being the public's willingness to pay extra to have the software have a simple and friendly user-interface and as well as hold-your-hand support. Looking at Apple as a case example, I would say the free software movement is fighting an uphill battle.