the Case of the Annoying J# Redistributable
Ever since I started using VS 2003, one thing that always ticked me off was why the J# redistributable was a pre-requisite for installing VS. If I don't want to use J# in any shape or form and there clearly isn't a dependency on it in the IDE then there's no need to install useless bits on my machine.
Today I was installing VS 2005 again and realized that the problem still hasn't gone away. I can still see a 114 MB J# Redistributable Package in Vista's Programs and Features list.
Doing some research I came across Aaron Stebner's blog who was once in the VS setup and deployment team and he's answered this complaint in quite an amount of detail. It also gives an insight into Microsoft's mentality of using customers as beta testers, making rushed releases and then fixing bugs over time with Service Packs and Hotfixes, but I'll leave this discussion for another time.
The explanation given is :
We considered putting the J# redist
functionality into the .NET Framework 1.1, but rejected that for
several reasons. Then we considered including it in the main VS setup
tree, but also rejected that because it is needed at runtime in
addition to design time and we couldn't tell people to install a part
of VS on their clients' machines in order to enable J# applications to
work correctly. We also tried to propose that the J# redist
installation package be installed if the user chooses the J#
programming language in the VS tree, and then the IDE could install it
on demand or provide UI to guide the user to install it themselves if
they really needed it. This presented usability issues, caused an
additional barrier to entry for J#, and also caused problems with
administrative deployment scenarios where the end user was not an
administrator when they were using the IDE and could therefore not
install products themselves.
Source
First of all, who uses J# anyway. It was a failed (and lame) attempt at hijacking Java. I forgive them for trying to push the J# bits through VS 2003, but after its spectacular failure in years afterwards, they should've just accepted their mistake and once and for all gotten rid of it.
And then along came VS 2005, totally redesigned from the ground up, tons of new tech, holding so much promise, but it turns out they STILL haven't removed the darn annoyance. So what explanation do they have to give this time ?
" .... you can see that if the J# or Visual
Web Developer language tools features are selected during setup, the J#
redistributable will also be installed for you as a chained component.
The next question that has come up is
one that I haven't addressed in that previous blog post - why does
Visual Web Developer require the J# redistributable? At a high level,
the answer is that you are able to develop web applications in any
number of programming languages, including J#, so therefore the J#
redistributable is installed in case you decide to develop your web
applications in J#.
That answer leads to one additional
question - why can't you just install Visual Web Developer C#
support or something like that if you know ahead of time that you are
not planning to develop web applications in J#. If you look at the
feature tree for VS 2005 setup, you will see a single item under
Language Tools named Visual Web Developer. However, this feature is
not sub-divided any further, so it is not currently possible to install
only the pieces required to install Visual Web Developer C# support,
Visual Web Developer VB support, Visual Web Developer J# support,
etc. We determined while developing VS 2005 that it would be very
time-intensive and error-prone to try to sub-divide the Visual Web
Developer features on a language-by-language basis, and that it would
only have questionable benefit to the end user. Therefore, we had to
make a trade-off and the decision was made to live with the side effect
of installing the J# redistributable package if the user chooses to
install Visual Web Developer during VS 2005 setup (even if the user
does not choose to install the J# language tools)"
Source
In other words, we were too lazy or incompetent to properly partition functionality for multiple languages so we decided the users wouldn't mind if we installed useless crap on their machines.
You know, you wouldn't be in this mess in the first place if you quit flogging the dead horse that is J#, concentrate on C#, VB.NET and other potential first class citizens of the .NET framework (like IronPython).
But all is not lost, it seems they've finally come to their senses and J# won't be included in the amazing goodness that is to be VS 2008. I say good riddance. Nobody likes you J#, so please stop bothering us all and GO AWAY !