Code doesnt want only to be open, it wants to be modular.
Open Source Movement is missing better tools to allow code reuse. We have been mostly trying to copy what's out there in closed source. In the closed source environment, core reuse is a secondary problem, while it's crucial when you have open source.
Right now languages seems to be heading towards problem area specialization (perl, php, prolog...). That's one way to quickly advance into the given area, still wouldnt be better if all area specific languages were just local dialects of a mother language?
Some interoperation between languages is going on between php/java, this has also existed with c/with almost anything. This seems a trend to divide work between languages, so you can use the best tool for each particular job.
I think this is the future of programming. The usual saying 'Use the best tool for each job' will meant more than it did before. Where we will have problems segments being solved by different languages.
Now that comes the part about code being modular: if the particular problem local language is 'simple' enough so that its programs can be trivially be evaluated to equivalence classes then this 'i think my way is best' attitude will be overthrown. The problem is constructing such languages/a mother tongue compiler...