6 ms·
> Smalltalk has a filesystem: the global dictionary. That's not even close to a file system. > Sure, it's flat Right, and that makes it almost completely use
by mpweiher 5y ago
> Smalltalk has a filesystem: the global dictionary.
That's not even close to a file system.
> Sure, it's flat
Right, and that makes it almost completely useless. How are Apple DOS, CP/M etc. doing today?
But more significantly, it is not the least interoperable. How do systems outside of Smalltalk get access to the Smalltalk global? How is such access mediated? How are permissions handled? What's more, if other systems could get access to a pointer (and it didn't move out from under them during a GC), how would they be able to deal with the data?
Filesystem doesn't just mean a hierarchical directory tree with nodes, it also means interoperable, serialised representations, including but not limited to: ASCII, RTF, JPEG, PNG, PDF, JSON, HTML, etc.
Representations that can also be shipped over the wire. There is a reason the WWW was invented on a NeXT box, not on an Alto (or Dorado).
- tonyg 5y ago> That's not even close to a file system Nonetheless, Smalltalk is to Unix as globals dictionary is to file system, image is to virtual machine, etc. > How do systems outside of Smalltalk get access to the Smalltalk global? How is such access mediated? How are permissions handled? What's more, if other systems could get access to a pointer (and it didn't move out from under them during a GC), how would they be able to deal with the data? How do systems outside of Unix get access to the file system? How is such access mediated? How are permissions handled? What's more, if other systems could get access to a disk sector (and it didn't move out from under them during normal system activity), how would they be able to deal with the data? Answer these questions, and you'll have answered those you asked about Smalltalk. If you squint a little.
- abecedarius 5y agoAs Ingalls said, "An operating system is a collection of things that don’t fit into a language. There shouldn’t be one." (Yes, it's arguable.)
- jrochkind1 5y agoThe OP is about envisioning Smalltalk and Unix working together. I'm not following your point of making analogies between Smalltalk and Unix, unless... Are you suggesting Smalltalk could have/should have/was a contender to be the OS, that it would replace unix, that would have been preferable?
- tonyg 5y agoIMO, Smalltalk-the-system is best thought of as an OS, yes. (Remember how everyone ridiculed the idea of Smalltalk's images right up until virtual machines became a thing?) It has a runtime and a systems programming language, too: the Smalltalk VM, and Smalltalk-the-language. Analogously, Unix has its kernel and C, respectively. The global variables of Smalltalk are analogous to Unix files. Smalltalk processes to Unix processes. It's not a perfect analogy but I found it surprisingly useful once I stumbled across it. Preferable, though? Not sure. Certainly, as Marcel notes, a flat file system isn't the best idea; but then, is a hierarchical strict tree? (Related: https://eighty-twenty.org/2011/05/08/weaknesses-of-smalltalk-strengths-of-erlang https://eighty-twenty.org/2011/05/08/weaknesses-of-smalltalk..., https://eighty-twenty.org/2016/05/05/unix-is-incorrectly-factored https://eighty-twenty.org/2016/05/05/unix-is-incorrectly-fac...) I think you'd have to burn the disk packs (ie: neither Smalltalk nor Unix as they stand make a suitable foundation), but out of the ashes I think something largely based on Smalltalk taking into account lessons from the forty (!) years that followed it could definitely end up being preferable. Coming back to OP, and viewing Smalltalk as an operating system on equal footing with Unix: Different operating systems interact best via networks. Which neither Smalltalk-the-OS, Smalltalk-the-language, Unix-the-OS nor C-the-language support particularly well.
- jrochkind1 5y agoOK, so the OP says if smalltalk had worked with files better, maybe smalltalk on unix could have been a thing that would have changed history. Your response is... that's irrelevant because... smalltalk was really making the play to be the OS, not to work with OSs, and it works just fine with files on it's own terms, for that goal. Do I understand your argument correctly? OK, it's a perspective!
- 5y ago
- msla 5y ago> How do systems outside of Unix get access to the file system? What is the Smalltalk equivalent to NFS?
- tonyg 5y agoIf Smalltalk is pretending to be Unix, it could just speak NFS I suppose. Or use HTTP. Or 9P. Certainly there are classes in most images that model file systems. But thinking of Smalltalk as its own thing, and coming at the angle of interoperation between systems across networks at a higher level than chunks of untyped binary data, there are a few contenders: there have been various distributed Actor implementations. CORBA was available, back when that was relevant. Craig Latta has been doing some wonderful crazy things with interoperation between separate images (e.g. Context, nee Spoon: http://netjam.org/context/ http://netjam.org/context/).
- smackeyacky 5y agoUgh CORBA. It was more of a hindrance than a help when it came to interoperability.
- pjmlp 5y agoNow it is back as gRPC.
- pjmlp 5y agoXerox PARC own networking protocols https://en.m.wikipedia.org/wiki/Xerox_Star https://en.m.wikipedia.org/wiki/Xerox_Star
- igouy 5y agoPutting aside all the other `tonyg` comments: > … not the least interoperable… Well there was Distributed Smalltalk, we should be able to agree that provides something we might think of as interoperability. https://www.hpl.hp.com/hpjournal/95apr/apr95a11.pdf https://www.hpl.hp.com/hpjournal/95apr/apr95a11.pdf ---- There's stuff like https://news.ycombinator.com/item?id=29951172 https://news.ycombinator.com/item?id=29951172
- mpweiher 5y agoYes, Distributed Smalltalk was cool. But we weren't talking about the entire Smalltalk system and whether it is possible to make it interoperate. You obviously can make it interoperate in various ways. What we were talking about was the globals dictionary, the only instance of SystemDictionary, that serves as the repository of global variables in Smalltalk systems. That is not an integration point and not a filesystem, despite tonyg's insistence that since it has some very superficial similarities, it therefore is a filesystem.
- igouy 5y ago> You obviously can make it interoperate in various ways. That's sufficient clarification. (My guess is that these discussions are read mostly by people without any actual experience of Smalltalk, who may take "… not the least interoperable…" generally and literally.)