Send to Printer

development

Information loss

May 9, 2004 9:40:00.907

Some image formats are "lossy" - i.e., putting an image in that format can lead to lost information. I'm starting to feel like Java and the CLR are "lossy" with respect to the entire field of software development.

First, there's this post from Roy Osherove. Now, Roy is a good guy - I've had some very pleasant exchanges with him via the comment sections of our blogs. But look at this - in response to a post I made about BottomFeeder plugins:

I wonder how plugins are supported in SmallTalk. What's the Smalltalk equivalant of Reflection, for example? of a DLL? dynamic loading?

Is there an equivalent of reflection.... It's kind of hard to know where to start with that, honestly. The reflection that actually exists in the CLR is a pale reflection of what you get in Smalltalk. I mean, take a look here - that's a paper from OOPSLA '89! I'm not quite sure how you would implement Method Wrappers (the cited page is old, and newer code is already shipped with VisualWorks) in C# or Java. Reflection in Smalltalk is just so much more powerful than what is available in the mainstream languages, but the mainstream languages are so prevalent that it's as if the information has been lost.

Take another example - this post by Victor Ng - he asks which camp is worse, Lisp or Smalltalk:

Which camp is worse? The Smalltalk people or the LISP people? It seems that both those groups just love to say "we did 20 (or 50) years ago"

I suppose it does come off as arrogant and irksome - but it's the simple truth with respect to so many things in software development. Just take a look at one of the big things buzzing around the software world at the moment - self healing systems. In Smalltalk (or Lisp, or other similar systems), new code can be loaded into a running system and override existing methods - or add new methods to existing classes - or add attributes to existing instances - all without having to take the system down or having to worry about the state of objects in memory. Heck, I patch this blog server that way all the time. Lars Bak talked about this in the context of small devices, explaining why Smalltalk was such a better choice - the ability to do on the fly updates.

The dead hand of rigid systems holds the entire industry back. You have to jump through enormous hoops just to accomplish the simplest thing. I'm hardly the only one thinking this - I referred to this essay just the other day. Developers new to Smalltalk tend to pick this up right off

We need to do a better job of explaining this - or else the information loss is just going to continue

Comments

RE:Information loss

[Roy Osherove] May 9, 2004 17:32:15.729

I agree. Every time I ask a question about Smalltalk I feel as if I should not have been asking it. I should have *known* this already, But information is lost. there is no knowledge sharing. How would you educate the world today that Smalltalk is the best solution to use for ent. apps? I don't know. But it's weird sitting at the opposite side of the fence listening to the "we already have that" echo. If you already have this and that and all that other stuff, why the heck isn't Smalltalk the prevalent language? I'm not asking this to annoy - I'm truly asking. We developers need to take a good look at the past and try to realize what "mistakes" were made that led to the situation as it is today. Surely - If people only realized the power of Smalltalk we'd all be converts by now, right? But that's not the case. Why? Oh so many reasons. None of them are the language's fault I think.

Re: Information loss

[Michael Lucas-Smith] May 9, 2004 17:57:43.137

Comment on Information loss by Michael Lucas-Smith

For an interesting story one time you should track down David Simmons (S#, SmallScript, QKS Smalltalk), as he was part of one of the camps in Microsoft advocating Smalltalk. There were two camps. The Basic camp and the Smalltalk camp. Both said theirs was simple and both said theirs was powerful. Bill Gates even likes Smalltalk (and you can take his word on it given he wrote a basic as one of his first commercial apps!) but in the end the basic camp won out and we ended up with VisualBasic.

[isomer] May 9, 2004 19:05:22.571

Actually, I think that the people implementing Java and .NET are fully aware of what came before. They are copying it down to the last detail, after all. If you look here you will see that java invented not only stack traces, but also exceptions. Here's a screenshot of the symbolics lisp debugger circa early 1980's. Look familiar?

If you dig back into the ACM digital archives, you will find conference papers from the '70s, '80s and early '90s describing exception systems, typing systems, reflection (recursive tower, anyone?), JIT, self-healing systems (linkers and loader), etc, etc...

The knowledge hasn't been lost, it's being actively plundered.

I just wish that sun or microsoft would suddenly remember that they invented blocks and dynamic typing, too.

Securely loading code

[Gregg Dippold] June 22, 2004 14:29:32.341

This may be one of those elementary questions but I just don't know Smalltalk. What mechanism's are in place to prevent patching with malware? What are we relying upon determine who has the authority to patch code, the user credentials from the OS or something native to the application?

 Share Tweet This