Microsoft will converge features of Visual Basic and C# languages with planned upgrades to the two platforms, a Microsoft official said this week.
Visual Basic 10 and C# 4 are both due concurrently with the Visual Studio 2010 IDE, which might ship at the end of the year.
The Visual Basic and C# teams “were merged last year, and it's called the Visual Studio managed languages team,” said Beth Massi, senior program manager at Microsoft, during the VSLive conference in San Francisco. Also under the team's domain are the F# language, for functional programming, and Microsoft's DLR (Dynamic Language Runtime), supporting dynamic languages on the .Net platform.
Visual Basic and C# developers build the same type of applications, such as Web and business applications, and the intention is to co-evolve the languages together, Massi said. .Net has unified how applications are written, she said. “It's much less focused on the language,” Massi said
Visual Basic 10 and C# 4 will gain interoperability with dynamic languages. Programmers, for example, could tap into a JavaScript engine in an ASP.Net application, according to Massi. “In both of the languages, Visual Basic and C# are going to have interop with the DLR,” for interaction with scripting languages such as Python, Massi said. The DLR has not yet been released.
Both Visual Basic 10 and C# 4 also are to get an array literals capability for inferring array types. The two languages also will gain collection initializers for initializing a list or dictionary with data using the new “from” keyword.
Multi-line and statement lambdas, another ease of use feature saving programmers from having to return values, also is due in both language upgrades. Compiling without primary interop assemblies also will be enabled in both.
A generic variance capability will be offered in the languages for widening or narrowing the scope of generic types, such as a list.
Visual Basic 10 also will include auto-implemented properties, an ease of use programming feature already in C# 3. Also, Visual Basic 10 will gain an implicit line continuation capability so developers do not have to write underscores in LINQ (Language Integrated Query).