3 ms·
I think to some extent at least, having an open-to-extension capability like what Julia offers (open multiple argument dispatch) could help with this. This isn'
by sriku 6y ago
I think to some extent at least, having an open-to-extension capability like what Julia offers (open multiple argument dispatch) could help with this. This isn't at loggerheads with the idea of an application, but let's such applications share concepts - where app2 can extend app1's concepts by defining more specialized methods. So if Instagram exposed an "image" concept (which might be named Abstract image in Julia) , Photoshop should be able to run with the provided capabilities and specialise a custom notion of image as paint on canvas" or illustrator can add "vector drawing" capabilities. Then, depending on how the specialization is done, it would be possible for Instagram to post vector drawings. (Simplifying a bit to illustrate)
This is a common enough pattern between libraries in Julia dedicated to doing very different things and yet cooperate beautifully.
- TeMPOraL 6y agoMicrosoft's COM shows that you don't need any magic features in your language - just regular late binding for functions. You can interface with COM components - the one mainstream implementation of what this article is describing - in programs written in C. Because underneath, the whole thing works by asking the OS to give you an array of function pointers in exchange for a UUID.
- sriku 6y agoI'm familiar with COM and I do think the kind of interoperability you get with open multiple dispatch is of a different character altogether. There has not been any theoretical reason why this has to be true yet, but empirically it has been surprisingly powerful in Julia. I guess Common Lispers would relate to it too.