Why is there not just one programming language?
A programming language is the methodology to instruct the computer to perform a given task. However, unlike the normal human language, the programming language requires precision and completeness. Humans can be vague and ambiguous in their expression, still people understand the meaning of communication, but it is not like that with programming language, which needs proper syntax and defined structure.
Any computer system understands only a machine language/code program. This machine language was called first generation language. To simplify the programming the second generation language knows as assembly language evolved. The assembler programs were used to convert assembly language to machine code understood by the processor. These were specific to computer/processor. In order to make programming processor independent, the 3rd generation languages like COBOL, FORTAN, LISP etc. were developed. These allowed the programs to be written in the easy to understand language & were then converted to machine language using the program called compiler, which was specific to a given processor. Each of the language targeted specific needs e.g FORTAN was developed to write scientific programs whereas COBOL was written for commercial data processing applications like payroll etc.
As the computing power increased the ways of using it also became more demanding and the size of programs increased. This lead to development of programming languages suiting to specific needs. The structured programming languages were developed to make programming more efficient and easier to understand and modify. This allowed programmer to use already written modules available in library to be utilized while writing new programs, leading to less development time. To make programming more human friendly the concept of Object oriented programming, where objects once developed can be moved inside the space to create programs evolved.
With the popularity of Internet need for another programs arose which can be executed on fly & this led to development of Java.
While developing a programming language the programmers had specific task in mind & accordingly the language was developed to meet those requirements. A very controversial linguistics theory, known as the Sapir-Whorf Hypothesis, states that the structure of language defines the boundaries of thought. This is true for programming languages as well, as the programming language reflects the thoughts, innovation and imagination of the developer of the language. Programming languages incorporate several important ideas and technologies. The goal is to abstract operations into a form that's more like the way people think, which can make programming easier.
Just as, no single tool in a tool box can not perform all function or a single medicine can not cure all diseases, a single programming language can not be used to perform all functions efficiently & require different type of language for different environment. The evolution of new processing power will require innovative programming to utilize it to fullest extent leading to development of new technologies in the field of programming.