|
|
|
April 13th 2001.
|
Smalltalk Solutions 2001
|
Note on Oct 24th 2001 this paged was moved to a Wiki so you can edit it there. Please read it over there, this copy is here for historical reasons. http://wiki.cs.uiuc.edu/CampSmalltalk/Smalltalk+Solutions+2001+Tuesday
Sunday Night
Monday Night
Day Two, Smalltalk Solutions 2001
Thanks to all that submitted corrections, the URL links are great. I've been in a hurry to get things out, and at 1:00AM my mind isn't too alert, and the spell checker will feed words to me, *any* word as long as it *thinks* it is correct.
Another early morning and another interesting talk with a Smalltalker over breakfast. Much of the information cann't be discussed here however this application involved lots of data, Wall Street and a bizllion network packets. Again Smalltalk doing the hard stuff, perhaps without credit, but we understand. After someone tried to convince me I'd be late for my talk with a little chuckle we made a run for the conference center to see what Georg Heeg had to say in his experience reports before Alan Kay's keynote address.
Among other things his company is also responsible for porting VW to different platforms like VW on macintosh OS-X. Following are some notes of his slides, most aren't documented here and you should visit the Smalltalk Solutions site to download the official ones.
Goals.
When porting 3x applications to 5i.
Embedded in VW 5I concepts, (namespaces)
Embedded in Store
Ready for next N years, some clients have 10 year plans.
Main Steps
Investigate current app, (some good, some bad)
Propose name space structure
Investigate system changes
Reorganize applications
Test the port.
Other
Gardening - identifying archived code and removing.
Name Spaces
Shared Variables
Reference Bindings
StORE
Other stuff like XML aren't important for porting.
The other issues here are dealing with the
Class definition changes
The name spaces
The definition of shared variables
References
StORE
Bundles and Packages into store for source code management
Data is stored in many SQL backend (Oracle to OpenSource)
StORE is an optimistic tool
Georg then when on to explain how StORE works. The key here is that you can only manipulate Smalltalk object that get loaded into your image.
Thoughts on name spaces:
Smalltalk
Company register your top level domain with cincom
Base common classes for the company
Tools common tools for the company
Project1 A project
Base project tools
Import
Client project client application.
Base
Client1
Client2
Server
Test Name spaces and imports USE THOSE SUNITS
Smalltalk
Company
Base
Test
Tools
Tests
Projects
Lots of more slides.
Alan Kay KeyNote Speech Smalltalk Solutions 2001.
I must admit each time I hear Alan talk it's difficult to capture everything about what he is saying, if I reflect on his words too long then I'll lose a sentence or two. So I know I've missed a word or two here. But here we go. I'll look at posting this on a Swiki in a day or two so people can fix issues with my understanding of what I thought I heard.
Alan:
Every couple of years we changed the language, last time I talked to a Smalltalk group I took them to task that the language had become static. Does it matter that Smalltalk is better than Pascal, or that it is better than C++. So how do I harangue you without haranguing you.
We build Squeak with five or six people plus the assistance from the internet, you can show how people can control their destiny. I'll give some examples. When we were thinking about the internet, John McCarthy the Lisp inventor (http://www-formal.stanford.edu/jmc/) was thinking about the complexity of the internet. In the mid 60's the dream was fleshed out and it was grander that what we see today. It was easy in a sense since it wasn't built yet. Today the business folks controlling the internet are mundane. John's ideas was far beyond what business are thinking about today.
Now I don't have any artifacts from the mid 60's Do you remember the mood. Here are some messages from today. I once was a child, some people can't remember what childhood was. Some people want to forget. "Children are the message we send to the future" Marshall McLuhan. When I was a teenager I realized we were the same as our parents, Wow.
An example from Harvard University graduation ceremony.
Alan showed some clips, these were grad students explaining how phases of the moon work, or how seasons occur. Beyond absolutely funny the real story was that these newly minted university graduates won't say "I don't know", or "I could find out". Instead they would give answers that were just wrong and contradict themselves. So is people's common sense today any different from 40,000 years ago.
It turned out the first time that I saw this video, I was at another university and got some grad students over for dinner and asked the same questions. They knew that if it's summer here, it's winter in the summer hemisphere, but most of them got the why wrong. So why are students unable to retrieve the information about the seasons. I also asked them to explain moon phases too, most failed to give a correct question.
We are human common sense thinkers that is cave people with weapons.
Most American business are aggressive entities, they need to corner all the marbles.
Now that have agriculture you can make as much berries as you need.
Now that you have technology you can make more marbles.
Most business don't realize that.
Now if you give that cave man a degree, then he can wear a business suit and throw missiles, did we see that when Bush got into office?
Are people cannibals? Yes, if they could if they would do it here in America. What is odd was the article about the issue was in Boro Boro, but that it was reported as a major news item in the LA times.
Another interesting data point was the issue about Paper Clip Manufactures that used slaves in China to make them, this was reported in the New York Time.
Now back 40,000 years the ability for people to kill each other was limited. But today this is a problem
The Harvard Kids are just thinking normally
"I don't know who invented water, but it wasn't a fish!" Marshall McLuhan
For every proverb there is an anti-proverb. That got the Greeks thinking about logic. If you go to a movie this week it has a premise, next week the movie you attend has a different premise, each is different, but we like that.
Many premises are arrived at genetically and filled in by culture. Backing most the thoughts below were animation and slides within his Squeak Image.
Our thoughts are like an Ant wandering around on a pink plane, it can have goals and directions, but it's all pink. Once and awhile it might have a blue thought, and usually the Ant gets squished. If I knew how to programming in C, perhaps I'd love it, you just don't know better.
But once and awhile a kerpow arrives from the heavens. Science doesn't rescue us from bullshit it just helps us smell it. In the past people usually went off and formed a religion. In science the tactic is usually to ignore the new context, because usually 99 percent of the time it is wrong. That is why you are still programming in Smalltalk, because it's a powerful pink context, safe and warm. Also when you migrate up into the blue stuff, it turns pink.
Many times we react to an Aha! with laughter. Now the long drawn out Ahhhhh is usually related to art. The first time I visited a Zen Buddhist monastery, the monks would always clasp their hands, after two day I ask one of them. They said we Buddhists believe the world is an illusion but the world behaves as it is real, since a tiger who chases you can catch you. Now we clasp our hands to remember the world is much more complex that we can really understand.
It takes almost as much creative effort to understand a really new idea as it does to originally create it. Remember a genius might have spent years on this idea, but you to adjust to the idea and adjust in just a minutes.
Now who was programming in 65?
Only two people raised their hands. Alan remarked that I could see them, either from their white hair or the fact they are shiny on top.
In 1961 I was programming in 8K of memory. Mainframes where ugly, huge, expensive and logically small. Programming was like making simple centrally controlled machinery, clocks? This was sort of the pink world.
I was working on Sketchpad, Ivan Sutherlands Sketchpad thesis is available now from MIT. You all must read it. (OK does anyone actually have instructions on how to get a copy?) Remember in one year he invented an object originated constraint based AI system and laid the foundation for the graphics systems of today and wrote it all in machine code. All the typesetting, graphics etc for his thesis had to be written by him. Ivan later stated:
"I didn't know it was hard, and I regret I didn't do more."
In the mid 60's there were two other events. In 1965 Doug Engebart's NLS, in 1965 Gordon Moore's Law .
As one could see complexity would grow. Now in 1965 I read this blue book by James D Watson about the Molecular Biology of the Gene. A simple organism contained about one Gigabyte of data. Protein and enzymes could change state a million times a second. A huge jump given computers of the day which topped out a Mhz.
So if we consider a thumb joint, that's a billion cells. Just to imagine a billion rice grains laid end to end that is 1500 miles or 50 days of walking.
Our thumb joint is 1000, by 1000, by 1000 cells, or a billion. Also a living cell doesn't stay around more than 7 years. We as system have a 100 trillion parts that soak up energy and reform ourselves, existing systems just don't compare. Does the internet compare?
In a company I once worked at they would take a computer/server down every week. But I asked them couldn't you just buy more and replace them on the fly? Machines are cheap, but the downtime was expensive. Remember the Internet has replaced all the nodes in the internet at least twice.
Today software is so terrible because you have to take it down to fix or change it.
You might not realize this but remember that Squeak images have continuously run since 1987. {snapshots afterall only put the image to sleep"
Algol -> Simula
My first undergrad job was to install some software, which didn't work. The supplied docs were a literal translation from Norwegian to English which was useless. Now this program was unrolled down the hallway and a bunch of us worked on it for a few days in the corridor, yelling information to each other as we found interesting things.
We realized this was an a Algol system that allocated memory like SketchPad. But my blue plane thought was why not have computers all the way down. You can! Objects made of objects.
Objects insights
Simulate everything. Every object is a compete little computer. Every part of an object is an Object.
Flex Machine
Papert, Seymour A.
His best known book is probably
"Mindstorms: Children, Computers & Powerful Ideas"
http://papert.www.media.mit.edu/people/papert/
"should the computer program the kid, or should the kid program the computer?"
"The music is not in the piano, putting pianos in a class room won't create good music."
In 1968. Perhaps computers could be used as a tool to teach kids about science?
Things we need to remember:
The printing press was invented in about 1400, but the real change happened in 1600, it could have die from lack of interest in the 200 years inbetween.
For computers has the real computer revolution happened yet? In the 70's it looked really good, but the last 20 years commercialization has set things back 10 to 20 years. The internet was build on the goal of authoring (content creation), but mozillia could not create content, people are viewed as consumers not creators and this set things back 20 years. The inmates are running the asylum.
Now for children. What should an authoring system look like for them today.
"What fools these mortals be"
People want to be fooled, view our need to see magic or our desire to escape to movies.
Betty Edwards. "It's not that your hand can't draw it because you don't know how to draw".
In Squeak a diagram of two tables, they look different, but we rotate one onto the other then they are the same, but we disbelieve it. We see things not as they are but as WE are.
If you look at a bunny and the shadow of a bunny you create with your hands. You can make them the same, but if you look closer they of course aren't the same. Theories of reality become more refined as we look closer, but they are NOT reality.
Einstein
"As far as the laws of mathematics refer to reality they are not certain; and as far as they are certain; they do not refer to reality."
Ad Krzybsk
"One measure of sanity is how closely one's internal representation of the world really resembles the world. By this measure humans are at least quite unsane"
We don't need more scientist, we need more people that can think better than the cave man of 40,000 years ago.
Maria Montesorri.
"If we want children to grow up mentally in the 21st centry , then we must give them 21st century toys tools, material environment and adults."
You build uncommon sense.
Squeak is more like how things should have turned out at Xerox Parc.
Etoys, OmniUsers, Experts, but one language. Smalltak 76 could do this, 78 could not.
Dynamic Media for Creative Thought.
OmniUser the 40 year old adult, they learned hypercard, they require the most support.
When Smalltalk progressed to the mac {I think he is referring to the interface paradigm} it weaken, they stopped using the Smalltalk toolbox and used a limited toolbox. Alan showed the mpeg plugin, and then showed a bunny, whiched moved in orbit around the screen, a very interesting visual effect.
Another example. A text box, you type a sentence in, then hit the button and the characters randomly move around the text box then they sort into the sentence again, if you change the width of the box the characters move again. We can change the algorithm to wait, then the movement is different. Now we have a sorting algorithm without a loop, all the objects just flow into place, because they know what to do.
Although I'm preaching to the choir here, I've not seen demo's like this in the last 20 years. Each of these is something a child can program and understand. Alan then showed some layout stuff, embedding morphics, transparences. Building a logo (a mouse).
It's immoral to build systems that aren't deconstructable. It's not just about making money.
Alan then progressed to showing how to draw a car in Squeak.
Using the painting tools to draw a car, you can then manipulate the parts. Use a special browser to show how to control the object, Movement rotation. Alan then built a small script using the scripting tool and drag and drop to move the car in a circle, then he added a steering wheel. First the control is bad, now we need to add arithmetic to make a 'gear' divide by 3 then three turns of the wheel to turn the car around.
Mmm he remarked people still copy headers and rewrite them, why not a browser interface to grab and insert. {Again change is needed}
Now to add more complexity. Add a road to the diagram, and we need some logic to have robot car move on the road. If the sensor sees the color brown then white now what. Just have the kids blindfolded follow the wall, they will realize the rules they need to follow to work around a corner. Really the trick is not can the kids get the car to move. But how is the artwork. An example from an 11year old. This example had the car make a noise if the car moved off the center strip. This became a game, where they could play and get feedback on tracking the car down the center of the road.
Another example, someone made a bat fly thru a house, a step up from moving the car down the road.
From a different viewpoint. A etoy music exploring tool to show how you can modify the playback of sound. Alan when on to show his movie of the night on bald mountain {I think}. The first try showed a problem with sound sync. But then he showed that we could sync the video to music. Using the music tool we modify the wave forms to match our exceptions of the video animation
Now the saving grace of doing mundane programming is that there is an opportunity to make art.
Now what Smalltalk is really about? Smalltalk is a meta system. Today it needs a better system, there has been some work in the university area, but not enough. We are doing workarounds for experiments we didn't do at Xerox Parc. To make Smalltalk survive we must show a radical different between us and the other solutions. The mac failed in the mid 90's because it they didn't progress. The 68K family had memory protection, but it was never used for 15 years until OS-X. There is an interesting story behind this.
The point is the gap between us and others is much closer. Squeak is an example of how to broaden the gap, which is something we need to do. The commercial Smalltalk wouldn't progress that is why we built Squeak. Remember you get the CPU, why live in the environment you have, Squeak can just take over.
Smalltalk-80 (1980) why are we still programming in that dialect when it is 2001
This concluded his talk and he opened the floor to questions.
Question:
When will Squeak be open source?
Well it is.
Squeak was also developed to be ported, In fact all the VMs except the Mac were done by people on the internet. The Squeak mailing list is one of the more active open source mailing list. Everything in the demo I just showed except the content was written by the people on the internet
More questions.
Some things in the Smalltalk syntax are bad, something in Self are bad. Early programming in Smalltalk was taught top down. Create a class, create generality. But people want to program from bottom up. In our example the car is a singleton, with it's own methods. The script tool also allows you to instantiate the other cars using the one car you pick.
I believe all programming should take the tactic of showing the most simplest thing that can work. IE sort, it should be simple, but later pragmatic to solve the performance issues.
Some other issues, In Smalltalk we have no model for a variable. Now I regret I had not thought more about this topic. We don't have anything to protect things like plus or printString.
Biggest problem is that programmer program too much. They love ugly code that they can only understand. Like the artist that loves his ugly painting and only he knows the dot at the bottom is the actual gem in the painting.
Question:
What would you change.
The last thing done in Smalltalk was a system called PIE (Personal Information Environment) by Dan Bobrow and Ira Goldstein, Published by Xerox in 1980. A paper on this project is available today {thru I'd guess the Xerox internet site?}. They did multiple perspectives which you need for OOPs You want to have multiple symbolic views. Like a person you can view him as a husband, a father, an employee or a boss.
Subclass is a nightmare. It's sideways
PIE in Smalltalk-78. One of the great things was that a Smalltalk Object was used for each of the perspectives, so a PIE object was a collection of the perspective of the target object.
Can we get rid of subclasses and do sideways relationships.
Question
Given that kids become adults within the dominant power structure, and that dominant power structures are really good at absorbing technical and ideological innovations for their own ends, how does making kids better thinkers help make a better (fairer/more compassionate) world?
Good questions, the gas chambers were invented by the scientists. I believe kids need to be exposed to art. Adults today are afraid and pragmatic. It is so odd that science is it's own set of Zen code. To Grok is to deeply understand, we are the way we are but we must remember that.
The better you are at math the more dangerous you are because the problem in Germany was rationalized away. Science is imperfect, we are imperfect but yet you can build something perfect.
4/18/01 2:50pmPST Eliot, who asked the question above emailed me and pointed out I missed the last sentence he had heard from Alan which was:
At least with the scientific approach there's a built-in objectivity and open-mindedness not present in other modes such as religion. So at least with a scientific mind-set there's a possibility of change
Question
What can I do as a commercial programmer and I need to feed the kids.
Tough question, you can avoid this as a job if you want to. Also dont lie to your sponsor. Also given that it's one in a million someone good will work on your project, and remember the internet improves those odds, perhaps it's only 10,000 to one.
For example David Simmons in QKS moved collection into Object. This was marvelous. We've not done that in Squeak yet, we have more grandiose plans.
Question (Georg Heeg)
Would you encourage us to work in Smalltalk-72?
No, {a long explanation, about Lisp and S-expressions resulted}. Remember Smalltalk was the result of the hallway bet that Smalltalk could be expressed in only a half page. The bettor was Dan Ingalls. I took 2 weeks and pull all sorts of tricks that lead to Smalltalk-72, but it wasn't the intended language because of the need to fit on one page. I wanted to make Smalltalk like Linda to send or receive patterns. I'm a big fan of Linda.
Question
Teaching a child Squeak?
You can only teach math, not science since the computer can lie. Kids can learn vectors without learning their names. Now to teach science by giving them a slice of reality. Like how to teach them about gravity by showing them a movie and looking at each frame to understand acceleration. Also for sound they can understand how a microphone really works.
We teach kids that science is right. But that is wrong, science isn't about rules, it's not always right. We are doing the wrong thing.
Many years ago, maps were centered around the garden of Eden surrounded by the unknown, this progress to building maps based on the relationships of known things. Ask which is a better map? Science is better but people don't know why?
----------------------
Lunch was a blur so was the opening of the vendor show. My presentation came early and was quite successful.
After my talk I wandered over to Camp Smalltalk and found 32 people busy around computers working on things and sharing ideas.
----------------------
Enoch was at Camp. He was telling me that his VisualWorks GC tuning resulting in his application running twice as fast. What I found interesting was that he was set up in the Smalltalk Hardware corner, no he didn't have his expresso machine. Rather he had a huge $24,000, 4 way Xeon box the size of a small fridge which he brought via fedex to the show for his experience report in the morning. Extreme soap, soap without the bubbles. Certainly extreme software on an extreme machine. Tormorrow I'll attend his talk since his application is VERY VERY facinating again Smalltalk doing the HARD stuff.
Jon was working with his microseeker. I asked him about his HTML browser and he showed me that it was seriously broken however news is pending on what is happening with it. Stay tuned. As the community knows he has a problem with the microseekers serial port under linux. General feeling was it was a serial port RS-232 voltage level problem when he attempted to hook it to a pocket PC. .
Micheal dropped by and started looking at Jon's Browser, Morphic for the HTML object eh.
Mmm there seemed to be a macintosh powerbook table. After all there was five of them there, Doug Way was there working on Whisker trying to get it to display large lists. This was to add the version tool logic, in whiskers you now get a triangle on a method that has versions Then you can choose the version, and/or compare between methods, need to make the lists faster.
STP was attempting to discover why his PB and Siren and Mac 3.0.11Carbon wasn't running as fast as it should be. A missing change set I thought. In the background John Sarkela was busy discussing Squeak world tour. Then we were all asked to leave since the show was closing for the eveing. We wandered about and took up refuge in the hotel's sports bar.
Much music in one ear, again a difficult application I think done in Smalltalk, the other ear hearing about Cincoms work to stabilize and prefect things then move toward new features. Discussion moved from issue about versioning, to classification of music, again interesting conversation from fantastic people. But bed lurks and I've some software to fix, so alas I cut things short and leave.
Wednesday |