Wednesday, 07 July 2004, 17:56:19 EDT

Lately I have been starving to learn something new. As is usually the case, I have started learning a new programming language. I have decided to learn C#. While I like web development I just need to take a break from it; I do have some web development projects going that are not being put on hold, any more than they already were any way, and will be worked on at the same time as I am learning this new language so my learning is going to be slow. So far I have written a generic console application or two and today I wrote a small application that has two buttons and a text entry area. Click on one button and it prints "Hello world!" in the text area and click the second button to close the program. It was really quite simple and was mostly just a modification of an example in the reference documentation. I think what has drawn me to C# is that Mono has hit 1.0 and that means there is a stable cross platform .NET environment. I really want to write some feature rich interactive applications that work no matter what operating system a person is using and Mono is providing a way to do that. Another thing that has drawn me to it is the reference documentation.

I learn programming languages by reading the reference documentation and maybe a short introduction tutorial. That is how I learned Visual Basic, VB4 came with a good reference manual, and that is how I learned PHP. I just sit down, think of a project I want to accomplish, learn the language's syntax and write the project using the reference documentation.

The documentation that comes with Mono, while incomplete, is quite good. It provides everything one needs to know how a class works, what it does, and how to use it. Which, if you remember, is what bugs me about Unreal Script. There is a least one mod that I want to work on but can't because of the massive amount of time it would take to learn the code already in existance. With C#/Mono I can start with a clean slate and write my own code to do what I want. That is really what I like about writing code – writing something from scratch that people like to use.

So, hopefully soon, I will be releasing some stand alone applications on this site. I believe the first thing I am going to write is a utility to decode Ogg Vorbis audio files and write them to a compact disc in Red Book format. At first it is just going to be a front end to a few utilites that I use to do this task already but eventually I hope to eliminate outside dependencies and make it an easy to use audio CD creator. I have yet to find an application that is as simple as selecting the files you want to burn and clicking a button to start the burning process.