Over the last few years I’ve spent a little time here and there using languages outside of my main work language, which is C#. I’ve always thought that was important, if only to get a better understanding of the features of your core skill language.
Microsoft is clearly learning some of the best lessons from the wave of dynamic languages which is taking over the mainstream, and the latest versions of the Visual Studio development tools are only getting better. They even offer great Python and Git integration in Visual Studio now.
But there’s still a lot to gain from going outside Microsoft, even if you are a corporate Windows developer such as me.
For one, there is a whole wave of companies and programmer jobs out there which depend heavily on non-Microsoft languages and technologies. Many of these are startups, true – but many of them are also the old-school companies whose scale of server deployment and development simply requires the flexibility and productivity gains to be had from using languages like Python, server infrastructures like Amazon EC2, and all the other stuff that comes along with large-scale web application deployment and, generally, the Mac / Linux ecosystem.
Although there’s always going to be a huge amount of work for a straight-up Windows programmer who works in New York City, it’s seeming increasingly risky to make that my bet for the future – especially since I envision a future where I won’t necessarily be tied to New York City, or to any particular geographic area.
So I’m back to Python. Working with the tools, writing some little apps as practice, getting my feet a little wetter in the server deployment options (e.g., Google’s App Engine) and generally working to get to the point where I can say – “Yeah, I’m a Python developer, too.”