Smalltalk Faq

Smalltalk Environment Questions:

Q: What's the deal with all these different versions, and how do I pick the best one?

A: This section of the FAQ is covered in SmalltalkEnvironmentComparisons since it is quite broad.

RefactoringBrowser Questions

Q: I'd really like to try a good RefactoringBrowser in Smalltalk. What are my options?

A: (2012)OmniBrowser? built into PharoSmalltalk 4.x. On the SqueakSmalltalk side, OmniBrowser? does not load after 3.9, so I had to give up on SqueakSmalltalk for now - RefactoringBrowser is a necessity.

Q: Is there a RefactoringBrowser available for SqueakSmalltalk, or DolphinSmalltalk (especially DolphinSmalltalk)?

A: The refactoring browser is built into the most recent versions of Dolphin Smalltalk (XP) as well as VisualWorks 7 (See and as well as Smalltalk/X (SmalltalkEcks).

A: I went searching for something like this the other day. Apparently, a group of people at CampSmalltalk started work on a Squeak port of the RefactoringBrowser, and put up a temporary home page at I believe the port is incomplete, but I haven't tried it out yet, as I'm only just starting to learn Smalltalk. The page also links to two other porting efforts, though one of the links seems to be dead.

Other Smalltalk Tools

Q: What is ENVY, and why would I need it or want it?

A: I've only used ENVY briefly, but it is a shared source repository system for Smalltalk. In short, it's the equivalent of CVS - just a lot more transparent to use. ENVY is not, to my knowledge, free - nor is it cheap. In addition, I think it's not really supported any longer. This may not be true. I know that Cincom is pushing Store for use with VisualWorks 5i.3 and up. Store is nice and it works well. -- JeffPanici

ObjectTechnologyInternational has dropped ENVY support due to their new bloatware, Eclipse: ENVY is dead.


Um, ENVY is perhaps dying, but not dead, as it is still the source code control system for VisualAge/Smalltalk. For more than you ever wanted to know about ENVY, see the book "Mastering ENVY/Developer" (disclaimer: I'm one of the people who wrote it). -- Alan Knight

Q: What is GemStone, and why would I need it or want it? Why not just use a regular database?

A: GemStone is an ObjectOrientedDatabase. And, to answer your second question:

Well, this is a huge question. It gets right into the whole OODBMS vs. RDBMS battle. First, let me say that GemStone is a fine product, but a little aged in the OODBMS space. While I'm not certain, and someone correct me if I'm wrong, I believe that GemStone/S isn't actively supported any longer and GemStone/J is all but dead. However, you can get GemStone/S for Linux as a limited development download.

You'll have to make a personal determination on whether an OODBMS or RDBMS is best for your particular situation. -- JeffPanici


Smalltalk Frameworks

Q: SmalltalkUnit (at least the one that comes with Squeak) doesn't give very informative failure messages when using "self should: [...]". Observe:

 ==== SUnit ======== Start ====
  *** FAIL ***
  24 run, 0 failed, 1 errors (50 ms)
  ---- SUnit ------- Errors ----
 ==== SUnit ========== End ====

Did it fail because I passed it a faulty Bar? Was the Quuxume out of whack? How will I know?

A: The idea with SUnit (and xUnit in general), as I understand it, is not to put in lots of informative error messages. If a test fails, run it in debug mode, you'll get a debugger, and you can see immediately why it fails. It's the simplest thing that could possibly work. And having done it both ways, I find this much less time-consuming than trying to write tests that generate informative error messages. -- AlanKnight
Does anybody have a copy of David N. Smith's Smalltalk FAQ ? Please send me a copy if you have. -- CostinCozianu


EditText of this page (last edited March 19, 2012) or FindPage with title or text search