"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Wednesday, March 09, 2005

Size Matters

Scott Hanselman writes (via Sam Gentile)...

The Size of the Framework - Sure, it's big. So was Win32, and so is sun.java.*. Programming isn't all Ruby on Rails, you know. :) The redist is 25 Meg? For what you get that's pretty cheap. That'll fit on any pen-drive and can be downloaded in a few minutes via broadband.
I was giving a tour of Squeak Smalltalk to a friend who'd never seen Smalltalk before. I did not have to explain much, just play with some objects, play with Seaside, show some browsers, a workspace, a debugger, look at some code. He got it, in bits and pieces. After a couple hours he was amazed.

He saw that the 3.7 image out of the box is about 15mb. The image I was using was about 22mb. The concept of an image, consisting of "live objects", being persistent, caught on and his eyes lit up. That 22mb contained the persistent objects that we were playing with: Powerpoint-like presentation objects, a 3D scriptable wonderland, rich text being flowed in real-time through multiple arbitrary shapes as I reshaped them. An internet browser, email, etc. A little car and steering wheel that really drives it around. A piano keyboard, and more elaborate instrumentation. All objects in the system, all the code available, all the time, multiple platforms identical, all in less than two dozen megabytes.

Live objects. *That* is amazing and he was amazed.

5 comments:

Paul Moore said...

I've played (briefly) with Squeak a couple of times now. I'd really like to "get" smalltalk - I've heard a lot of good things about it (and I'm a language junkie). But it baffles me. Not that I can't see what it can do, but that I can't see how to make it do what I want it to do.

I can't write little command line scripts. I can't see how to start writing a web application. I'd like to write a little GUI application to manipulate character data for a game I play, but I'm lost as to where to begin (don't get me started on the Squeak GUI stuff - it may be neat, but it's so nonstandard that it sucks hard enough for me to worry that my PC will disappear into a black hole...) I don't know how to start these things.

It feels like there's a whole world of neat ideas and stuff, but I can't see how to get into it. I can play with the environment, but I can't do "real work".

Don't get me wrong - I'm not criticising Smalltalk as such, but the environment it lives and works in just seems too far removed from what "most people" see as how to build computer applications.

Paul Moore said...

I've played (briefly) with Squeak a couple of times now. I'd really like to "get" smalltalk - I've heard a lot of good things about it (and I'm a language junkie). But it baffles me. Not that I can't see what it can do, but that I can't see how to make it do what I want it to do.

I can't write little command line scripts. I can't see how to start writing a web application. I'd like to write a little GUI application to manipulate character data for a game I play, but I'm lost as to where to begin (don't get me started on the Squeak GUI stuff - it may be neat, but it's so nonstandard that it sucks hard enough for me to worry that my PC will disappear into a black hole...) I don't know how to start these things.

It feels like there's a whole world of neat ideas and stuff, but I can't see how to get into it. I can play with the environment, but I can't do "real work".

Don't get me wrong - I'm not criticising Smalltalk as such, but the environment it lives and works in just seems too far removed from what "most people" see as how to build computer applications.

David said...

I agree getting started in any Smalltalk can be an uphill battle, and Squeak has a number of strange curves (like Morphic).

Here are a couple of pointers:

Try googling the Squeak Swiki for some of this. Put site:http://minnow.cc.gatech.edu/squeak at the front of your query.

I can't write little command line scripts. (I googled site:http://minnow.cc.gatech.edu/squeak command line scripts)
http://minnow.cc.gatech.edu/squeak/1914
http://minnow.cc.gatech.edu/squeak/425

Command shell has a back link to the OSProcess plug-in. That led me to this Hello World page, which might be helpful if you are starting out:
http://minnow.cc.gatech.edu/squeak/2230

I can't see how to start writing a web application. (I googled site:http://minnow.cc.gatech.edu/squeak web application)

The first link to Avi Bryant is actually a good place to start. He wrote the Seaside framework which is the leading web framework for Squeak. For a bit of Squeak Networking (and a bit of Squeak history), Lex Spoon's chapter in the NuBlue book is online and excellent:

http://www.iam.unibe.ch/~ducasse/FreeBooks/CollectiveNBlueBook/parsia%202.pdf

There are other good books at www.iam.unibe.ch/~ducasse/FreeBooks/

I'd like to write a little GUI application to manipulate character data for a game I play, but I'm lost as to where to begin (don't get me started on the Squeak GUI stuff - it may be neat, but it's so nonstandard that it sucks hard enough for me to worry that my PC will disappear into a black hole...)

Sure, Morphic is *very* different. But there are alternatives, just not widely available. Building a classic GUI isn't Squeak's strong suit either. If you want a Facade to the whole GUI thing, look at the class MCTool in Monticello.

I don't know how to start these things.

The Squeak-dev list is a good place to ask these kinds of questions.

http://lists.squeakfoundation.org/listinfo/squeak-dev

David said...

I agree getting started in any Smalltalk can be an uphill battle, and Squeak has a number of strange curves (like Morphic).

Here are a couple of pointers:

Try googling the Squeak Swiki for some of this. Put site:http://minnow.cc.gatech.edu/squeak at the front of your query.

I can't write little command line scripts. (I googled site:http://minnow.cc.gatech.edu/squeak command line scripts)
http://minnow.cc.gatech.edu/squeak/1914
http://minnow.cc.gatech.edu/squeak/425

Command shell has a back link to the OSProcess plug-in. That led me to this Hello World page, which might be helpful if you are starting out:
http://minnow.cc.gatech.edu/squeak/2230

I can't see how to start writing a web application. (I googled site:http://minnow.cc.gatech.edu/squeak web application)

The first link to Avi Bryant is actually a good place to start. He wrote the Seaside framework which is the leading web framework for Squeak. For a bit of Squeak Networking (and a bit of Squeak history), Lex Spoon's chapter in the NuBlue book is online and excellent:

http://www.iam.unibe.ch/~ducasse/FreeBooks/CollectiveNBlueBook/parsia%202.pdf

There are other good books at www.iam.unibe.ch/~ducasse/FreeBooks/

I'd like to write a little GUI application to manipulate character data for a game I play, but I'm lost as to where to begin (don't get me started on the Squeak GUI stuff - it may be neat, but it's so nonstandard that it sucks hard enough for me to worry that my PC will disappear into a black hole...)

Sure, Morphic is *very* different. But there are alternatives, just not widely available. Building a classic GUI isn't Squeak's strong suit either. If you want a Facade to the whole GUI thing, look at the class MCTool in Monticello.

I don't know how to start these things.

The Squeak-dev list is a good place to ask these kinds of questions.

http://lists.squeakfoundation.org/listinfo/squeak-dev

Paul Moore said...

Thanks for all the pointers. I also downloaded Cincom Smalltalk, which feels like a more "conventional" environment.

I'm still not 100% sure I get the image approach (I'm clinging to the standalone program model of things) but I don't feel quite as bemused. Which, I guess, is the whole point - to challenge my inbuilt prejudices.

PS I'm sorry if this gets double-posted - I don't think I'm doing anything wrong...

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.