EveningEveningMon Dec 1 12:39:01 2003
Red Army with Red Slippers
Topics: Tech , Music

And then, click your heels together three times, and you'll be back in the good old USSR, Petrograd to Leningrad...

So, I'm a little over halfway done with the Chaos book, and it looks like my Philosophy term paper is likely to actually interesting, if a bit rough (it's due Thursday, so it might not be as polished as it should be).. I really should've started on it earlier, but the ideas wern't flowing.. My musical company this time is a mix of Red Army Choir (yes, he's talking about them again! Sheesh) music and a Gypsy/Klezmer mix... That makes me curious -- why is it that the stylistic elements of Gypsy and Klezmer tend to get mixed together so often? I initially speculated that it's because they're similar, but listening to them, it's actually pretty clear that they're very distinct. Did the Gypsies and the Hebrews often inhabit the same areas? Both of them have notions of ethnic purity, so any intermarrage was probably pretty rare, but perhaps they 'jammed' together. Anyhow, one of my current favourites is a song called there's the village, in english at least. Troika is also nice..

The winter continues to take its toll on me -- I'm having a lot of trouble waking up in the morning, and my skin is getting very dry. All the better for thinking up a good fantasy.. and as per a recent IM conversation about office accomodations, let me present to you my programming environment fantasy. It's dark out, around 2 AM. There's a large picnic umbrella over me, keeping me, my laptop, and the equipment on the desk dry, for it is raining. Lightning comes out of the sky frequently, thunder's pleasant sound washing away any stress that comes. About 20 feet outside the umbrella, in all directions, lie some (lit) torches on poles. There's a nice speaker system, and from it come the sounds of the red army choir, klezmer, indian, or other 'low-attention' music. There are plenty of pens and paper on the desk, and the chair is comfortable. I have plenty of tea and water in thermoses, and a lot of light and healthy snacks. Another umbrella lies not far away, just covering a dry patch of grass where I can take a nap when I wish. All of this is on a pretty mountain clearing. Yes, that's my programming fantasy.

Oddly, I remember there being a phrase on google going with the Cluthlu fish, "Cluthlu: Our God Ate Yours".. but google doesn't even know of the "our god ate yours" phrase anymore. So, let it be, Google, remember.

Tonight, I'm going to drop my car off at Fnord, for them to fix the stupid wipers. Not sure how I'm gonna get back yet, and the timing is really bad -- I should be focusing on my term paper, not my car.. But.. I do need to make it legal here, and that means getting it to where it can pass inspection so I can register it and all that. I'm *really* kicking myself for not having them fix the wipers when it was in Columbus just sitting there for weeks. Sure, they would've had to order a part, but it probably would've arrived in time. I am beginning to wonder, with how little I use my car, if I wouldn't be better off just using public transport within the city for the things I currently drive for, and renting a car for trips elsewhere. What *do* I drive for? Currently, to go to whole foods market and, .. hmm.. I don't really see movies anymore, but I might sometime hear about a movie worth a trip to the waterfront again. Hmm.. With insurance and repairs.. it might be cheaper not to have a car...

Incidentally, Fortran, the programming language, sucks. I recently dipped my toe into it again to help someone out.. The default libraries are woefully inadequate (yeah, getarg will get you commandline arguments, but what if you want something other than a string? Guess what? You get to write your own function! No intrinsic or standard library call to do such a conversion exists in Fortran (portably, anyhow). C is a much-maligned programming language, as it makes you manage things that you really might not want to manage. However, if you're careful, it's a really nice language, with only a few things impossible in the native idiom. More importantly, it's standard library is very powerful. In C, when you're building custom code, you're doing one of a few things: 1) Project-specific stuff 2) Something at least moderately esoteric 3) Implementing your own custom framework/discipline

In Fortran, you're building custom code practically all the time because the standard library is so weak. There's a difference between project code, glue code, and foundational code.. Project code is core logic of your application, isn't very useful outside (although this difference is sometimes blurry), and often takes a lot of domain knowledge to design and/or write. As a sidenote, some people seperate the design process from the implementation process. This is bloody stupid -- often the level of specificity needed to do a really good design crosses sufficiently into the place where programming and design are one. Glue code hooks together two pieces of code that arn't tuned to be particularly aware of each other. It's generally a pain to write, but often doesn't require much deep thought, or when thought is required, it's of a very different type than project code, focusing on clean interfaces and meeting policies. Framework implementation is the most creative, open-ended task, where intuitions of good practice, the ability to set policy for users of this part of the code, and all sorts of engineering desires compete on a relatively empty field. Frameworks can layer too -- what must be maintained is a clean interface for the layer above to build on. The rich soil of C has provided fertile ground for a number of disciplines, and indeed a number of other languages are interpreted in frameworks implemented in C. The only thing similar I can think of written on top of Fortran is GNU Octave. Thinking of writing something like Python or a LISP interpreter in Fortran? Call me when you get out of the asylum..

That reminds me of the software engineering folk back at OSU, who grafted their own monstrosity on top of C++, called RESOLVE/C++. (note that on that page, they offer two evaluations of RESOLVE from (drumroll) REAL programmers. WOW! Amazing! Except... both of these people are CIS-OSU folk, one of whom was a former housemate of mine. Dig hard enough in a really big CIS department, and you'll find some people willing to praise your system) Anyhow, the designers of RESOLVE are certainly nice people, who are trying to do good things, but they suffer from an excessively formal notion of programming, and have produced something noone in their right mind would use. Their goal is simple -- promote the use of software reuse. Is this a bad goal? No -- people reuse code all the time, although usually just what their programming language and OS provides (don't want to write a new windowing system or redo printf() in every program). They want to expand reuse further. However, there are at least two problems in the way Bruce Weide/Tim Long/others are approaching it: It's mostly not a technical problem, and stuff that can be shared should generally be inserted into the foundation. I'll use Perl (as it's the antithesis of the Bondage and Discipline style of language they like) and Java (so their supporters can see that I do actually have a point) to illustrate how RESOLVE/C++ is the result of a fundamental misunderstanding of the problem of software reuse.

Wait.. no, I'll write this later (If I don't forget). I already have a term paper to write, and if I really want to give this the treatment it deserves, I should wait until I can give it my undivided attention. Writing little snippets during times I need a break from work isn't a good way to do this kind of thing :)

So, yes, coming soon, a criticism of RESOLVE. A smorgasboard of reminders to myself.. Software contracts CPAN, JFC class hierarchy language expressibility, static and partial/full constructors (database example) Bondage/Discipline and language usability Other usability issues (templates, debugging, errors) C++

And note that, all that being said, Bruce and Tim were excellent teachers, and while I already had enough experience that I didn't learn as much as I might've from their classes, it was presented very well and a very novice programmer would indeed learn a lot of important concepts (and a few strange ideas). RESOLVE is a toy, but not a terrible one, provided it's understood as such. As to whether it's better to teach with a toy or something more useful and usable or not, that can be addressed later.



Time Heals All Wounds.. And Then Kills the Patient
Previous Next