[Newbies] Misunderstanding Squeak

Jared Hirsch jaredhirsch at yahoo.com
Mon Apr 7 21:12:30 UTC 2008

Maybe give the original smalltalk-80 blue book a try. There's a scan that is available at the squeak.org documentation page. The book is a marvel of technical exposition. It has quite a bit more code than squeak by example (not just toy code), and an excellent, comprehensive description of ALL the object classes in smalltalk-80. Believe it or not, it's a very readable language description.
    I think you'll find (or rather, I've found) that Smalltalk is a very subtly but systematically different language than, say, Java, where the OOP concept is only halfway expressed. OOP does not mean 'inheritance, encapsulation, polymorphism', or anything like that: it's live objects exchanging messages, and everything's an object down to the VM. Simpler ideas and stronger metaphors allow you to produce better results faster and more intuitively; this is why Smalltalk's a great language for prototyping, even if the finished product has to be in some other language. You'll catch on after a while; just keep at it.

----- Original Message ----
From: Nathan Lane <nathamberlane at gmail.com>
To: A friendly place to get answers to even the most basic questions about Squeak. <beginners at lists.squeakfoundation.org>
Sent: Monday, April 7, 2008 4:13:21 PM
Subject: Re: [Newbies] Misunderstanding Squeak

I just realized that I need to clarify something else, I don't have difficulty "thinking in objects", I can do that just fine, as Java and C# have both taught me this extensively. I just don't understand how to use Squeak objects to develop a useful program.

On Mon, Apr 7, 2008 at 2:11 PM, Nathan Lane <nathamberlane at gmail.com> wrote:
You guys are hitting most of my problems. Here's the way I design a new project. First, naturally I find a problem, brainstorm the general solution to the problem, then I work on two separate pieces, the underlying functionality and the user interface, be it text-based or graphical or whatever. After that I will likely compile my first partial version, and test it to see if what I get is what I expected. If not, I'll review the compile/runtime error messages (stack traces) and attempt to remedy the problem. The are other instances in which I have taken on test-based programming, which involves designing the solution, writing unit tests, then writing the code for the unit tests, refactoring, writing more tests, and repeating the process until the solution is complete. I don't understand how these sorts of processes are accomplished in the object-based system called squeak. I understand that there is still source code...to some extent, or maybe always. And
 I understand the SmallTalk (Squeak) is a managed environment, i.e. it has a runtime environment that handles types, garbage collection, etc.

I've started reading that PDF book, and I can't say that I've learned much yet. I'm also not looking for a short cut or anything. It is simply that up until I encountered Squeak (the past 18 years) I have never dealt with a visual environment that deals with development in the way that Squeak seems to. The only thing that I have ever seen that even compares (in my mind) to Squeak is Sun's Lively Kernel, an even newer innovation than Squeak. So my background is in C/C++, Java, Ruby, C#.Net, Visual Basic (6/.Net), Python, Perl, (X)HTML/CSS/Javascript/XML, PHP, and ASP.Net. How do I take what I know of those programming languages, Agile development process and such, and go forward in learning how to use Squeak?

I've heard several people state that they'll "never go back to" those languages. But I'm very certain that like each of those languages, Squeak has it's place in the circle of code, and is useful for some tasks, while other languages are useful for other tasks. So where do I start then?  Do I keep going in that free PDF book, Squeak By Example?

Does anybody see my difficulty the way I do?


On Mon, Apr 7, 2008 at 1:23 PM, Edwin Castro <edwin.gabriel.castro at lifetime.oregonstate.edu> wrote:

On Mon, Apr 7, 2008 at 12:01 PM, Nathan Lane <nathamberlane at gmail.com> wrote:
So, as a beginner, I have noted the many things people have told me about Squeak, but one thing is really bugging me, and I can't break free of it. In my experience programming is a linear task, not object-based, so how do I program using Squeak which uses "active objects"?  I don't understand.

I've seen this happen a lot when I see new programmers. They'll write single method programs that simply make library calls or implement (inline) all the functionality they need. My brother took a "learn to program" course in college (in C yuk!) and all his programming assignments looked like this. I *tried* to teach him to look for patterns and to remove dupplication but he never got the hang of it. Writing functions that could be reused was a difficult thing for him to comprehend.
I find that a lot of new programmers learn to program in a procedural style and then continue to apply that style with other languages they use even if they should use a different style. I think that working through an example to show how to think about objects would be very helpful for beginners. I would recommend David West's book, Object Thinking, but a lot of people didn't like the book. I really enjoyed the book but perhaps there are better ways to teach how to think about objects...

Beginners mailing list
Beginners at lists.squeakfoundation.org

Nathan Lane
Home, http://www.nathandelane.com
Mirror, http://nathandelane.awardspace.com

Nathan Lane
Home, http://www.nathandelane.com
Mirror, http://nathandelane.awardspace.com

You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20080407/dbfded9f/attachment.htm

More information about the Beginners mailing list