April 14th 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+Wednesday

Sunday Night
Monday Night
Tuesday Night

Day Three, Smalltalk Solutions 2001

Another early morning, up at 6 am to join some other Smalltalkers at breakfast. Lots of interesting ideas afloat, the mood was upbeat, in fact it was so interesting we managed to be late for the first morning presentation. I arrived late to Enoch experience report about LingoMotors (www.lingomotors.com) "Extreme soap, soap without the bubbles".

Enoch:
Some thoughts, we use XML to query the state of the server, this allows me to change/modify the state of the server, things like MemoryPolicy, tuning values, etc. I can do this on the fly from my rural home. At this point Enoch launch a browser to access the Switcher. He showed a set of images running on that 4 processor box I had talked about yesterday.

For example here are five images running, each using 160MB of memory. The testers can test, then review the memory sizes to understand if there is a memory leak issue. Also we log everything, so we can understand what is happening. For example logging showed that people were submitting characters into the system that covered the entire ASCII range 0-255. How they manage to do this from browsers we don't understand but now we ensure this doesn't cause failure. The logging facilities of course are fully manageable.

Enoch then explained a little bit about the problem domain of linguistics and how to customize the system to met a client expectations. Interesting enough they can tweak the knobs to cause more books to be sold.

LingoMotors objectives are 100 hits a second, with less than 1/4 second response time on hardware < $50,000

They also supply SNMP information for HP OpenView.

In terms of architecture have both a VA and VW image. The VW image was written over the last 3 years as a single threaded application but now they wanted to interface it to the Web. The solution was to write a load balancer, the Switcher. The Switcher application was done in VA and manages multiple linguistics engines which solves the concurrency and performance issues. Seven applications on dual CPU box, with 2GB of memory. Enoch went on to say it would be interesting to port the applications between the different Smalltalk engines (VisualWorks, VisualAge) and see how they perform. The Switcher has a huge amount of Smalltalk processes, and will handle hundreds of transactions per second. The linguistics engines can have a hard time keeping up because of computation issues. If a VW engine fails, the Switcher will restart it.

They watch the MemoryPolicy values and if they think a GC is about to happen then they don't give the engine more work, instead they force a GC. Remember the client expects a 1/4 second response time, a 2 second GC event is unacceptable.

The heartbeat tells us if the service is sane, if not the Switcher will restart that engine.

Part of the framework includes a facility to upgrade/downgrade linguistics engines. You can ask the Switcher to upgrade/downgrade an engine. We also embedded a framework to allow you to send http post/get information to provide a test load.

Enoch then setup another machine running this test load, and then switched back to the console and invoked a command to update the engines to a new version. The Switcher then takes images out of service and upgrades them one by one. The customer never notices a outage because you have a pool of images serving the requests. The cool thing is that you can also downgrade engines in case of production failure issues.

Some discussion about XML. The spec has holes in it, it is difficult to live with, but compared to some of the original Java Beans stuff it was great! However we now need to go back and fix things like adding a transaction id. This will be expensive.

Open Source Envy? What? Sigh seems I missed a very interesting BOF on Envy last night, well more that later, it's just a rumor. But I wandered over to the IBM annoucements just to see what was happening. Yes! VisualAge Smalltalk for Linux. But back to rumors, What about open sourcing Envy I asked during question period. Not at the moment was the reply. Ok for all the readers that have a vested interest here you should email Mark Weitzel (weitzelm@us.ibm.com). Oh seems I forgot to ask when the mac OS-X version was going to be ready, anyone need this?

Time was short , so off to the second keynote of the conference. Hopefully I've captured the speech below correctly, but typing in real time versus using a tape recorder does mean mistakes can occur. Say we noticed it was all taped, is this going to be on the internet somewhere, anyone know?

David Thomas, Object Troll. (Former CEO, founder of OTI, a canadian company I might add).
dave@bedarra.com

David:
Where we have been, and where we are going in the Smalltalk community.

It's been six years since my last Smalltalk Solutions. IBM has been a good partner and allowed object technology to come forward in new ways, not all companies are as nice when you merge, but even so when 300,000 people want to come hug you it's still scary. I'm NOT in the commercial Smalltalk area at the moment. Right now I'm looking at distance education, exploring different lands, and languages that many of you would never see. One needs to look out, versus looking in.

Don't maintain the Smalltalk museum, that would be sad.

Perhaps a dark complement is that OTI did many things, Envy developer which escaped from the lab when we introduced a paper on Orwell. We built the Visual Programming language into Smalltalk to hide Smalltalk. All terrible things. But the commercial Smalltalk ventures were very successful. These are among the top three of four technologies that one should seriously consider. This talk is more of a meta talk to the community. Lets call it Smalltalk NEXT. It's important for people to realize that Smalltalk is a carrier for ideas, yesterday some people realized Smalltalk didn't do native widgets. Also Smalltalk brought us MVC. But we are currently tied up in MVC jail. Other OS window systems are the result of copying of bad ideas from Smalltalk. Browsers? Smalltalk pushed that idea. Constraints from Sutherland thesis (MIT Link). Exploratory programming, refactoring flavor of the day from Smalltalk, people need to slow people like Kent Beck down. Visual Programming, Fabrik (sp), and Visual Programming. Smalltalk has it's problem domains, and handles very complex domains. Simple things like CRC cards came out of Tektronix, A long time ago that company did the OS for Oscilloscopes using Smalltalk and 512k of ram. Java folks today are still hoping for 64MB in your PDA, they just need to solve a small issue with battery technology.

Wikis and a community around patterns, invented by the community, and certainly seized and amplified by the community. Right now it's XP. Our way to say how we do things but not use the word Smalltalk. If you can do XP you should be awarded a prize if you can do this in another language. We had all these ideas and all these bright people, we saw this commercial opportunity. Yes say the S word, in many cases we were successful. Today in fact there ARE more vendors selling Smalltalk versus five years ago. Also Smalltalk (Squeak) is widely available as compared to yesterday. Giving software away is weird, but perhaps it's part of your advertising budget. Java at $99 will get you that manly Java scent, but it doesn't make a profit. Tool vendors could see the writing on the wall. We (OTI) did the IBM deal because we could see the looming issue. It is 100 times harder to build a Java application, the libraries are so stable (NOT!). I didn't want to write Java and I moved to a different space. Vendors try to provide the API field of dreams for databases which are an unnatural act. It's hard to bind to C, too close to the metal. We did lots of work to bind to C auto-magically. It was scary, lots of work, we had Smalltalk on 40 different OS platforms! Lots of platforms that people never knew existed and across 20 different hardware platforms. Some of them were very very weird. Like one that didn't have a jump instruction. That drove the VM guys mad for a few days. We build the Smalltalk VM for IBM mainframes. Good programs there are about 4k in size, the Java folks are soon to be shocked. The IMS transaction monitor is old and simple. Giving every transaction a separate thread here is going to grind your IS dept to a halt.

Many of the vendor at the exhibit hall today drove Smalltalk, but alas when commercialization came, then stagnation came. Although you can find energy in great people in the VM area, we took some of the brightest people and brought them to native widget hell. You can't even write a POSIX app to run everywhere, because the error codes on hosting OS are different. Because things move very quickly we ate our seed corn. We hired everyone, but there was a dark period of innovation and creativity because the customers won't let the vendors innovation because it a pain. All you customers were a pain in the ass with the whole issue of name spaces, we needed that but you didn't let us. If we could get rid of you that would be great.

Someone in the audience remarked: "well we succeeded".

Innovation is disruptive. VisualAge Java was build in clean room over 5 months, Slow, big, but we had to build it. A radical change might be applauded at a conference but it might take 5 years before it makes it in a commercial product. Really successful ideas take 3 years.

Self, Strongtalk, Morphic, Smallscript, Fabrik. These are great but not commercial. There were lots of great OTI things, but they never got out the door. We needed six months to figure out how to interface to the hosting OS APIs. Something that was near and dear to me was Actor, interesting product in 1986.

A universal plugable browser. Constraint drawing, pen computing with Momenta. Universal byte code machines. Created by small groups of 2 or 3 people. We need those sorts of things in this community desperately. You can't get new ideas on the same thread as making a buck.

For example getting a grad student on board. Ask him what do you want to do, make a movie for OOPSLA, or make a lot of money? Finish your idea and stick it out there. Don’t confuse research with making money. At OTI we were successful in managing it. When Bjorn Freeman-Benson was working on constraint systems we sent him money and got papers back, but it took a few iterations to make a profit. Some of these are big ideas not small snippets of code. Community is about have interesting ideas and exciting people. Its hard to get a biologist let alone a computer scientist to write a database driver, and of course the vendor is going to screw you over. But I'm not suggesting you put young people on a pedestal. Look at some other communities they are highly regard but have little to say. We had the Python guy come talk at a conference and he gave us the same talk that Adele Goldberg gave years ago as something new. We were saddened. But what we have done is created a Smalltalk black hole were no ideas or light gets out. The Python guys rediscover our work and they become front page news.

So Perl, Python, Ruby, Mumps, even APL have active newsletters, and publish things. Way more of a community than Smalltalk. Hey a conference on visual programming language in Education is coming up, but where are the Smalltalk people.

Keynote by Grant Miers? (sp) {JMM I seemed to have missed the thought here}

Again we really blew it we didn't do a damm thing beyond adding more methods to the image than people could possibly understand. A race to add the most features to the image. Maybe we need a pico-Smalltalk. David Simmons has some neat ideas, like having objects enumeration themselves. Object are dumb, they need to be smarter. Perhaps we need an owner slot to identify who created me. This would solve lots of security sandbox issues. We have LOTS of memory now, who cares if headers are 8 bytes in size, they could be much bigger.

Ralph Johnson <johnson@cs.uiuc.edu>, and Stephane Ducasse <ducasse@iam.unibe.ch> are trying to build a CD of old Smalltalk articles. If you have stuff please get it to them. The more interesting papers are on things about what we did that didn't work.

We have the folks at Disney to thank at Squeak. That wonderful malleable horrible image. This is a place for those in research and experimentation to express themselves. We need to find ways to welcome people who do small things to the community.

Many open source projects fail because the objective are so huge and the code so hairy. For example PHP is a huge monster. I think we would do well if someone could just carve off just a small class, then be able to file it in and out. Now some people do tinker with the Linux Kernel but normal mortals can't cope with this.

Many years ago I applied patches to an OS, lots of them. This was great until they changed the OS. I evolved to discovering how to convince the vendor to make the changes I wanted, then I didn't have to make them. Although having all the source code is great

Rewards? Give a reward to the author of the best/useful Squeak code. I can't say what is the best way to foster this. Should we have a Squeak foundation, like Apache?

Why?

A legally incorporated company to which you can give money, transfer ownership and liability. If you write code for the community to use, then maybe the Metronic (sp) people will use the code in a pacemaker. Could this be a problem for you if that device fails? People would like to have a Squeak membership card, and think about their $10, $100, or $1000 contribution that was going to someone to build an interesting part of Smalltalk, whether the programmer was a student, or a professional on sabbatical.

A groundswell of support is needed. It's important for Squeak Central to do their thing, they are sharing playdough, not a commercial tool. It's up to us to mold it into something. Innovation happens in the absence of money.

To the end of what we did at OTI, which was interesting, was the fact that people had a passion about this stuff. It's time to close but here is another thought. It seems like David Simmons knows how to solve the full block closure, and tail recursion issues, but we don't act on it. We need real lamdas not fuzzed over ones.

What child would use a image in which you can't find anything of interest. Hey you can make games we respond, but no games are supplied. It needs to be very simple. Why not separate the IDE from the execution environment. Microsoft .NET can do this!!!! Yes in the past was a great way to motivate engineers by telling them the competition could do it but we couldn't.

Components? Maybe objects are too dumb. It should be able to display itself, enumerate itself, identify where it came from, who owns them, this is a REAL benefit. We need a clean Metaclass structure, I want to know when I'm meta and not trip on it. Hey if you drop in delegation using doesNotUnderstand, how do mere mortals cope later. {Lots more here, but I was tired of typing} There are small evolution things being done. The Squeak World Tour a great idea, but remember we started there and ended there, we must componentize and break things up. This isn't easy, we can do a better job, we should have learned our lesson.

If you do engineering on the VM, that is different than experimentation. Making Squeak useful is different than doing invention. If we just make it stable we have failed, we want to make it better.

Programming languages have a life of 7 years, Java is at 4 years. ..


----
Smalltalk who wants to be a millionaire. Craig won the $100, this was a bonus to the rest of us a few hours later because it bought a dozen of us lunch. BTW Craig thought the questions were too easy!

----
Camp Smalltalk. Numerous very happy folks around the tables talking and Smalltalk code. showing

I was in deep discussion with Carl the author of Liberty Basic about how they made converts to smalltalk. Because when people see the power of our Basic and then learn it is written in Smalltalk they are curious about Smalltalk.

Liberty Basic has Smalltalk V as the base, we are migrating to Smalltalk V 32bits, but we are looking at other Smalltalks, IE Squeak but it needs native widgets. Interesting a language within a language, just like VA Java.

Later I was talking to Thomas from eFinNet. They are a startup firm creating software for the commercial finance domain. They use VisualWorks, XML and Gemstone. They capture all the information about the issue at hand, the problem is figuring out who owns what to who, then figuring out interest rate, and doing risk analyst. Since they are new to Smalltalk we had a long discussion about putting heads on headless servers and lots of other things since I built a few Smalltalk Servers over the years. Smalltalkers please note a new VC venture using Smalltalk!!!!!

Tucans(sp) was cool (visualworks only), I heard that all day. Remote collaboration for Smalltalk, with an XP planing browser. What made it interesting was the ability to write code in the XP paradigm but be remotely located. It supports features like multiple cursor insertion points and auto-syncing. They also had ported the Refactory browser, and can work connect or disconnect, on reconnect it shows differences in the code bases using iconic feedback. The topic then turned to nebraska, a shared morphic desktop. Some questions about audio were raised, but everyone feels if you have a phone use the phone, don't transmit the audio, just transmit the video, a easier load on the system.

I had an opportunity to ask a dozen or so Smalltalk what they thought about the conference:

The responses were:
"Twice as many people present than I expected"
"lots more presentation"
"quality was great"
"Too bad STIC wasn't a viable presence"
"STAB is great, hope they made some money"

We suspect they did, I bet attendance was 50% more than expected. We hope they pour that profit into next year. Staffing of projects?

"We do need to lower the costs and get more people."
"Would business people come? Good question."
"Can we have it in Vancouver!!!! Ah remember the great food at OOPSLA there?"
"Can we have fewer tracks, I missed a lot of great presentations"

Our discussion then turned to the Squeak foundation? Goals? How can it work, what will it do? Would it mean stagnation. Squeak World tour is the right thing to do. We wondered about the comment yesterday 'Is Squeak free'. We really to need more advertising of what's available in our community. We as a community need to better talk about what we are doing. Does the foundation require a gatekeeper or a leader. The foundation needs to be a entity to funnel money to things like a PR person. Also a focus to assist people to focus onbuilding things for the community. Lots of discussion about how to mange source, which I redirected to what we really need is task management. Monty said we should have task pages, which must have some work description and author information. Monty said this works well, if he does this versus bullet points of what to do he finds that those tasks get completed. We can make an environment were everyone can contribute code and it would get into an image. It's a sorry state that we've not been able to do this yet. Bob's Super Swiki, not the best way to share code, but great way to share idea's.

STABLE SWIKI!!!!!!!!! Need an server to do that.

David Simmons and I chatted later in the afternoon about getting people to use Smalltalk. Smalltalk in .NET will ship to all developers.

We had lots more discussion here an hour or more, then I had some more discussion with David Simmons. David btw got mentioned in both key notes, and a few of us remarked just like Kent, David has the knobs turned well over 10. So David has a question or two for you all to answer

Question from the .NET developer:

why should I use Smalltalk?

Do we have an answer? Good question, you folks think about this for awhile, and mail David your answer dsimmons@qks.com. Also see www.qks.com


If I am a Linux user or Windows user what application would make me want to run Smalltalk? David gave some examples to me, they were not complex, just think a bit.

After this discussion we talked to David Thomas about his thoughts on the Squeak Foundation. He'll supply money, but not do it! It is up to us to find a leader to do this, and to take who every is interested in whichever direction. OK what would it look like. Simple look at Apache.org they have a system that is very successful and it works, don't reinvent the wheel. However David's Simmons thoughts on this was they are very successful because they have something people need to run!

---------
Smalltalk Sweet spots, the last story of the day.

"Check Solution Company", an IBM company
Services the cheque servicing companies that services the banks.
50+ smalltalkers onboard to write the software. Image scanning is used to image the cheque which are used for exception reporting which removes need for paper copies and then reduces costs. There products are:

Info/Express
Input/Express
Exception/Express
Inbound Return/Express
Adjustments/Express

What we faced was installed mainframe products, but their products were hard to install, configure and run. It could take months to get a system into production. So we looked at the problem and ask these questions:
Could we do it in Smalltalk?
Could we do an install in a week?
Could we have a low support cost?

Ok we could do this and we factored into our development philosophy:

Risk management
Riskiest tasks first.
Re-use
Code Ownership
Everyone/NoOne (tied to Code drop frequency)
Team Building
DISC
Values
Frequent Drops
User Involvement
Development partners
Documentation completed before core development starts
Heavy communications
5 minute rule (time before escalating the problem if you cann't understand the problem)
Co-Location
Design and development simultaneously
..
..
No Framework in use.
Large World Metaphors
Use of memory for performance
Folders - Sheets

Database interface great, Envy wonderful. Sunits is coming together.

---------

PenState another story

Adabase/Natural was used to build the orginal systems and work awhile back moved a hundred years of paper data into electronic form. 1000's of systems with a bazillion audited business rules. The rules are approved by the state's auditor general so it's very dificult and time consuming to change them. It was mentioned that if the approved rules were wrong you still have to live with them because they WERE approved. Now we wanted to move to a Web application. Solutions fire those 3270 screens images in/out of VisualWave, which then translates to HTML and sends to the Browser. Penstate is a dis-central computer organization. Each University department has freedom to pick their own databases and It systems, this means lots of diversity, so ability of VisualWorks to run everywhere is great.

We got lucky we built some student systems with VisualWave, This was very very successful, sudents could mange their records from the Dorms, versus a four hour wait inline at the records office. This success story gave us to chance to build internal IT systems for the university.

We then built a system that autobuilds domain and MVC logic for a user defined problem. We went from one application screen a day, to one an hour, 8 times more productive. When IT saw this they said "you can do what ever you want!". Now we are trying to pump XML thru VisualWave.

What we got from Smalltalk was the ability to use frameworks and we now we leverage that experience, so we know we can take a novice programmer and have him build an application in an hour.

Question:

Do those converted Mainframe programmers learn Smalltalk?

Yes but only about 50% make the transition, there complaints are they can't do 'real' programming with the framework tools. However we know that MIS people with limited computer language exposure are easily converted. We don't see the same for computer scientists, they are a problem, they have been contaminated by exposure to other languages.

Source code repository?

Presenter was the source code librarian, two days a week to management

Wow?

------------
GemStone presents a success story.

MMm hard to pick, lots of our customers were here talking at the show giving presentations, but OOCL is by far the winner.

They are a Global shipping company, and they move 5% of the world's containers.

They run the entire business on Gemstone & Smalltalk (IRIS2) which has 2600 users, and supports 120 offices for this 2.4 Billion $ company. Uses a 120GB database, and usually supports 1100 concurrent users.

The business problem. Large ships go faster at less cost! A physics problem. People want fast turnaround, but the ship needs a huge amount of containers, usually can't fill it. To solve this problem we rent space to competitors, but now how do we compete with those competitors, what prevents people from going with the lowest bidder, it goes on the same ship afterall?

Reason is ability of our software system to mange people's containers.

Example

(Monty Williams of Gemstone was kind enough to send me his notes for this example below on the 4/14/2001)

3M manufactures overhead projectors. Their information system in Asia was inefficient, i.e. they could project how many were needed for Asia each month, but only knew the exact quantities
needed in each location about a week in advance. So they used 747s to ship the projectors to exactly where they were needed. A very expensive solution.

OOCL developed a solution in VW and GemStone with the flexibility to do "just in time" routing. They put the needed projectors on a ship in the great lakes bound for Asia. Three weeks later, as the
ship nears Asia, the destinations are finalized. The correct number of projectors can be dropped at each port, including the correct number of manuals in the language needed for that destination. 3M get a much cheaper shipping solution, and a floating warehouse to boot.

Another issue some competing companies have is that they don't have globally integrated information, so they use a telex machine to move information between data centers in different regions of the globe, e.g. if a change is needed affecting a container on its way from Asia to the US.

Another issue these information islands bring is due to container location management. Suppose you ship lots of containers from Asia to New York. New York is a sink, not a source. So you wind up with too many containers in New York. The $5000 you got for shipping the container to New York is reduced by $1000 if you have to ship it (empty) by train to Houston. Its reduced $2000 more if you have to later ship the same container to Toronto by truck. So it's important to be able to globally optimize container movement and allocation if you want to be profitable.

This system was so good they decided they could sell it. They sold a 4,000 user license to a competitor COSCO , for a lot of money, Mmm anyone have a web link for a public statement from somewhere about how much this figure was? People in the know but under NDA only could grin. This product is becoming the SAP of the shipping companies.

And the convention was over. Wow so soon, where did the three days go?

General feeling we need a sending off ceremony. I asked quite a few Smalltalks about what they thought. All for one, and one for all, the conference was great!!! Perhaps too many tracks. Next year we looking forward to another smash hit.

Oh, rumors rumors rumors These are three I heard today

1) IBM and Disney together for Squeak (Rumor)
2) Microsoft to host next year as part of .NET spending (Rumor)
3) IBM to open source ALL of VisualAge including the VM? Well I did ask IBM about if they were open sourcing Envy. NO, but email Mark weitzelm@us.ibm.com about your opinion on this topic.

Are they true, who knows. Time will tell, but one might be serious, how much money is MS going to spend on .NET advertising, a billion or two, how much will Smallscript get to promote itself as part of the .NET vision, what is 1/20 of a billion of advertising?

Son of Sark? "Leader Leader we need you". Well lets just say Wednesday night had some interesting high points, laughter, and serious discussions. A search was on for a leader for the Squeak Foundation, someone thought they might do it, but I'll let him/her make the announcement.

Thanks to all that commented on the notes and submitted corrections but after 12,000 words writing I'm done talking. The week passed in a blur, and as usual I got only 16 hours of sleep, and please could the show start at 9:00 not 8AM.

Don't forget forward your positive thanks you to the STAB folks . After all they wandered out in the wilderness to host this conference, but you as a community showed them it was a great idea.

Until next year, your scribe John.