-- From a group member for our group paper on the history of programming languages------------
Since 2001, there have been a few languages used more than others in programming. The top ten most popular languages expected to be used are: C++, Windows NT4, Oracle, JAVA, HTML, ASP, Visual Basic 6, DB2, Cobol, and ANSI-C. All the languages are different and very easily confused. Each language has its own code that creates different things.
Looking at the top ten list, makes people wonder what the nature and future of coding will look and be like. People wonder if there will be any additional languages or how the current languages will be used.
For people who are not familiar with computer programming, they have no understanding of any programming language. For instance, in java, different characters are held in memory locations such as: String, int, short, long, float, double, Boolean, and more.
Modern tools and compiler tricks mean that higher level abstractions can actually provide better performance. For example it is said that optimizing compilers are capable of producing faster assembly language than even good coders. Similarly, JIT compilers, like the one in the Common Language Runtime of the .NET framework, are purportedly pushing for "better than C" performance. So the trend is inexorably towards higher level languages and tools.
The programming environment is also changing. The two major changes I see are
Distributed processing where the platform a program may be running on is no longer a single machine or processor
Virtual environments where a program is an object in a 3D virtual world
The first of these problems is a concurrency issue. Languages address this with models like threading, inter-process communication, remote object invocation libraries and the like. Some languages build concurrency support into the core language, Erlang being the obvious example. It's not yet clear that programming languages are going to need to change fundamentally to handle distributed processing. It looks like languages can evolve (and add-on libraries be created) to facilitate what is a new programming paradigm within existing languages.
In fact there is a good reason not to abstract away concurrency issues altogether. Local resources (memory and objects etc) are generally fast to access. Remote resources are typically hundreds of times slower (currently), and may not be available at all if a network path fails. A programmer should treat local and remote resources differently. An abstraction that allows us to handle them using the same techniques is fine, one which prevents us from knowing how our resources are allocated or created isn't.
Irrespective of this, Python (and other languages like Java or .NET languages), are defined in terms of syntax and semantics. They are run by virtual machines created for the platforms they run on. The implementation of the language could change dramatically without automatically requiring the language to change.