Monday, December 27, 2004

Smalltalk/MT and games

"Aura - Fate of the Ages" is a new game developed with the help of

3Dsolve and Croquet

3Dsolve is developing an application on top of Croquet.

TCAR - Tweak Core Architecture Release

Found the TCAR (Tweak Core Architecture Release) on the web. Must have missed the announcement ...

Squeak just with Tweak

Andreas Raab has created a Squeak image without Morphic and MVC - only the new Tweak UI Framework is running. Read and download the image here. (4.5 MB)

Tweak Mailinglist

There is a mailinglist for Tweak - a new UI framework for Squeak
which is used in Croquet

J2SBridge - A JDBC to Squeak Bridge

Frank Gerlach has announced a JDBC to Squeak Brige on the
Squeak Mailinglist. Read his post.

A Picture from OSVM

A Picture from the OSVM:

Wednesday, December 22, 2004


The OOVM Resilient from Lars Bak (main architect of the Java HotSpot virtual machine) is renamed to OSVM and is now provided by Esmertec. OSVM is a Smalltalk derivate for building applications for mobile devices.

The OSVM platform is based on a small object-oriented virtual machine, which runs directly on hardware without the need for an operating system. The compactness makes it possible to fit the virtual machine, core libraries, device drivers, TCP/IP networking stack, and user applications in less than 128KB of memory.
Read the product brochure to get more informations.

Looks like the Smalltalk market is constantly growing ...

Ambrai Smalltalk

Ambrai Smalltalk (1.0.5 Beta2) is available - a smalltalk system for
the mac. Read more in the announcement here ....
Click on the image to view a screenshot of their class browser:

Tuesday, December 21, 2004

Ant Debugger

Eclipse 3.1 M4 is available. One of the new features is an Ant debugger. Ant is a simplified make tool providing common build commands in XML files.

Living in a Smalltalk world you dont need such a beast. You typically automate builds by just writing Smalltalk classes, methods and expressions. So you dont have to switch the tool and technology and you can use the normal Smalltalk debugger to debug. So you have a completely different Experience then working in Java.

Eclipse as Rich Client Platform

Eclipse is slowly moving into the direction of a Rich client platform (RCP). With SWT (Standard widget toolkit) for native UI's, JFace and and an RCP toolkit it provides a nice framework for building applications. Some examples where provided at the EclipseCon 2004.
Tried the RCP framework this weekend and again my conclusion is that the weakest point in Eclipse is Java itself. By the way there is a nice lightweight alternative to RCP called RCPLite.

Monday, December 20, 2004

Squeak DVD

Marcus Denker has assembled a new Squeak DVD.
4GB of Squeak for just $14.95:

Refactoring VB code

Refactoring in Smalltalk is very easy, especially since most Smalltalk
systems have a RefactoringBrowser included. Currently doing some work
in VisualBasic I had to refactor some VB code today.

Reorganizing a program in VB is really a pain:

1. you dont have simple browsers to see senders or implementors of
a function/sub (method)
2. there are no refactoring tools (except the text editors "Replace")
3. the VB syntax is not very refactoring friendly

Especially when you rename a function you have to take care to rename
the "return assignments" too. So in

Private Function Foo(aParam As Integer) As String
  If aParam = 1 Then
    Foo = "one"
    Foo = "more"
  End If
End Function

"Foo" has to be replaced three times with "Bar"

Private Function Bar(aParam As Integer) As String
  If aParam = 1 Then
    Bar = "one"
    Bar = "more"
  End If
End Function

In Smalltalk you just rename the signature of the method and you have
powerfull tools to look at all the senders and implementors. It's time
for BASIC vendors and programmers to look at Smalltalk IDE's.

Typos in VB

Coded some stuff in VB today. While programming I had to convert some values from the model into a string representation for the UI. A little bit similar to a #displayString method in Smalltalk. So I wrote this little helper procedure:

Public Function DisplayStringForValue(ByVal vSomeValue As String) As String
  If vSomeValue = "" Then
    DisplayStringForValue = "..."
    DisplayStringForValue = vSomeValue
  End If
End Function

Unfortunately I had a little typo and the code looked like this:

Public Function DisplayStringForValue(ByVal vSomeValue As String) As String
  If vSomeValue = "" Then
    DisplayStringForValue = "..."
    DisplayStringForValue = vSomeValue
  End If
End Function

Do you notice the difference? I was first a little bit confused that my program always stopped when I used the Run button without displaying a form. But after a closer look ...

Unfortunately one has to close an "if" construct with an "end if" in VisualBasic. I havent noticed that I had an "end" instead of an "else", maybe it came exactly from a previously typed "end if".

For the VB compiler this is valid code since there is an "end" statement in Basic. It was sucessfully compiled but the "end" directly stopped my program when running.

So remember: always test and never trust your compiler, especially if you have to work with such a painfull syntax like VB has ...

Monday, December 13, 2004