If there is an interest and clear intention of moving the Linux(/FOSS) 'mainstream', IMHO the first thing that has to be overcome is the understanding of what being mainstream means and what values are there to the general Linux movement and its community. Otherwise, the constant elitist attitude will continue to be a big stumbling block in moving forward, especially in identifying good concepts to follow or emulate. (no, I don't think it's in anyone's best interest to convert every computer users to emacs nor vi(m)).