Would I recommend .NET?
May 27th, 2004Yesterday I visited a research organization to evaluate the technical merits of their software development efforts. They do scientific research and work with piles of data which needs to be analyzed and cross-referenced. It is a daunting and very important job. I found the environment to be very intriguing. The staff was hired based on their educational background in the research they do, but they just so happen to write software to do their work. And there is no single platform or programming language to provide a path for everyone to follow...
What I did find was many flavors of Unix as well as Windows machines running software written in Perl, C, Java, VB and C#. Each researcher simply chose the language they preferred and used that to write software to do their work. Perl is a logical choice since much of their work is spent munging text files, but the fact that they use this wide selection of languages in the same office space was impressive but also disturbing at the same time.
When I discussed it with another consultant we agreed that it would be best if they had a strategy for their platforms and programming languages which would allow them to collaborate from a software development perspective. But it is clear their research is the work that keeps them going. Writing software is just something they do not want to think about. These people are very smart and picking up a little Perl syntax to create a script to process data is rather trivial to them. So why would they do things differently.
I mentioned the odd working environment to a friend and he thought they could easily pull all that data into an Excel spreadsheet and create the reports they wanted. That may be true in some cases, but overly simple for most of their needs I am sure.
When it came down to thinking of a single platform which these developers could migrate to I started to think that .NET would be an ideal target platform. Sure they rely on Unix and Windows systems, but they also use a good number of languages. These researchers could learn a .NET compatible version of their favorite languages and migrate their software over time. As for the Unix environments, they could easily use Mono as it will be released as final this summer. They could use the Visual Studio IDE to develop their software and deploy it to .NET or Mono on many platforms. It seems like an ideal solution.
So why am I resistant to the idea?
