Concrete Languages and Virtual Platforms

I'm not a C++ guy so my advice on this session it's not very accurate.

The topic covered here is about the evolution of the C++ Language and the integration with the MS Virtual Machine (a.k.a. CLR). Most of the time of the presentation has been spent discussing different approaches to memory management, Destructors, Finalizers and their relationship with Garbage Collectors.

It looks like some people think it's better to work with the memory directly if you need control and performance, some others prefer to let the runtime manage the memory so they can concentrate to give more business value. 

The speaker tries to convice the audience that a solution that takes care of both approaches it's too much better that the sum of both. So if you can get an environment where you can define your own destructors, and finalizers; and there is a runtime that knows how deal with theses from the GC perspective you are in an ideal situation. And this is what C++ offers in the CLR 2.0.

The same applies to generics and templates.

However the thing I liked the most of the talk is their bet to define how will be the predominant programming language in 10 years from now.

Here are the main features that it will have:

  • Garbage Collection
  • Destructors and Finalizers
  • Typed parameters
  • Security & verification
  • Efficience
  • Easy to manage large amounts of data

There is another detail I would like to explore in the near future, the use of a C++ compiler to write C# like code.