Would Tunes be interested in this Object manager...?

Francois-Rene Rideau Francois-Rene Rideau <fare@tunes.org>
Thu Apr 18 02:24:02 2002


>>: Francois-Rene Rideau, Sat, 13 Apr 2002
>: Marcus Petersson, Wed, Apr 17, 2002 at 11:30:08PM +0200

>> Tunes really is into building reflective computing systems,
>> where software development is considered as one of the things to automate
>
> "Automated development" sound like buzzwords to me. Can you give an 
> example of some part of writing software you have or think should be
> automated, and how to do that?
>
Nobody suggested a _full_ automation without any human work --
that would be AI, and it seems out of reach for the foreseeable future.
But as far as _partial_ automation goes, we already have plenty of it.
Assemblers, compilers, linkers, are such semi-automatic development tools
Actually, so are interactive development environments and even
character-based consoles, as compared to manually punching cards,
or worse, directly switching digits in the computer's memory,
like Real Programmers used to do. Check Mel's story in the Jargon File.
To go beyond those things the spoiled brat that you are takes for granted,
you ought to learn about higher-order functions, static type-checking,
constraint logic programming, garbage collection, macroprocessing,
aspect-oriented programming, concurrent and distributed programming,
refactoring, and so much more, only to mention widely accepted techniques.
You could add dynamic profiling and optimization, expert systems,
declarative programming, machine learning, autonomous systems,
reactive programming, type theory and category theory, partial evaluation,
rewrite systems, and so much more.

My paper "metaprogramming and free availability of sources",
	http://fare.tunes.org/articles/ll99/
might give you a gist of the "big picture", but you it takes
learning about many of those techniques to have a good grasp of it.

There is hope for you: back in 1992, I was mostly the same C++-brainwashed
programmer as most every other computist. I grew up, since. But it takes
some desire to learn, maybe with a pinch of humility (who isn't INTP, here?).
I don't know what led you to post to this list, but it suggests you have
enough curiosity to learn.

> This sounds a bit like what I aim for. The basic idea is to disconnect the
> object implementations from any language environment, and provide wrappers
> for many different types of objects and classes.
When you grow up, you'll find that the difficult problems are with semantics,
and that you can't disconnect semantics from the language environment.
Foreign Function Interface is otherwise conceptually easy but very boring.

> "a library to handle objects and method calls, since CPUs only does
>  subroutines". That better?
Lookup the term "microcode", particularly as used in Lisp Machines.
Apart from that, microcode is usually designed to implement
a programming model rather than programming models being designed
to fit around a given microcode.

>> The very idea of specifying things in C is bad.
>> C might be an acceptable implementation language
>> (on political grounds more than on technical grounds),
>> but it is a very bad language to define and declare semantics.
> 
> And still it what everyone uses. With current system there are many things
> that can't be done without going through a C interface.
>
You are totally confused between  interfacing with C (through a FFI),
using C as a target (have you seen C code produced by Chicken, Stalin,
Gambit, Bigloo, Mercury, or any of these foo->C implementation?),
and integrating with C in direct style. In the former cases, you just use C
because it's the compulsory system's language. In the latter case, you
blankly accept the paradigm and evaluation model of C, with all its
limitations and lack of invariant-enforcement.

> In fact, I can't
> think of any mainstream system that would exist if C (or C++) didn't.
> So it has nothing to do with politics, it's more of a practical necessity.
Choosing a system because it is mainstream,
notwithstanding its technical merit or lack thereof is politics.
Why do you think people use PCs or Windows? Ever heard of LISP machines?

>> Ouch. All the disadvantages of currying, with none of the advantages.
> Why do you say that? Parameter objects are just a way of packaging
> parameters, and has nothing to do with currying, AFAIK.
"Way of packaging parameters", "nothing to do with currying". Nice oxymoron.

> [PL and OS]
You're very confused. Learn about semantics.
Maybe read my draft paper "Why a new OS".

>> PS: since you are in Chalmers, I suggest you study with Lennart Augustsson.
>> He might not share the Tunes philosophy (might not even know about it),
>
> Well, unfortunately I'm not.
Then do! Register for his courses! Move your a..!

> And besides, it probably wouldn't be much idea to bother a probably
> already busy person I have not met with various programming problems. :-/
>
If you gently follow his courses, do the recommended exercises,
watch his techniques, and otherwise learn from him, he'll appreciate.
If you don't dare bother him, you can bother his sidekicks (PhD students).
You are lucky enough to be at a learning place with great hackers at hand.
Take advantage of it, by all means! Many of us envy you.
Note that as far as bothering already busy persons you have not met,
you seem already quite well versed in it.

To Tunesers: this kind of message suggests that our website doesn't guide
newcomers well enough. Anyone wants to take it in his hands?

Yours freely,

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
[  TUNES project for a Free Reflective Computing System  | http://tunes.org  ]
The last good thing written in C was Franz Schubert's Symphony number 9.
	-- Erwin Dieterich <erwin@cvt12.verfahrenstechnik.uni-stuttgart.de>