Wednesday, December 19

A New Language for a New Year

I've been a Microsoftie for years.

I don't worship at the altar of Microsoft, but as a pragmatic programmer and entrepreneur, I've utilized the tools most accessible to me to advance my art and my career.

I've run Linux -- RedHat 6, 7 servers, VectorLinux as a firewall/router box, Ubuntu on a desktop, Xandros on my Eee PC. I wrote multi-threaded networked Java applications (albeit fairly simple ones) before I ever wrote a line of C#.

All that said, I'm a Microsoftie. I run Vista x64 on my notebook, XP x32 dual booting with that Ubuntu desktop, 2003 x64 as my fileserver. I work as a .NET engineer for a fairly large corporation that is transitioning from a mainframe architecture to a mostly .NET, WinForm and web apps supported by a service oriented architecture. I also work for a startup that is centered around an ASP.NET website and a webservice API. I write C# day in and day out.

There's nothing wrong with C#. It certainly pays my bills, and the technology moves fast enough to keep me somewhat entertained. (Wish I had more opportunities to work on mobile devices; I'd really like to nail an MVP, after my unrequited nomination earlier this year.) My perspective, however, has become somewhat hampered by tunnel vision.

So one of my resolutions for 2008: learn a new non-Microsoft language. Maybe more than one. The candidates are Python (which of course has IronPython crossover), Ruby (also with .NET crossover), Erlang (which has some support for being compiled for .NET) or Haskell (which also has a .NET complement I believe).

I'm thinking Haskell ... coming from a web and BASIC background, I need something concurrency-oriented to really smoke my noggin.

Input appreciated.

Edit: and while I'm at it, I need to learn a foreign language. Thinking Chinese. China is certainly a large and growing influence in the world. I have two co-workers who immigrated from China in the past decade. My dad does a lot of business in China.

Chinese it is.


Tracy Lee said...

Good Luck to you Andrew. Learning new languages can be frustratingly fun, but always fun once you get it. Sounds like you have a great goal.

Andrew Badera said...

So since this post, I've installed Eclipse on my Ubuntu desktop and XP desktop, PyDev, Erlide and Scala plugins for both. I'm also working on building a few components, or at least re-usable chunks of code, in Perl and Ruby and PHP for some work I'm doing for Change Round-Up. So far, off to a good start!