Q:

What role did hardware improvements have in the development of modern languages (eg Python / Java)?

I'd like to ask about the history of programming languages - specifically, the role of hardware in language development over the past 20-30 years.
I have been reading about the history of Python, and the ABC project. It seems to me that there were lots of lessons learned about language structure, abstraction to a more natural ('expressive') syntax, extensibility etc.
I'd like to know what role hardware had to play in the development of modern languages. For example, did more RAM mean that languages could be less efficient with memory allocation, but become more convenient to the user? Did faster processors mean that prohibitively expensive operations could move into the mainstream?

A:

No, the available hardware resources do not seem to have a significant impact on programming language design.

Garbage collection was not an innovation by 90's languages. Instead, it was available since the late 50s, one of the many concepts invented for Lisp. Since then, GC has become to be expected in very high level programming languages. C++ is the exception to the rule, since it intends to be usable as a system programming language like C.
Interpreters and virtual machines are similarly old: Lisp introduced interpretation in the late 50s, and UCSD Pascal (late 70s) used a bytecode interpreter runtime that in some respects looks eerily similar to Java. Many early home computers like the Commodore 64 offered a BASIC interpreter as primary interface. However, the reduced performance of interpreters was far more noticeable back them, restricting “serious” development in interpreted systems mostly to academic users, or users with powerful workstations.
Human-friendly syntax design isn't new either. Being able to write code for mathematical expressions in a way that looks like maths was the major innovation of Fortran (late 50s). COBOL (also late 50s) is very verbose and tries to read like plain English. This was also a goal of the SQL syntax (70s). ABC and Python are not unusual, especially as they are part of the ALGOL–Pascal language family that relies heavily on keywords. Their syntactic innovation is marrying the off-side rule (i.e. indentation-delimited blocks) with ALGOL-like syntax.

There are some minor aspects where the hardware imposed constraints that are less relevant today, or opened new opportunities:

C and C++ are designed in a manner that supports single-pass compilation, which reduces the amount of memory by the compiler. You therefore have to pre-declare all functions that you use in a C or C++ program. However, modern machines have much more memory, and no mainstream compiler does single-pass compilation.
Better computational resources mean that compilers are able to perform much more complex optimizations and analyses. Some languages like Scala would be unfeasible without this kind of processing power.
As computers became more affordable, the barrier of entry to get started with programming has been greatly reduced. Scripting languages in particular do not require to compile your program first, and allow easier tinkering. This seems to be connected with the explosion of the internet in the 90s: Perl was exceedingly popular for CGI scripts, but was largely replaced by PHP since it was much easier to add a bit of code to an HTML page. Nowadays, everyone has a JavaScript IDE built in to their browser.

