Tuesday, August 11, 2009

Unix Utils Update

A thought hit me today: wouldn't it be nice to upgrade all of the basic Unix utilities? Specifically, rewrite them in the D Programming Language. It's not a necessity by any stretch of the imagination, however it may be nice to use what may very well be a better language and create what could be a more stable, reliable, and safe.

A lot of those utilities are pretty old and things have changed over time. Computers have become more powerful and we've discovered better programming techniques. D has built-in DBC and unit testing as well as several other aspects of the language that help you make more reliable software. Even if you just think about what good unit tests could do to improve software quality, that's a nice upgrade. In fact, think about a distro like Gentoo where you install it from source. You could potentially have it unit test your code before having it compile the actual executables.

Again, this is not something that needs to be done, especially since the 2.0 version of the language is still in an Alpha state and the utils still work. It's just something to consider for the future.

Labels: , ,

Sunday, August 09, 2009

D as a Learning Language?

I was having a thought recently that the D Programming Language may be a good choice as a learning language. No, not as an intro language, but one where you can teach advanced data structures and good programming practices. The second is the key part since D does have things built into the language, such as unit testing, documentation generation, and design by contract, that it can be a one stop shop for professors who want to introduce their students to these practices. That is, of course, assuming that these concepts are taught as a collegiate level. I know in my experience, they weren't, but I'm not 100% certain that they were as popular back then as they are now.

My two favorite practices are the combination of unit testing and code coverage so that you can test your code and get an idea of how well you're testing it, and the documentation generation as now a student can see how their code comments can become useful documentation without much additional effort.

Labels: , ,