[clean-list] Communicating with other programs

Monique Wittebrood & Marco Kesseler m.wittebrood@mailbox.kun.nl
Fri, 16 Nov 2001 16:06:25 +0100


Hi Martijn,

it is good to hear that someone is working on interfaces. I am glad.
However I must make some remarks (it's just one of the things I do to make
a living).

I know there is 'a corba interface on linux', but that is 'just' linux, and
it is not supported by the Clean team. I am glad work is being done for the
Windows platform in the form of DLL support, but again, that is 'just'
Windows.

The danger in this is that we get stuck with a big bag with different
platform dependend solutions. I would rather see 'exported Clean functions'
in good ol' object files and libraries on ALL platforms. Having those,
generating dll's, and even COM/CORBA support is something 'we the users'
can do ourselves in a relatively easy way. That is my first remark.

The second one is: I think the clean team should get its priorities
straight. A proper foreign language interface is one of The Main
Requirements for getting a lot of users working on all kinds of Clean
libraries, including IO libraries. I agree that if someone needs something,
that he should consider doing it himself. Clean needs more user
involvement. But you are the ones that have to enable this by:
a) providing the right tools, or sources if they are not yet quite right.
b) being very open about what you are doing
c) being very generous with up-to-date information about Clean

And my near final remark is a technical one. You mention that your
experimental interface allows saving the state of the clean application
before you return to C. Maybe I have misunderstood, but this seems wrong.
Are you saying that you are going to introduce an implicit state parameter
that is going to be used on subsequent calls to Clean functions? That does
not sound like these functions are going to look referentially transparent
from C. I even wonder how this is going to work with multiple threads. Why
not simply pass a reference to the state back to the calling C routine
(maybe even as a void *), so that subsequent calls can pass it in
explicitly as an argument. Add some reference counting to it, and a C
'release' and voila.


But onto another question: Why are there no Clean users who really consider
implementing the Object IO library. Well, apart from the issues above:

Linux did not start with: "hey if you want an OS, you can volunteer
building it". Most people do not have the time to start such a thing from
scratch. The most successful open-source projects do not start with
nothing. They start with a significant amount of working code that someone
(individual or company) is kind enough to donate. And then - if the code
promises something useful - you will see that people are willing to jump on
board, and do some grunt work. Some detail here, some detail there. And I
know what you are going to say: "there IS already a lot of general IO code
for the other platforms". This is true, but you will have to offer a basic
framework that already works on Linux, otherwise it is too big a task for
other people.

Just put this framework out in the open and see what happens.

cheers!
Marco