Managed World

Techno-babble from yet another babbler RSS 2.0
# Monday, November 05, 2007

Lately, I've been getting a lot more serious about cutting out some time to learn a functional or dynamic language. After watching several Channel 9 videos while traveling today (and listening to several podcasts), I've realized that I've started to grow not only "complacent", but a bit frustrated as well with static languages (currently VB and C#).

It came to mean when I was defining a class. I was working on the properties of that class, of course using encapsulation (read: public properties backed by private fields). Property, after property, after property. Yes, there are some shortcuts by using code snippets. But still, that's a HECK OF A LOT of typing merely for "infrastructure" code. It takes quite a while to get _through_ that infrastructure until I can actually start writing the good stuff.

Now, I realize I could cut those frustrations by just having public fields and the like, but that's not the point. Besides, I think that leads to ugly code that's harder to maintain and just has stronger coupling to dependencies than their needs to be.

This is where I think I would like working with a dynamic language (I remember doing some of this stuff in Python). Instead of going and defining a property in a class, I just use it elsewhere, without having to define it elsewhere. From then on out, it's available to everyone. This way, I could be writing "The Good Code" from the start. Not of this infrastructure stuff. Of course if I went this way, I would certainly have to be doing a lot more unit testing than I do today when I write code to catch those errors you get at compile time in a static language.

Perhaps I will look at writing some XNA code via IronPython, that might be fun.

Another type of language I want to learn are purely functional languages. I want to get into things like High-Order Functions (currently, I like to think I'm somewhat bright, but the idea of a Function that accepts two or more functions as _parameters_, and _returns_ a function on top of that makes my head want to explode).

Regardless, of all this, I feel that I have a lot to learn to become a better programmer. As a programmer, I was practically born-and-raised on C#. Granted, lately I've one back, learned, and program(med) in C and C++ (and I will so in the future as well when I start digging away at future concurrency technologies coming from Microsoft). I think to make the next step as a developer, I need to get away from statically-typed, imperative, object-oriented languages and diversify.

Have any of you (my readers (well, those readers that aren't my family and write code (if there are ANY of you out there :P))) experienced this feeling as well? Do you currently use a dynamic or functional language? What do you like about it over a language like C# or Java?

Posted in Programming
 #       Comments [0]
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, strike) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Contact

Email Me Send mail to the author(s)

Calendar

<October 2008>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

About this site

Jason Olson's thoughts on Programming, Games, Music and Life in General

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Jason Olson

Sign In
All Content © 2008, Jason Olson
Theme based on 'Business' created by Christoph De Baene (delarou)