Based on the .NET Framework 4.0 we will see new and exciting features. The theme for future C# versions is to incorporate more features based on the industry trends:
- Dynamic Language Support: In the industry see more and more use of dynamic languages such as Ruby and Python by the developer community. I still believe that static typing provides a very important safety net, but on the other hand some tasks are just done much more efficiently done in dynamic languages. Therefore I am very excited about the fact that C# will incorporate dynamic language features in its next version. C# will provide a dynamic keyword which will mark a property or variable as dynamic at compile time. Nevertheless, at runtime the corresponding static type will be assigned to that entity, see the example code below.
- Declarative Programming: In many ways we over specify our programs by using imperative programming techniques. This not only makes it tedious to program software but also makes it hard for the compiler to catch the intentions of the program in order for it to do optimizations (such as parallel execution). With LinQ and functional programming elements included in the C# language it is possible to declaratively specify the intention of the code which allow the compiler to optimize more intelligently.
- Concurrent Systems: With the saturation in clock speed improvements of processors and the trend to processors with multiple (many) cores, the paradigm in software development will have to shift from single threaded systems to systems that leverage the power of the hardware provided. In the next version of the .NET Framework and Visual Studio writing such programs should become much easier through:
- Parallel Extensions for .NET (Parallel LINQ, Task Parallel Library, and Coordination Data Structures)
- Parallel Pattern Library
- Concurrency Runtime
- Tooling for Debugging and Profiling
Furthermore the upcoming system of C# will allow for Improved COM compatibility through the optional and named parameters features. The results of these improvements can be seen in the example below.
So there are a lot of reasons to take a look at .NET 4.0 to get ready for and leverage the new features provided for your development…….
These are exciting times and programming languages today are not adhering to one paradigm, such as functional or object oriented programming, anymore but the new paradigm is multi-paradigm.