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 http://web.fisher.cx/
to publish anything statements I wish to claim.
- My rule of thumb: the closer my writing is to Truth, the less likely I am to sign; the closer it is to Experience or Opinion, the more likely I am to sign. If you don't want to sign specific portions yet retain BackLinks from your name, you can add a "Contributors:" line to the bottom of the page. This makes later refactoring easier. -- IanOsgood
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
& (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
, 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.
- Kernel-ST80 Remnants/Controller
Now to examine their interfaces.
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.
I give thanks to the Voorhis for his informative & sympathetic comments.
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):
- How does the "system image" model of SmallTalk & Self handle version control?
- Would a simple Perl/Python/Ruby style SmallTalk/Self interpreter--w/o its own environment & system image--be a viable alternative to Ruby? (Is it easier just to implement Self with S-expression syntax in Scheme?)
This is beautiful:
- Smalltalk: Smalltalk won't meet you outside Smalltalk's apartment. Smalltalk says that if you really loved it, you wouldn't leave.
(quoted from http://maradydd.livejournal.com/293666.html
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.
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
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.
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
I'm I missing something in the examples I cited?
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.