Software, Technology

Sometimes it makes me feel dirty…

November 13th, 2006 by Jeff | 1 Core Dump

Been meaning to blog about this for a while, but I just haven’t gotten around to it. I mentioned my new job a while back and gave you updates about the resulting move throughout that process, but I never really mentioned much about the job itself.

I work (as a contractor) for a company called ManTech. I’m currently working on a number of projects, all of which either directly interface with or are satellites of our main project, which consists of computer based training for the Navy Reserve. We’ve used a standard called SCORM to develop a Web-based learning management system. We then take a series of computerized training courses–some developed by a partner company and converted by us to a Web format, and some developed in-house–and provide the necessary back-end to maintain the learner’s training history and progress. My first project was actually to build a content management system to manage photographs and other content that support our artists while they generate graphics for these lessons. I’ve now moved more deeply into some of the other projects directly interfacing with the LMS, and I’ve been tapped to become our resident expert on CORDRA.

The real meat of where I’m going with this, however, is that I’ve had to learn a whole new programming language. I’ve worked with a number of languages over the years, most notably Perl, Java, and SQL. The complete list is actually quite lengthy, but many languages I “know” (like C/C++) I haven’t touched since college or I’ve taught myself to use for my personal amusement and have little to no professional experience with. Perl fit into the latter category until my last contract assignment; technically, so does Java, as I’ve mostly used it for personal projects. (I did do some Java work on the early GPF site though, but mostly behind the scenes.) Unfortunately, a good chunk of my professional work since college was tied up in report writing using technologies such as BusinessObjects and FOCUS, a realm of the IT industry I’m thankfully starting to escape from. (I graduated from college expecting to program, not build reports with pre-packaged tools.)

When I applied for this job, I knew they were looking for someone with Java (or some other object-oriented programming) experience. What surprised me was that while they seemed to be looking specifically for someone with a little Java know-how, the real language they were planning to use was C# .NET.

Now anyone who has followed GPF long enough should know by now that I’m not a big fan of Microsoft. Yes, I use their products (one almost has to if they want to function in the computer world), but their history and business practices speak volumes about their corporate ethics. I’ve dabbled a little in Windows programming over the years; I’ve toyed a little with Visual Basic and took a course in Visual C++ back in college but never did much with that beyond a little playing with fractals. In general, though, I prefer to focus on technologies with strong cross-platform capabilities, mostly because I feel that users should not be discriminated against due to their personal choice or corporate mandate of operating system. This, among many other factors, often makes me lean toward open source.

The Reserve, however, like many government and corporate technology departments has mandated a “standard” platform for use within their organization. This platform, as you might guess, is largely based on Microsoft technologies. Thus, almost all of ManTech’s development work (at least on this family of projects) is done in Visual Studio 2005. Many of our projects are Web-based, so we do a lot of ASP .NET work with C# as the chosen language. (.NET uses a common language infrastructure so it doesn’t matter what language you actually use to build your application in. It all compiles to the same bytecode, which the runtime then executes.)

Now I had heard a lot of comparisons between Microsoft’s .NET and Sun‘s Java platform; indeed, a Google search turns up a ton of them (over four million results at this writing). I remember when Microsoft first announced .NET, and recall the buzz that it would destroy Java much like how Internet Explorer decimated Netscape in the browser wars of the 1990s. (Personally, I don’t see that happening, especially since .NET is only available on Windows, but projects like Mono could help bring .NET to other platforms while biting into markets that Java currently has dominion over.) So I was quite curious to see what .NET could do, and whether or not I might find myself on the other side of the fence once this was all over.

Well, I’m not over–or even on–the fence, but I’ve learned to appreciate the various tints of green on either side. My previous experience with Java made jumping into C# and .NET relatively easy, and I found myself writing real, useful code quicker than I expected. There are even some things that are much easier to do in C# that they are in Java, like designing the GUI. (This, though, is more a function of the IDE than the language, and is one place where Microsoft has always shined. Visual Studio can sure make a programmer lazy, which isn’t necessarily a bad thing. Then again, I’m also trying out Eclipse for Java work, so that might swing that factor into balance.)

My experiences with C# these past few months haven’t killed off my interest in Java, but it did prompt me to download Visual C# Express to do some off-the-clock experimentation. It even reinvigorated one of my old side projects; there’s a chance that Mandelbrot Madness! may get a new .NET 2.0 Windows version that is roughly comparable to the much more up-to-date Java version. I’m curious to see where .NET is going to eventually end up. If I can keep up with it, I’ll try and post more thoughts on these technologies when I can.

1 Core Dump

Dump your own core:

You can skip to the end and dump core. Pinging is currently not allowed.

Be nice. Keep it clean. Stay on topic. No spam. Or else.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

You must be logged in to dump core.