I might not use the correct term for public software, maybe somebody already coined a proper term for it. Just want to differentiate between two major types of software, the public software which is highly visible for the audience, and the back-end software, invisible, used to build infrastructures and platforms on which (not just) public software runs.
Good examples of public software are Flickr for photo sharing, Google for searching, Wikipedia, last.fm for music, Twitter, Basecamp, Shopify, etc etc. Maybe we can talk about web 2.0 and web 2.0+ software here.
Backends would be like the Linux operating system, the Ruby on Rails platform, database engines, tools for publishing on mobile phones.
Hackers and Painters, Y Combinators and Freelancers
Hackers create awesome APIs and frameworks, Painters create trends and success stories. Y Combinators are living on the trends, Freelancers mix them together on their Macbooks and share to the masses and media.
Hackers have the goodwill, Painters have the taste, Y Combinators are cool and Freelancers are the local heroes, the geek in the house.
All these people have in common the music.
Future companies — the small shops, ecosystems — will be built on these four new lifeforms replacing enterprises, venture capitalists, advertisers and distributors.
Academy will still foster the technical innovation but innovators will be no longer incubated, they will become early an independent lifeform.
Aesthetics of speed
Open systems and societies tend to evolve faster than closed ones, at the speed of the music. The New Four are very close to each other and they share everything to shape their universe to unmatched evolvability.
Since the public is key in this context the usability of their products will measure alone their fitness.
We are living in a world where immediate solutions can be given and aesthetics becomes finally a key to differentiate.
The Application Designer
Public software development in the near future will be driven either by small shops driven by hackers, painters and y-combinators or freelancers capable to visually design usable application interfaces & hack together the back-end for the application on frameworks like Django, Ruby on Rails or Zend.