Hi Casey,
If you could make Slang suck less, what would you change?
On Mon, Oct 4, 2010 at 1:04 PM, Colin Putney <colin@wiresong.com> wrote:
This brings up a question that I've been wondering about for a while.
On Mon, Oct 4, 2010 at 11:56 AM, Andreas Raab <andreas.raab@gmx.de> wrote:
> In practice, there is a *huge* advantage for porting if all you need is a C
> compiler and a bit of knowledge about the underlying OS support.
How useful is Slang these days?
I can totally see how it would have been faster to get the new VM up
and running in Apple Smalltalk in the first place, but I'm wondering
if these days it's more trouble than it's worth. Most dynamic
languages (eg, Ruby, Python, Perl, Javascript) are implemented in
straight, idiomatic C and benefit a lot from the fact that many, many
people already have the skills needed to work with the language and
toolchain.
In contrast, the Squeak VM is written in a language that almost nobody
knows, using tools that almost nobody understands. Outside of the
current maintainers it's a very short list, and many of the people on
it aren't active in the community anymore. "Implemented in its self"
is kind of neat, but as a practical matter, Slang is not Smalltalk,
and a developer skilled in both C and Smalltalk still has a lot to
learn before he can contribute to the VM.
So here's a question to the folks that are actively hacking on the VM:
is Slang still beneficial in your day-to-day work? Do you write and
debug using the simulator? Is it worth the high barriers to entry for
the uninitiated?Slang sucks. Developing in Smalltalk is great. I like using Slang to being continually hit over the head by an ungiving guru; plenty of pain but no enlightenment. The problem is you write Smalltalk that works, push it out and when it doesn't work due to some internal Slang issue you're in a lot of pain. Do you try and fix Slang, do you mangle your Smalltalk to function within its limitations (and forget to comment why, e.g. ::loadNewPlugin: pluginString| plugin plugins simulatorClasses |transcript cr; show: 'Looking for module ', pluginString."but *why*??"(#('FloatArrayPlugin' 'Matrix2x3Plugin') includes: pluginString) ifTrue:[transcript show: ' ... defeated'. ^nil].Seriously, if anyone knows why these two are disabled *please* let me know.Yes I write and debug using the simulator. Yes it is worth the high barriers. But Slang is still a massive, fragile hack.HTHEliot
Colin