The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Does not understand

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
Does not understand Posted: Jun 19, 2004 9:52 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: Does not understand
Feed Title: Michael Lucas-Smith
Feed URL: http://www.michaellucassmith.com/site.atom
Feed Description: Smalltalk and my misinterpretations of life
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Michael Lucas-Smith

Advertisement

Does Not Understand in Smalltalk is a complex beasty. It's a very powerful tool, yes, but it comes at a cost. What is that cost? It's a new meta-construct that isn't part of the language and is therefore not supported by the tools.

So what IS DNU all about? Why do we even have it if it can cause so much trouble. Well, it's basic premise is that you can extend the language beyond what it was originally intended to do.

For example, you can make any is* method that isn't understand be converted in to isAClassName to do a isKindOf: for you. That puts a new semantic meaning on any method beginning with is* which may or may not be good for the language.

We're making this new meta-construct and we know that none of the tools will understand that construct. The tools are smart enough to deal with it and let you debug it, inspect it, track it, etc - but they will never 'grok' its meaning.

Also, we have to consider the implications of speed. When we're using DNU, the VM does not know how to optimise what we're doing, because it too doesn't 'grok' what we're trying to achieve. We're circumventing the normal assumptions about how the language will work.

So. I propose that the true purpose of DNU is to explore language constructs that are not part of the original Smalltalk-80 and are not something you can merely extend or add a class to achieve. Syntactical sugars in fact - such as being able to write XML directly in to the system and have it 'execute'.. being able to pass as many arguments to a function as you want without implementing a variant of each call... being able to use named-parameters instead of keyword-selectors.

At some point, some one needs to review these constructs and decide if they are worthwhile or not to be put in to the language. Smalltalk has never ever done this, because it usually cheap enough to leave it as a DNU. Languages like perl, ruby, python do it all the time - except that they cannot prototype the functionality in existing features in their language before they leap in head first to add the new language feature.

Read: Does not understand

Topic: This guy deserves bad Project Managers Previous Topic   Next Topic Topic: Questioning analysis

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use