In the University one of the lecturers was insisting on a piece of advice I found odd.
This lecturer insisted that his pupils do not care too much about decisions like the choice of the programming language, target platform, or other design choices that are not strictly necessary to make a working prototype. When people were protesting that creating something that is known to be broken is a waste of time and waste of work, the lecturer argued that:
What programmers often do not realize is that code is being constantly rewritten. Look at most successful companies, Google for example, and products, World of Warcraft for example: They don't maintain their code, they rewrite it. I already lost count how many times the engine of WoW was rewritten and replaced by a new version. Rewriting code, even in another programming language and under changed requirements, is not hard once you have a working prototype; what is hard is making this working prototype. You can carefully choose your programming language to meet the requirements of your target platform and to achieve necessary performance; you can worry about the quality of your first iteration of code; then writing your first iteration will be much more difficult and time consuming and after you're finally done you will realize you have to rewrite your beautiful code because your code's quality is nevertheless unsatisfactory as it is impossible to determine how a code should look like without writing it first, not to mention changed requirements. Instead, focus only on making a working prototype, without caring for anything else; then, once you have it, make an informed decision how to fix the code and how to adjust it for your particular requirements and rewrite your code accordingly, this time caring for its quality; then possibly rewrite it once again before releasing it. If your product is successful enough to enter the maintenance phase you will also be periodically rewriting code whenever a need for a relatively major change arises.
In particular, this means that we should not care too much about the quality of the code of the prototype and write it in Python if we like Python even if we know that Python is unavailable for our target platform.
(I tried to summarize the lecturer's opinions above, hoping that I understand them well and that I didn't misrepresent them).
This is a direct opposite of the usual recommendations to always put an utmost care for the quality of one's code and as well as a direct opposite of this popular essay. What can be said about this piece of advise?