Ogni linguaggio ha un campo ottimale nel quale riesce ad esprimenre il massimo delle funzionalità e della completezza. PHP non fa differenza, basti guardare il successo avuto nello sviluppo web e lo scarso seguito dell'estensione PHP-GTK. E questo non è un caso: lo stesso Python, che ritengo uno dei migliori linguaggi in circolazione per la risoluzione della maggior parte dei problemi, risulta poco utilizzato sul web.
Se continuiamo con l'analisi ci accorgiamo però che questa situazione è tipica della maggior parte dei linguaggi opensource, mentre diverso comportamento è affiancato ai linguaggi proprietari. Basti pensare a Java o C# che, supportati da due aziende di importanza elevata, riescono ad adattarsi alle situazioni più differenti.
In un panorama come quello odierno risulta fondamentale capire l'importanza della cooperazione tra linguaggi e sistemi: qualunque siano le potenzialità di un linguaggio e per quanto grandi siano i campi in cui è possibile sfruttarlo, risulterà spesso necessario affiancare routine con compiti specifici sviluppate in linguaggi alternativi a quello scelto inizialmente. Sviluppare uno script di routine da affiancare al nostro sito PHP e da eseguire periodicamente con crontab, risulta spesso più semplice da sviluppare in Python o Perl piuttosto che utilizzando il nostro amato linguaggio usato principalmente per lo sviluppo web. Senza contare il fatto che ormai la cooperazione tra sistema ha assunto un ruolo fondamentale grazie all'utilizzo dei webservice e all'evoluzione legata alle chiamate remote. Cose che fino a poco tempo fa erano impensabili, ora sono del tutto plausibili se non impossibili da obiettare.
Sinceramente non mi sono quasi mai capitate occasioni nelle quali diversi problemi non potessero essere gestiti da linguaggi diversi. E questa è una situazione molto importante da comprendere, dato che ora come ora risulta fondamentale capire che un programmattore non può più considerarsi completo se conosce un solo linguaggio o, peggio ancora, se sa applicarlo solamente ad una cerchia ristretta di soluzioni situazione.