Nell'università uno dei docenti stava insistendo su un consiglio che ho trovato strano.
Questo docente ha insistito sul fatto che ai suoi studenti non importa troppo di decisioni come la scelta del linguaggio di programmazione, la piattaforma di destinazione o altre scelte progettuali che non sono strettamente necessarie per realizzare un prototipo funzionante. Quando le persone protestavano perché creare qualcosa che si sa essere rotto è una perdita di tempo e uno spreco di lavoro, il docente sostenne che:
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 particolare, questo significa che non dovremmo preoccuparci troppo della qualità del codice del prototipo e scriverlo in Python se ci piace Python anche se sappiamo che Python non è disponibile per la nostra piattaforma di destinazione.
(Ho cercato di riassumere le opinioni del relatore sopra, sperando di comprenderle bene e di non averle travisate in modo errato).
Questo è un esatto opposto delle solite raccomandazioni per porre sempre la massima cura per la qualità del proprio codice e anche per un opposto diretto di questo saggio popolare . Cosa si può dire di questo consiglio?