Recently I have found myself having an incredible amount of things to do. This might have also been somehow noticeable in my blog here. But despite having my head torn around in different directions, there is one consistent thing that I've been wondering that keeps me going when I move from place to place, from meeting to meeting, from convention to convention: How is it that the software development industry is so very deeply committed to the concept of virtual machines, interpretation and/or JIT, and automated memory management through garbage collection?
This morning I finally read through an article that was shared to me that really puts it all into perspective in a very good, well researched manner. It is the kind of article I could have wished to write, but luckily I didn't need to, since someone else did it already.
I note that there seems to be SOME level of understanding of this that is starting to emerge in the industry: Like with the Ahead-of-Time compilation approach of the new Android platform, I can see that Google is also starting to understand and accept some of this. Although the garbage collection is still there even in Android L, continuing to hamper the performance of Android applications, they were able to take a step away from the JIT approach. Don't be surprised to see new memory management strategy initiatives emerging from Google as well in the coming future.
The same stuff is being seen in the wider development tools and platforms industry, where we have countless tools that are built around different virtual machines (Xamarin, Unity, Appcelerator, etc., etc.), where the industry already more or less knows that the architectural approach in these platforms produces applications of substandard quality. Over time, this will all go away. Virtual machines, interpreters and garbage collectors have lost the race. Source code translation will prevail.