Tuesday, April 20, 2010

Major Themes emerging from the VS 2010 Launch

Amidst the bevy of new features, a few major themes emerge in the release. C# and VB.NET changes are primarily designed to add features that already existed in its sibling language. Dynamic support has been added to C# and VB.NET and a production release of the DLR with IronPython and IronRuby has come as well. VS 2010’s much talked about conversion to being a WPF application shows that Microsoft is preparing WPF to be the primary desktop software. Finally, software parallelism is featured in numerous areas, notably the available of F# as a fully supported functional programming language.



Microsoft has had numerous teams and research projects focus on parallelism related technologies. Including F# “in the box” with VS 2010 provides a functional language within the family of .NET framework languages. Functional languages are considered well suited for splitting logic across multiple CPUs. Having fewer or no side effects, as functional languages are oriented around, allows program instructions to be more easily scheduled across CPUs. For multi-threaded processing, Microsoft has provided a new library called tasks. Tasks offer a simplified approach to using thread pools that also allowing greater control over such things as aborting a task.
WPF and its sibling Silverlight appear to be the focus in rich UI technologies, finally pushing WinForms aside. There is little new on the WinForms front. WPF is plugging availability holes (relative to WinForms) in its array of controls. WPF offers a databound grid for the first time. WPF and Silverlight both benefit from a new, shared XAML designer. Since VS 2010 is built using WPF and the VS and WPF teams collaborated closely, his has meant many WPF performance improvements. I think that this will give Microsoft the courage to finally officially deprecate WinForms with the next major VS release.


Microsoft’s linguistic emphasis in VS 2010 for VB.NET and C# is to make the two languages comparable in features. For C#, this means features that are important in COM interop scenarios and Office-related programming in particular. These features include named parameters, optional parameters, and late binding. For VB.Net, this includes full support for lambdas. This includes multiline lambdas and lambdas that don’t return a value.


Dynamic language features have finally made it as a fully supported part of .NET. The Dynamic Language Runtime (DLR) is a layer that exists on top of the CLR. Both VB.NET and C# allow ways to specify the use of dynamic typing. The .NET based dynamic languages IronRuby and IronPython are now available, although not directly provided by Visual Studio (separate downloads are available). Interop between Ruby or Python and VB.NET or C# is available plus VB.NET and C# can host a Python or Ruby scripting engine.

No comments:

Post a Comment