The principal design goal when it comes to the choice of programming environment has been: a maximum of functionality with a minimum of effort. Here, functionality means different things:
Availability of useful libraries and functionality.
Portability to different platforms.
Availability for ordinary users.
Possibility of implementing content activation for a maximum of content formats.
Prototypability, i.e., the ability to quickly try out ideas. This demands a low level of implementation overhead and nonfundamental details, and enables us to focuse the design on the structure rather that on the implementation.
Extensibility and flexibility, to be able to maintain a certain structure in the code in spite of large rewrites.
One must, however, have in mind that the choice of environment must not influence the design in a way that would cause troubles that day when we decide to change the environment.
| [1] | Donald E. Knuth: "Premature optimization is the root of all evil." |