The Swiss Army Application

Many blog entries have pointed me at Ten Must-Have Tools Every Developer Should Download Now, so I eventually got around to clicking.  Interesting, but possibly unsurprising, that the MSDN definition of “developer” is “C# .NET developer”[1], as though there were only the one sort of programmer.  However… moving along… I see that it includes:

  • “Snippet Compiler to compile small bits of code”.  What, you mean like the interactive window in PythonWin?  Or the compile() builtin?  Or the Python interpreter in interactive mode?  Or python -c, perhaps?
  • “Regulator to build regular expressions”.  I guess an interactive window and re.compile() would do much the same thing; certainly that’s how I tend to interactively build up regexps, running them over a list of candidate strings to check for matches.
  • “.NET Reflector to examine assemblies”.  This looks quite useful, though I would score Python’s built-in introspection capabilities very highly.  Yesterday I was trying to discover the capabilities of a COM object (that drove a camera) and I longed for the simple power of dir() and __doc__.  And because one tends to get the source of any Python modules one imports, there’s always that ability to go directly there for the definitive answers.

Some of the other tools look interesting, though scarcely packed with amazing novelty.  It’s not a bad checklist of the sort of tools that a developer would find of use, rather than the sole definitive “must-have” collection.  Makes me ponder about knocking up a Python list; I’m sure there’s a few equivalents of NUnit out there already.

[1] I’m being unfair for effect… they include Visual Basic .NET as well.

2 thoughts on “The Swiss Army Application

  1. Yes, they are talking about .NET developers and managed code. Most people that read MSDN magazine take that for granted. Also, be careful with what you say about Reflector. I handed a library to a co-worker and was waiting for him to come back and ask for the source. He never came so I started wondering. I finally just sent him the code and he responded “Why would I want to look at those ASCII files? I have the DLL and Reflector”. Now that I used Reflector a bit I’m starting to realize that it is so much more useful to have this search window, callee graphs and hyperlinks.

    • I appreciated that they were talking about .NET developers, I was just having a bit of fun at their expense πŸ™‚ MSDN is, in my humble opinion, amongst the best (if not *the* best) developer resource online – an example of how it should be done, and kudos to MS for that.

      I’d still contend that a certain amount of tunnel vision is a symptom of most Microsoft shops (and the Beast itself). I find more open-source developers who’ll consider an MS option where it fits best than vice versa, as long as one stays clear of zealots from either side of the fence. Looking at lots of different environments and using lots of different tools is, I think, one of the best ways to open one’s mind to new ways to address problems.

      I agree that any amount of reflection is an excellent thing to have; working in Python I don’t often end up looking at the source code – I have an interactive interpreter to explore and the language’s built-in introspection capabilities so I don’t *need* to. Being a Python fan, my point was, more or less, that a need for an external Reflector tool is a sign of a deficiency in a language and/or environment. But then I don’t pretend to be unbiased πŸ™‚


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s