Novices (and people looking for an argument) often ask, "What's the best programming language?" The answer depends on what we want to do. If we want to squeeze the last ounce of performance out of our hardware, then compiled languages like C++, C#, and Fortran are still good options, but if we want to write small programs quickly, and be able to manage the complexity of larger ones, then dynamic languages like Python, Ruby, R, and MATLAB optimize development time, which is often the biggest bottleneck for researchers. Learning how to structure a program as reusable pieces, each of which is small enough to fit into a programmer's working memory, is the key to building large programs efficiently.
whileto repeat something until something changes.
forto do something once for each part of a larger whole.
elseto make choices.