[self-interest] have to get this off my heart
lattam at mac.com
Tue Dec 28 03:18:35 UTC 2010
I would be interested in a bit more discussion on the below except. It touches on something that has been bugging me lately in thinking about languages and systems.
1) I started with Smalltalk and generally still like it bee than almost any other system.
2) I have been using Ruby lately and find I like it better for the following reasons:
a) There is more in the "language" and less in the "library".
b) There is a way to say things like "add this method to that class" that are library calls in Smalltalk that make metaprogramming a natrual part of the language rather than calling APIs that are not as well covered.
c) The idea that you assemble an "image" at run-time from source files lends itself to better versioning and partitioning of components. In particular when the components are developed independently by different groups.
While it could be said that all of the above can be accomplished with Smalltalk, and for the most part has, having it "in the language" feels very different. At the same time the ability to manipulate "code" as objects generated the best tool suite in 50 years, because it was easy to add to and customize with the same tools as was used for system development.
There were some wonderful tools built for Smalltalk, browsers that supported good commenting style while allowing scrolling of text, browsers that performed versioning and allowed CM type history operations, and lots of refactoring tools. The fact that good Smalltalk developers thought about manipulating objects when programming and when running code is a huge difference from editing text files, but never quite got to the maturity of editing source code. In particular when trying to package and reuse capabilities.
What was needed almost seems like a unified multi-user environment with CM aspects and run-time aspects and a good packaging approach to allow reuse of parts of the system, rather than a continued single-user focus. Or it might be enough to be able to really package up objects/behavior and safely introduce it into a new system?
>> So it is not the idea that a Object can hold meta information that I don't like, it is more the fact that we should embrace them as a part of the language we are proud of, (like the totally awesome namespace ;) and cloning ) or we should find a different way.
> I really don't understand the gripe. You seem to want to embrace a concept of "the language" that has no meaning to me.
> Is the environment part of your "language"? It certainly makes a different for the programming experience.
> What about the pre-programmed pieces that come with the image?
> What about the concurrency model?
> What about the fact that, in Self, you can split up your methods with no performance cost whatsoever? I would say that's part of "the language"
> since it changes how you program.
> What about the quality of the syntax error messages?
> Every one of these things both is and is-not the "language." All matter.
> I have heard many with too much mathematical training assert that Scheme Lambdas are "the same as" Smalltalk blocks.
> But there is a huge difference in syntactic weight, and incorporation into common idioms.
> What Randy & I cared about was the complete experience, the ability to unleash creativity.
> Is the result of that project perfect? No.
> But I'm afraid that I just don't resonate with any of these criticisms of yours.
> Take care,
> - David
More information about the Self-interest