views:

143

answers:

5

I'm newbie on Smalltalk. I'm going to try Seaside framework. And Pharo seems best suitable choice for this.

My plan is developing on Mac OS X, servicing on BSD. However, there is no BSD port of Pharo yet, but there are some other Smalltalk ports like Squeak. But I'm afraid of any kind of incompatibility. So I'm asking any kind of incompatibility which I should care about.

+3  A: 

Pharo is a fork of Squeak. It's still mostly compatible depending on what you're using.

Other Smalltalks like GNU Smalltalk, Gemstone, Dolphin or VisualWorks have more incompatibilities.

The Grease compatibility layer used for porting the Seaside framework on various Smalltalk implementations may help you resolve some compatibility problems.

Alexandre Jasmin
+1  A: 

You don't mention which BSD, but FreeBSD has a port for Squeak 3.9.

Pharo and Squeak use the same VM, so you should be alright.

There have been some major advancements in the Squeak VM recently - apart from the usual bugfixing, Eliot Miranda has unleashed his Cog VM. I suspect that on *BSD you'd have to muck in and build your VM from source. Or become a port maintainer for a devel/squeak-cog-vm port?

Edit: should add that I don't mean to suggest using the Squeak 3.9 image - as Neil points out, that's ancient. Squeak images and VMs change semi-independently though, so a Pharo image that doesn't depend on running on a Cog VM or the closure-supporting one (I forget the proper name) should run just fine on the VM that FreeBSD's lang/squeak installs. (Incidentally, lang/squeak and lang/squeak-dev install the same version VM.)

Frank Shearar
Squeak 3.9 is ancient - they are currently on 4.1, which is a huge improvement on earlier releases.
anon
Yes, but the image version and the VM version are semi-independent. Up until Eliot's Cog, I'm pretty sure that the underlying VM was the same as Squeak 3.9's. And yes, image-wise, 4.1 is a LOT better than 3.9!
Frank Shearar
+1  A: 

According to this webpage http://www.seaside.st/ Seaside works well with Squeak (the web page is powered by it) and I would currently recommend Squeak over Pharo (but I don't do Seaside) - the 4.1 version of Squeak is a huge improvement on earlier releases.

anon
I'm currently playing around with Squeak 4.1 + Seaside 3.0 alpha. Haven't quite worked up the courage to go all the way to the edge of the bleeding edge by running on the Cog VM, but I'd like to.
Frank Shearar
+2  A: 

Smalltalk dialects are more or less compatible on syntax and basic features, while totally incopatible specially on GUI field. Order of compatibility would be:

  • syntax: because of simplicity of Smalltalk syntax almost fully compatible,
  • basic class library like Magnitudes/Numbers, Collections, Streams, ... quite compatible, comatibility enhanced with a Grease compatibility library,
  • Times, Files, TCP Sockets - incopatible, but with Sport compatibility layer compatible
  • FFI: incopatible, GSoC project on the way to ease differences
  • Graphics, GUI: totaly incopatible, no compatibility project on the way
Janko Mivšek
A: 

I develop in Seaside on Pharo on Mac OS-X, and deploy on Ubuntu LTS with Gemstone. Today, Cog is not yet compatible with Seaside, but I'd expect that to change real soon now. It was first announced June 20. (three weeks ago), and the first bug-fixes after wider-spread use have already been made. Lukas made available the set of unit tests that fail.

For production/commercial use, Pharo has some definite advantages over Squeak. It simply has less code, is much cleaner and most of the main Seaside developers work on Pharo.

If you have trouble building a BSD vm, ask around on the vm-dev maling list. The images will just work, you might run into problems with plugins. Pharo is just a different image on the same vm, so it should work just as well as a squeak image.

Stephan Eggermont