Wednesday, September 06, 2006

I want Multi-language projects in Visual Studio

I want multi-language projects in Visual Studio and Here's why...

(NB: this post made from a VS 2003/Framewoirk v1.1 point of view)

VB.Net doesn't cut it ..... but then again neither does C#.

The truth is that both languages compete with each other.
I know Microsoft would have us believe that all languages are equal in the eyes of the framework and to some extent, this is true.

But how eay is it to create an application using both C# and VB.Net?

For example one of the nicer features of C# is operator overloading which vb simply does not have. (not in v1.1 anyway)

Likewise there are things which C# does not have. Like a background compiler.

A reasonable ( but by no means comprehensive list of differences exist here :http://www.advisor.com/Articles.nsf/aid/SHERP42

Anyway the point is this...

The languages are different but each have advantages over the other. Now we find that we have J# F# CAML Python Ruby (I have not looked at any of these directly but at least some of them compile to IL)

So why am I forced to pick a language for a project. I have often found myself wishing that I had operator overloading in VB.net but I shudder when I think of moving permanently to c# as I think of all the things that I might loose.

Now i appreciate that VB.Net 2.0 has operator overloading and further introduces the MY namespace (a seperate debate of it's own) but the truth is that these languages will always have things that the other doesn't.

and yet I still need to create a new project in studio, reference the project or the created dll from wherever it needs to be found from, and ensure that these references are maintained for the life of the project. further there are known to be issues in studio where Project A(VB.net) references Project B(c#) references Project C(VB.Net) again.

And so I ask.....

Why can't I have a Multi Language project where language is specified on a per file basis (probably by looking at the extension). The project properties could have a c# page, a vb.net page. in fact one page for any language that whose files might be included.

We used to be able to compile object files from different languages and then link them together to form cohesive dlls and exes.

Give me back my linking :) Automated of course :)

Ok over to everyone else. Just why is this a bad idea? :P


No comments: