Rogue is a dungeon crawling video game first developed by Michael Toy and Glenn Wichman around 1980. It is generally credited with being the first "graphical" adventure game, and was a favorite on college Unix systems in the early to mid-1980s, in part due to the procedural generation of game content.


Thursday, May 6, 2010

The Old Masters

I finished a pass though the old classic The C Programing Language by Kernighan and Ritchie. It is a fairly small text coming in under 300 pages with index, prefaces and other such things. Even C for Dummies comes in over 400 pages and doubtfully has the same meaty-ness that is in good old K&R.

The second edition came out in 1988, and there has never been an update. My particular copy was acquired around my time in college in the early 1990s. Back in the day, it was the book. Well it was the only book. I would not recommend this book to learn C. In fact I had a very hard time making sense of it back in college as well. But now after 20 years of systems administration, study and practice in to the UNIX kernel and structure, the book is crystal clear, almost.

At this point in time, the book is very academic. It shows you how to do things if all you had was a small Swiss Army Knife. Now MacGyver has shown us that one can make great things with just a small Swiss Army Knife, but there are much better tools out today. For example, K&R shows you how you can make your own string library with nothing but character based I/O and pointers to characters. This is a very fine academic exercise. But even if you wrote your own, you should be using the standard string library from C++ since it is commonly used and well tested.

I was recommended this book with "it has the best treatment on pointers." And on that I would agree. I still plan to go back from time to time and re-read chapters 5 (Pointers) and 6 (Structures). The denseness of these two chapter alone take time to digest. I also read it because I still had my own copy from way back when.

C is a very powerful language, and K&R shows you all the fundamental tools that make it so powerful. But with great power comes great responsibility. Just because you can do something "very clever" in C does not mean you should.

In summary, any one who is serious about being a real C programmer, should be able to master the information in this book. But I would consider it an advanced text, and not for those that do not already have some understanding of programming, C, and even the UNIX operating system. It is still a good reference on the low level workings of the language.

As a bit of a side note, I suspect most of the books that I will use and review will be more "reference" in nature and not as much "tutorial." Or they will be in depth on particular topics, like Game AI design. Still, I will endeavor at least comment on the usefulness of any text for me on this project.


Post a Comment