Robert Fisher

Nice. It seems someone has choosen to impersonate me. RecentChanges shows an edit to BraveNewWorld by me that was not by me. sigh

Thanks. It is very sad that Anon seems to be proving that a single, dedicated trouble-maker can ruin the wikiwiki dream. (u_u)'

I intend to fully embrace the wikiwiki ideals. I will attempt to avoid signing any of my future contributions. I will attempt to give up any thought of ownership over my contributions (except on this very page).

(Although, the biggest reason I ever signed any of my contributions here was to make it easier for me to find pages I'd contributed to.)

After all, I have & to publish anything statements I wish to claim.

About me

I currently work at TippingPoint, a division of 3Com. Programming primarily in CeeLanguage.

I've visited this wiki a lot over the years, but have only started contributing recently (2006).

I was born in 1969. Besides occasionally playing simple text games on mainframes or fooling around with the punch card machines, my computer experience started when my dad bought an 16K AppleIi circa 1979. So, BasicLanguage was my first language.

My dad gave me a copy of KernighanAndRitchie & told me CeeLanguage was the next language I needed to learn. Which I did, though I didn't get much chance to use until c. 1991.

I did a lot in HyperCard, which I think really helped me in understanding THINK C's ObjectOriented extensions & CeePlusPlus.

In 1995 I got my first programming job, writing CeePlusPlus for AppleMacintosh & (all flavors of) MicrosoftWindows. (I had a little Windows experience as a user, but had never programmed for Windows before.)

By 1998, I was programming a lot of JavaLanguage. My professional experience since has been mainly CeeLanguage, CeePlusPlus, and JavaLanguage.

I picked up PerlLanguage c. 1999. In 2003 I tried RubyLanguage & have generally preferred it for the things I used to use Perl for.

My first effort to really learn SchemeLanguage was in 2004. Since, I've also spent some time with CommonLisp, but I've found myself coming back to Scheme. I'm making a real effort to use it instead of Ruby now.

I've done a bit of EcmaScript over the years, but only as much as I needed to. Since starting at TippingPoint (2005), I've had to do more, & have come to appreciate the language a lot. It needs better numbers. (Everything is a float isn't GoodEnough in the long run.) & a module/namespace feature could be good. (Which I think they're adding.)

Every language I've used

Just for fun, I've decided to try to compile a list of every programming language I've used. (Currently, not including those listed above.)
Languages of note

I don't really know what my criteria for this set is yet.

I was reading some of the ModelViewController pages & thought I should write down some notes about it.

It always seemed to me that the View & Controller in MVC would need to be integrated. How the user manipulates the model is ofter tied up with the view they are looking at. Don't the View & Controller need to be one?

A quote from WhatsaControllerAnyway: "The original MVC formulation separated the V and C because just as you could have several different implementations of V's displaying M's in different ways, you could have several implementations of C's for a given V" Which appears to have been written by MitchellModel.

Aha! The View & Controller aren't integrated, but they overlap. The Controller goes "on top of" the View. A Controller class is typically meant for use with a specific class of View.

I think I've found the MVC base classes in Squeak. Now to examine their interfaces.

Dash rant

Jeez! If somebody's going to keep changing my double-hyphens (in place of em-dashes) with single hyphens, I guess I'll just stop using them. (>_<) Funny how the double-hyphens are left alone so many other places, but mine keep getting scubbed. (o_O)

Ah, that's the infamous BlueYonder?. He's particularly fond of trivial, no-content-added edits, and often appears most irritatingly in the middle of an ongoing conversation. This probably wouldn't be so bad in itself, but when he's been politely asked to alter his behaviour, he demonstrates an amazingly irritating style of arguing (including the occasional EditWar) that sets folks' teeth on edge. When he turns '--'s to '-'s on my edits, I just change 'em back. -- DaveVoorhis

I give thanks to the Voorhis for his informative & sympathetic comments.

Smalltalk/Squeak/Self musings

Playing with Squeak & Self today. (19Feb2006) These seem to be great environments for programmers to live in, but not great environments for programmers to build software for non-programmers to use. (Of course, I believe everyone who uses a computer should learn to program, but two very important classes of people, people I love & people who pay me, tend to disagree.) Sure, you can manage to make software for non-programmers with these environments. (e.g. Building a web application in Squeak.) But, overall, they seem to be geared away from that.

Some more SmallTalk/Self thoughts (18May2006):

This is beautiful:

(quoted from

Some of the other ones are kind of funny, but this perfectly expresses my experience playing with Squeak & Self recently.

Hilarious! Have you checked out the other programming metaphor pages here? LanguageAsFoodMetaphor, ExtraLegsOntoAdog, LanguagesAreLikeGames

Yep. And, of course, the ole one about HowToShootYourselfInTheFoot. Usually, though, there are one or two that are really good & the bulk of them are stretching the metaphor. Somebody should compile a greatest hits.

On eloquence/expressiveness/?

All Turing complete systems can emulate each other, but that doesn't mean all Turing programming languages are equal. There are certainly times to choose one over another.

The more I think about it, though, the more I have trouble coming up with good reasons to use anything but Scheme. (Scheme just happens to be my current choice. There are certainly other languages that could take its place in this discussion. e.g. CommonLisp.)

Now, an important part of this exercise is that the existance or absence of libraries & tools don't count. While existing libraries or development tools may be a practical reason for choosing a specific programming language, given time, the same libraries & tools could be just as easily created for Scheme. I'm interested in comparing potential here.

OK, for example: Prolog is a great language for some problems. There are Scheme libraries that do what Prolog does with about the same eloquence/expressibility. The syntax may be different in minor details (s-expressions) yet it remains very close to Prolog syntax. Plus, you can then easily mix the Prolog-ish code with normal Scheme code, & thus tackle problems for which only part may be a good fit for Prolog without the pain of integrating code from two different languages. (Or trying to get Prolog to handle the bits that it isn't so well suited for.)

Likewise, I can build Smalltalk or Self style object systems in Scheme that, again, are just as eloquent/expressive as those languages.

Instead of building JavaScript from scratch for browser scripting, wouldn't it have been better to start with Scheme & add what Scheme didn't have? It couldn't have taken any longer to add the new features to Scheme than it took to build those features for JavaScript plus all the features that Scheme & JavaScript share. Even if you didn't use an existing Scheme implementation, building a new one would've been quicker than creating JavaScript. (As for the syntax argument--probably half the people who use HTML, XML, & JavaScript do it in spite of the syntaxes (syntaces?), not because of them. They deal with the syntax because that's what the browsers require.)

It seems that Scheme (& probably other languages I may or may not know) is malleable enough to steal the "killer feature" of most other languages. It's not having a hammer & seeing everything as a nail, it's having a leatherman. (Which isn't a very good analogy because it doesn't let you extend its functionality...)

I'm I missing something in the examples I cited?

What are the limits that would make another language a better than leveraging Scheme & extending it a bit?

It certainly seems to me that there are times when C is warranted. In heavily speed or memory limited environments perhaps. (Although, I believe there could be a low-level language more eloquent than C without being as baroque as C++, but I don't think I know it.) Scheme can be very fast, though. Maybe enough to rival C.

To do


View edit of October 13, 2006 or FindPage with title or text search