This is what Guido van Rossum (Python's creator) wrote himself about Python's differences to Smalltalk: 'Smalltalk Perhaps the biggest difference between Python and Smalltalk is Python's more "mainstream" syntax, which gives it a leg up on programmer training.
<rant> Without wanting to rag on Guido or Python per se, this is pretty much what annoys me most (on days ending with a $y) about a bunch of language arguments. The idea that "oh, we have to use a syntax that people are familiar with" compltely ignores the fact that it is the _semantics_ that matter in the usefulness and usability of a language.
Actor (from Whitewater, back in early 90's) took this viewpoint, but used Pascal syntax. C++ made the same argument - and look what they ended up with :-P . Java seems to have done it again. I fear that the problem is that once you start using the syntax from an old language you end up thinking in the manner of that language and let the exciting new stuff slip from your grasp. Write a langauge that uses the familiar old comfortable FORTRAN sysntax and I doubt you will end up with a good OOP system. Actually, I doubt you will end up with a good _anything_.
Perhaps even worse, people coming to _learn_ this new system will see that familiar syntax and stop thinking. You only have to read a bunch of java/C++ code to see that effect. Sadly of course, a new syntax doesn't always break peoples mental models and make them build a new one. I see so much C written in Smalltalk that it's not funny. And I'm not counting the deliberately C-like style of the VM code. </rant>
tim
Tim Rowledge wrote:
Perhaps even worse, people coming to _learn_ this new system will see that familiar syntax and stop thinking. You only have to read a bunch of java/C++ code to see that effect. Sadly of course, a new syntax doesn't always break peoples mental models and make them build a new one. I see so much C written in Smalltalk that it's not funny. And I'm not counting the deliberately C-like style of the VM code.
There are good reasons for the C-like style in the VM code. It originates from - limitations of the Smalltalk->C compiler, partly coming from the wish to get a ST->C-VM fast; - the goal to get mostly efficient C-code with the available ST->C compiler.
Capabilities of the ST->C compiler have been improved recently, so the programming style could be slightly more ST *now*.
In almost all other Smalltalks the VM is written *directly* in C: So in respect to have as much code as possible in ST (without loosing much speed compared to direct C programming) Squeak is very good!
Greetings,
Stephan
Stephan Rudlof wrote:
There are good reasons for the C-like style in the VM code.
Precisely - which is what I meant by "And I'm not counting the deliberately C-like style of the VM code."
Having written big chunks of CCodeGenerator, some of which are in the release and many of which you will never need to suffer, I know all too well the tradeoffs and 'interesting' problems involved. Despite which, I agree that it is much nicer to have as much as possible within the VM. I would have loved to have been able to simulate & debug the VM operation back when I was at ParcPlace!
tim
squeak-dev@lists.squeakfoundation.org