On 04 Dec 2011, at 11:11, t olschewski wrote:
I think the C world is slightly different in one important respect. In the C world layers are rather cleanly separated from one another: C (or C++) compiler, standard library, framework + application specific libraries.
In the C (or C++) world it is possible to - more or less freely - combine compiler A with IDE B, using framework C and external libraries D. After compiling the executable does not depend e.g. on the IDE anymore.
In smalltalk, if I decide to use dialect A then I feel more or less bound to using library A, IDE A and GUI framework A. The program still depends on the image type I was using in development (or even on the VM) unless I limit myself to a well-defined kernel like ansi which doesn't provide portable graphics + network APIs.
Yes, Smalltalk is an integrated system. But look at C's autoconfig, all the #ifdefs and so on; try porting from *nix to Windows or vice versa: it never will just work, and it will require a lot of work, and you will be limited to certain APIs that you depend on. Granted, the C world has more experience with this and there are much more options, but the problem remains the same. I can't imagine the amount of work required to write/port a modern hit game of PS3, Xbox 360, Wii, PC, PSP and DS for example.
My tool developed in squeak 4.1/pharo 1.1 in this spring does not run in squeak 4.2/pharo 1.3 without modifications.
It all depends on what you were using, the porting itself should not be that difficult, unless it is completely depedent on something that has gone. Sven