Hacker News new | past | comments | ask | show | jobs | submit login
Objective-Smalltalk (metaobject.com)
66 points by mpweiher on Nov 18, 2019 | hide | past | favorite | 26 comments



This paper (storage combinators are talked about in the slides) https://2019.splashcon.org/details/splash-2019-Onward-papers... is absolutely insane. It's perfectly readable, has numerous concrete examples, i love it.

My only problem with the presented technique is that it requires a highly dynamic runtime environment, and so we would be back to abandoning compile-time type safety.

Has there been any attempt to port the idea of storage combinators to compile-time type-safe programming languages ?


Thanks!

I haven’t yet made any credible attempt at typing this, my first priority was trying to get it to work and understand it.

And while currently a highly dynamic system is required, I don’t believe this is inherent, it’s just that this stuff is different enough from current practice that you need something dynamic enough to allow the deviation.

Now that it’s working, I have started to look more closely at typing it. I think it should be possible.

As a matter of fact, SCs and PIs should actually make things more static, because the combinators are configured once and then pretty much used as-is.

Any help gladly accepted and appreciated.


TIL "Ma":

https://en.wikipedia.org/wiki/Ma_(negative_space)

Ma (negative space)

Ma (間) is a Japanese word which can be roughly translated as "gap", "space", "pause" or "the space between two structural parts." The spatial concept is experienced progressively through intervals of spatial designation. In Japanese, ma, the word for space, suggests interval. It is best described as a consciousness of place, not in the sense of an enclosed three-dimensional entity, but rather the simultaneous awareness of form and non-form deriving from an intensification of vision.

Ma is not something that is created by compositional elements; it takes place in the imagination of the human who experiences these elements. Therefore, ma can be defined as experiential place understood with emphasis on interval.

Ma has also been described as "an emptiness full of possibilities, like a promise yet to be fulfilled", and as "the silence between the notes which make the music" (cf. Isaac Stern's comment below).

Other illustrations appear in this old poem:

Thirty spokes meet in the hub, though the space between them is the essence of the wheel;

Pots are formed from clay, though the space inside them is the essence of the pot;

Walls with windows and doors form the house, though the space within them is the essence of the house.


This is a pretty fundamental idea in traditional Japanese design of ... everything. Dance, calligraphy, martial arts, learning, home decorating, plates of food, pregnant pauses in poetry or drama, sometimes even in manufacturing processes.

And yet they still hound you with those 2am meetings (from wherever I am) with corporate and (still) faxed documents back and forth. Those folks still love their hand-written faxes. (I love so much about working with them, my friends, that I guess I can accommodate this quirk).



He also mentions how Japan developed a very different relation to space and time in their visual language of comics. Notably there is the technique where certain scenes do not have frame borders on the side of the edges, as if to imply that the scene is unbound and extending forever beyond the paper, just outside our view. This is not unusual in Western comics now too, but it originated from Japanese manga. Given the concept of "Ma" it makes a lot more sense now that this technique was first developed in Japan.


>Other illustrations appear in this old poem

I'm pretty sure I read sentences very much like these in a translation of some historical Chinese Daoist text.

Edit: Yup, it was Lao-Tse's "Dao De Jing".


Who actually uses Smalltalk? All I've ever seen is people talking about how great it is. What are some big examples of popular open source or commercial software built with it?


About one-third of container ships traffic is managed using Gemstone database. JP Morgan, Lifeware, Lam research and others use Smalltalk. A lot of smaller companies use Seaside (web framework). There is Moose platform for software and data analysis etc. Pharo itself is a big open-source project.


I know one very large corporation that uses it. I think that is the general pattern of it, that big companies who are very interested in not telling you what they use, use it.

You probably can get the case studies from http://www.cincomsmalltalk.com/main/



I know Intercontinental Exchange (a sort of meta exchange that owns other exchanges like the NYSE) uses Smalltalk pretty heavily. They use Gemstone as their DB.


>(a sort of meta exchange that owns other exchanges like the NYSE)

You mean the company that owns NYSE.


I mean what I said.


OK, maybe I am wrong. There is a company called Intercontinental Exchange, Inc.

Please provide any evidence that there is an exchange or meta exchange named Intercontinental Exchange.


The original version of the programming language Scratch was written in it.


Where does the name Objective-Smalltalk come from? Isn't that a bit of a pleonasm? (about to watch the video, maybe it is addressed in there)

Anyway, very curious about this!

EDIT: first slide: it's because of its relation to Objective-C. Still a funny pleonasm to me though ;)


:-)

Yes, the name is a part joke...but also part serious:

Yes, Objective-C is Smalltalk added to C, so at that level it doesn't really make sense. It does signal that it is very similar to Objective-C, but no longer with "C" as the base and Smalltalk added on top, but instead Smalltalk as the base with some ability to branch "down" to C. So same programming model, different emphasis.

That's one part of it.

The other part is realising that Brad Cox was after the concept of a Software-IC[1], and dynamic messaging was just one possible IC/Module interconnection mechanism. I like the description of Objective-C as "COM with language support".

Objective-Smalltalk extends what the "Objective" part means to cover pretty much any sort of architectural connector, in order to avoid architectural mismatch caused by our implementation mechanisms not matching the structure of the systems we want to build.

[1] https://blog.metaobject.com/2019/03/software-ics-binary-comp...


This reminds me of the General Magic / Kaleida / Taligent /Pink stuff being sorta/kinda done by Apple in the late 80s (early 90s? Both?).

There were agents and software ICs and messaging in the air! (I don't know why, because interconnect in-system and out-system all more-or-less sucked).

Like Xanadu, this was all kind of "ahead of its time" stuff, and I've never understood why it wasn't resurrected in simpler form since (yet).

What are you trying to ultimately accomplish here? It all appears quite elegant, but I'm not sure I can infer the end-game of the project or enterprise.

EDIT: Forgive me. I'm running on time-lagged batteries, and I suspect that you suggest more than I am picking up on...


The endgame is I want to change programming. It's been too sucky for too long.

Certainty of death. Small chance of success. What are we waiting for?

Quite frankly I'd be happy if someone else were to do it, but since nobody stepped up I reluctantly started (a) figuring out what was wrong and (b) fixing it.


So I have finally watched the video, read the accompanying blog post and then the "Storage Combinators" paper. All I an say is: you have a new RSS subscriber to your blog.

Have you considered showcasing Objective-Smalltalk on lobste.rs and /r/programminglanguages?

[0] https://lobste.rs/

[1] https://old.reddit.com/r/programminglanguages


Google's Fuchsia derives in part from Pink mixed with concepts from iPhone.

>Fuchsia is an open source capability-based operating system currently being developed by Google.

The source documentation describes the reasoning behind the name as "Pink + Purple == Fuchsia (a new Operating System)", which is a reference to Pink (Apple's first effort at a object-oriented, microkernel based operating system), and Purple (the original iPhone's codename)

https://www.wikipedia.org/wiki/Google_Fuchsia


Are the slides mentioned in the article ( https://github.com/ESUG/esug.github.io/raw/source/2019-Confe... ) dead for others too?


The slides are JPEG2000 compressed images in the PDF, which GitHub PDF preview doesn't handle properly, same for some Linux PDF viewers.

Fine in Adobe Reader, Apple Preview etc.


Cool, reminds me of MacRuby.

Now that Swift is open source and supported on multiple platforms maybe one day we'll see a MacRuby revival.


MacRuby kind of lives on as http://www.rubymotion.com/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: