Not all MSc students know C++, so to learn PDE/FDM Python is fine. For production, C++ is the only choice.
The two sweeps of the ADE scheme are:
for i in range(1, len(self.u) - 1):
x = self.u[i - 1]
y = self.uold[i]
z = self.uold[i + 1]
self.u[i] = (self.up1[i][I](z - x) + self.up2[/I] y + self.up3[i]*(x - y + z)) / self.up4[i]
for i in reversed(range(1, len(self.v) - 1)):
y = self.vold[i]
x = self.vold[i - 1]
z = self.v[i + 1]
self.v[i] = (self.down1[i] * (z - x) + self.down2[I]y + self.down3[i][/I](z - y + x)) / self.down4[i]
If history is anything to go on, at some stage we will encounter the same software maintenance problems with ML applications as with 99.99% of legacy code. The root cause is not the choice of language but the fact that these applications are created by non-programmers who are in all probability not familiar with software design (making blueprints before you jump into code). It is an accident waiting to happen..
Don't take my word for it; hear what Google has to say.
Good, forthright interview! Anyone who has read Brooks' "Mythical Man Month" will know that one of the biggest challenges in software projects is maintainability and eventually products become a big ball of mud. This is an ubiquitous problem since many years and it is caused by well-known problems such as bottom-up work practices, programming from the start blocks (no design) and not defining component interfaces up-front. It is one of the unfortunate OOP legacies. This issue is acknowledged and discussed following @41.30
Download this stock image: APPLES & ORANGES MARKET FRUIT STALL SEVASTOPOL CRIMEA UKRAINE 28 September 2011 - C92N2X from Alamy's library of millions of high resolution stock photos, illustrations and vectors.