From: israel
Subject: Guy Steele interview in DDJ
Date: 
Message-ID: <87ekdf9ktw.fsf@kafka.homenet>
The current DDJ ( at least the latest that our antipodean
newsstands have ) has an interesting interview with Guy Steele.

He contributed to Scheme, Lisp , Java and did the first port of Tex.

From: ivant
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113389608.856439.139400@o13g2000cwo.googlegroups.com>
I couldn't undrestand what this guy stole and did they caught him?

--
Java has too few parenthesis.
From: thelifter
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <b295356a.0504131953.5a7a7bbb@posting.google.com>
israel <······@bigpond.net.au> wrote in message news:<··············@kafka.homenet>...
> The current DDJ ( at least the latest that our antipodean
> newsstands have ) has an interesting interview with Guy Steele.
> 
> He contributed to Scheme, Lisp , Java and did the first port of Tex.

Where can I read that interview on the net? I suppose Guy Steele is
not charging anyone for reading his words?
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87sm1slntc.fsf@kafka.homenet>
·········@gmx.net (thelifter) writes:

> Where can I read that interview on the net? I suppose Guy Steele is
> not charging anyone for reading his words?

Not sure, I read it at the local Borders.
They have a relaxed policy about extended browsing.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c67m9F6km2i5U1@individual.net>
israel wrote:
> The current DDJ ( at least the latest that our antipodean
> newsstands have ) has an interesting interview with Guy Steele.
> 
> He contributed to Scheme, Lisp , Java and did the first port of Tex.

I've never understood this.  How could anyone who knew Scheme and 
Lisp and even worked on Scheme standardization produce one of the 
WORST languages in the whole wide world?

How much did they pay him to forget (?) what he knew?

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Barry Margolin
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <barmar-4A715A.00244014042005@comcast.dca.giganews.com>
In article <···············@individual.net>,
 Ulrich Hobelmann <···········@web.de> wrote:

> israel wrote:
> > The current DDJ ( at least the latest that our antipodean
> > newsstands have ) has an interesting interview with Guy Steele.
> > 
> > He contributed to Scheme, Lisp , Java and did the first port of Tex.
> 
> I've never understood this.  How could anyone who knew Scheme and 
> Lisp and even worked on Scheme standardization produce one of the 
> WORST languages in the whole wide world?
> 
> How much did they pay him to forget (?) what he knew?

Guy also worked on Fortran when he was at Thinking Machines Corporation.  
He's not a language bigot.

In the case of Java, it's always seemed like it started with some good 
ideas, but as it grew it went off-track.  The original intent seems to 
have been to adopt some ideas from the Lisp world into a C-like 
framework.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
From: Sashank Varma
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1114141668.699405.268780@o13g2000cwo.googlegroups.com>
Barry Margolin wrote:

Amplifying what Barry wrote:

> Guy also worked on Fortran when he was at Thinking Machines
Corporation.
> He's not a language bigot.

He also co-wrote one of the best definitions of ANSI C with Harbison.
(I think the first edition was written while he was a professor at CMU
and an owner of Tartan Labs, a firm which wrote compilers. They needed
a definition for the language that was more precise than K&C.)

> In the case of Java, it's always seemed like it started with some
good
> ideas, but as it grew it went off-track.  The original intent seems
to
> have been to adopt some ideas from the Lisp world into a C-like
> framework.

My understanding is that he joined Sun after Gosling wrote the first
version of Java (and its predecessor, Oak). The first Java reference
manual is by Gosling and Joy, I believe. Steele's influence is obvious
in the version he later co-wrote with these other two.
From: Marlene Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Kvm7e.73685$cg1.36008@bgtnsc04-news.ops.worldnet.att.net>
> I've never understood this.  How could anyone who knew Scheme and
> Lisp and even worked on Scheme standardization produce one of the
> WORST languages in the whole wide world?

http://library.readscheme.org/page1.html

http://www.sun.com/presents/minds/2005-0302/
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7aloF6m5gtnU1@individual.net>
Marlene Miller wrote:
>>I've never understood this.  How could anyone who knew Scheme and
>>Lisp and even worked on Scheme standardization produce one of the
>>WORST languages in the whole wide world?
> 
> 
> http://library.readscheme.org/page1.html

Well, all that only makes me ask my question stronger...

> http://www.sun.com/presents/minds/2005-0302/

Thanks, insightful article.  Only the beginning sentence is quite 
funny: "are taking on an enormous challenge -- create a 
programming language better than Java."

Woooo!

Anyway, the good thing is that you can choose what language to use 
(unless your boss tells you otherwise).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <873btsrfej.fsf@kafka.homenet>
Ulrich Hobelmann <···········@web.de> writes:

>  Only the beginning sentence is quite
> funny: "are taking on an enormous challenge -- create a programming
> language better than Java."


Only fifty other languages come to mind :-)
From: =?ISO-8859-15?Q?Andr=E9_Thieme?=
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3leef$sb6$1@ulric.tng.de>
Marlene Miller schrieb:
>>I've never understood this.  How could anyone who knew Scheme and
>>Lisp and even worked on Scheme standardization produce one of the
>>WORST languages in the whole wide world?
> 
> http://www.sun.com/presents/minds/2005-0302/


I like most the following part of this article:

****************************
A couple of things happened to Steele after the specification was complete.

One was that he got a phone call from a gruff-voiced man at a small firm 
with half a dozen programmers.

"You the guy who wrote the Java spec?"

"I co-wrote it, yeah."

"Well, I just had to call to thank you. Since we switched to Java, 
productivity at our firm has quadrupled, just because Java is catching 
our mistakes."
****************************


:-)


Andr�
--
From: Marlene Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ldn7e.574986$w62.194128@bgtnsc05-news.ops.worldnet.att.net>
> I've never understood this.  How could anyone who knew Scheme and
> Lisp and even worked on Scheme standardization produce one of the
> WORST languages in the whole wide world?

I may have to write programs in a language that has this description of the
int type:

"For INT simple variables, a one-byte initialization behaves differently
from a one-byte assignment as follows:

* If you _initialize_ an INT variable with a one-byte character string, the
compiler allocates the character in the _left_ byte of the word. The right
byte is undefined.
* If you _assign_ a one-byte character string to the variable, at run-time
the system places it in the _right_ byte and sets the left byte to zero. If
you want the character to be placed in the left byte, assign a two-byte
character string that consists of a character and a blank space."

No kidding.
From: Paul Tarvydas
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3IydnW1P4JcMQ8PfRVn-tg@rogers.com>
Marlene Miller wrote:

> No kidding.

Is this related to an HP3000 per chance?
From: A.L.
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <poms5196qt2n549ar493pthdfnidnc9htd@4ax.com>
On Wed, 13 Apr 2005 22:51:38 -0500, Ulrich Hobelmann
<···········@web.de> wrote:

>israel wrote:
>> The current DDJ ( at least the latest that our antipodean
>> newsstands have ) has an interesting interview with Guy Steele.
>> 
>> He contributed to Scheme, Lisp , Java and did the first port of Tex.
>
>I've never understood this.  How could anyone who knew Scheme and 
>Lisp and even worked on Scheme standardization produce one of the 
>WORST languages in the whole wide world?

What is wrong with Java?... Please be specific.

A.L.
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c77p7F6khsloU1@individual.net>
A.L. wrote:

> On Wed, 13 Apr 2005 22:51:38 -0500, Ulrich Hobelmann
> <···········@web.de> wrote:
> 
>>israel wrote:
>>
>>>The current DDJ ( at least the latest that our antipodean
>>>newsstands have ) has an interesting interview with Guy Steele.
>>>
>>>He contributed to Scheme, Lisp , Java and did the first port of Tex.
>>
>>I've never understood this.  How could anyone who knew Scheme and 
>>Lisp and even worked on Scheme standardization produce one of the 
>>WORST languages in the whole wide world?
> 
> What is wrong with Java?... Please be specific.

Everything that's not like in Smalltalk. ;)


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7c6cF6j2jl5U1@individual.net>
Pascal Costanza wrote:
>>> I've never understood this.  How could anyone who knew Scheme and 
>>> Lisp and even worked on Scheme standardization produce one of the 
>>> WORST languages in the whole wide world?
>>
>>
>> What is wrong with Java?... Please be specific.
> 
> 
> Everything that's not like in Smalltalk. ;)

After having seen Smalltalk, OCaml and Python (even though I never 
really learnt/used them), I thought, "this is what Java *should* 
have been like", the irony being that Smalltalk is so much older 
than Java.

What's wrong?  The language sucks with lots of arbitrary 
restrictions that make my life hard (some of them the same is C, 
even though everybody says Java is so much better and 
higher-level; guess what: when I code C, my problem usually 
*never* lies with memory management).

Integers != integers; Iterators are a PITA; the syntax is 
braindead and not extensible, and far too verbose (public 
static...).  It blows that I'm forced to put *everything* in 
classes, even static methods which should really be part of 
*modules* instead.

The JVM is really bad (kindof like what I came up with after I 
studied the basics of Forth and thought about what a nice VM could 
be like; after a little while I had something resembling the JVM, 
but of course I rejected it).  It does dynamic checks all over the 
place, but even that doesn't make it safe (there was something, 
was it by Phil Wadler?, that there are some possibilities to 
circumvent the JVM security).  Even the new versions of the JVM 
that BREAK compatibility and introduce generics at the language 
level don't bother to include generics into the VM, so that the 
typecasts could be eliminated (from what I heard).  The VM also 
has no support for tail recursion (which I like).

It's unnatural that any method like stringToInt should be part of 
either the String or Integer class, or even both!  Why not have a 
module with *one* method?

The lack of first class functions means I have to use bloody crap 
like "strategy patterns", and wrap these methods in interfaces and 
classes.

Java isn't even portable.  While Scheme, Smalltalk, Lisp, ML and 
others run on tons of platforms, Java until recently didn't even 
run on the BSDs.  For exotic platforms (non x86,PPC,ARM,SPARC) you 
probably have to ask a third party for a commercial VM.

Java is full of implicit null pointers (in contrast to the option 
or maybe type in FPLs), so your program can fail any minute 
without you knowing it.  NP-exceptions are fun, right?  No, 
seriously, if you do static checking, please do it right!

Primitive types also add more fun to Java, because now every 
PrintStream or stuff like that (btw why are there Streams and 
Writers?  What's the difference anyway?) has a print(float) 
print(int) print(Object) print(char) ... method.  Beautiful!

Even more beautiful is the combination of runtime and the 
language's libraries.  Exceptions are part of the runtime, but the 
subclass "RuntimeException" doesn't have to be caught, unlike all 
others subclasses of Exception.  (yes, I know, this is enforced by 
the compiler, not the runtime)

For threads you create an object (instead of just having a 
startThread method that you pass a function).  To have the thread 
run Thread.RUN() you invoke Thread.START(), cool huh?  And this 
start() methods probably does some sweet low-level meddling with 
the VM.  Which leads me to the InterruptedException.  It has 
something to do with sleep(), but I don't know what and nobody can 
tell me.  Why can sleep be interrupted?  Don't all threads run in 
mutual isolation?  The freaking CPU should just avoid scheduling 
the thread for a while, no need to give stupid interrupt 
exceptions (and it never fired on me anyway).

That's all I can think of right now, but I'm sure there's far more 
to it.

Basically they botched up almost everything they could.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7cpsF6hjq6mU1@individual.net>
Ulrich Hobelmann wrote:

> What's wrong?  The language sucks with lots of arbitrary restrictions 

Forgot one of the more important ones that regularly annoy me: no 
multiple return values.

I end up creating a Tuple or sometimes Triple class that wraps two 
Objects, that later have to be extracted manually, 
garbage-collected (instead of just returning the stuff in two 
registers), type-casted upon extraction etc.

You get the idea.  Everything, that wasn't deemed necessary for 
coding by the Java popes, simply isn't in there!

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: alex goldman
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2385437.AXhpVU6vzy@yahoo.com>
Ulrich Hobelmann wrote:

> 
> Forgot one of the more important ones that regularly annoy me: no
> multiple return values.

This always struck me as redundant and unnecessarily complicating code in
other parts (cf function combination). You can just use tuples. For
example, in ML, if `divide` returns a tuple, and you only need the first
value, you can write:  

 let i,_ = divide x y
From: Abdulaziz Ghuloum
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <425F1065.1000806@c-s-remove-dashes.indiana.edu>
alex goldman wrote:
> Ulrich Hobelmann wrote:
> 
> 
>>Forgot one of the more important ones that regularly annoy me: no
>>multiple return values.
> 
> 
> This always struck me as redundant and unnecessarily complicating code in
> other parts (cf function combination). You can just use tuples. For
> example, in ML, if `divide` returns a tuple, and you only need the first
> value, you can write:  
> 
>  let i,_ = divide x y

Oh no.  Not again.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c9280F6ju3k4U2@individual.net>
Abdulaziz Ghuloum wrote:
> alex goldman wrote:
> 
>> Ulrich Hobelmann wrote:
>>
>>
>>> Forgot one of the more important ones that regularly annoy me: no
>>> multiple return values.
>>
>>
>>
>> This always struck me as redundant and unnecessarily complicating code in
>> other parts (cf function combination). You can just use tuples. For
>> example, in ML, if `divide` returns a tuple, and you only need the first
>> value, you can write: 
>>  let i,_ = divide x y
> 
> 
> Oh no.  Not again.

No, not again.  Let me just say that Java has no tuples with which 
to emulate MRVs.  In ML I consider a tuple to be a MV in fact :)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1vf6o12pt.fsf@tti5.uchicago.edu>
Abdulaziz Ghuloum <········@c-s-remove-dashes.indiana.edu> writes:

> alex goldman wrote:
>> Ulrich Hobelmann wrote:
>> 
>>>Forgot one of the more important ones that regularly annoy me: no
>>>multiple return values.
>> This always struck me as redundant and unnecessarily complicating
>> code in
>> other parts (cf function combination). You can just use tuples. For
>> example, in ML, if `divide` returns a tuple, and you only need the first
>> value, you can write:   let i,_ = divide x y
>
> Oh no.  Not again.

Right. Let's pretend we didn't notice the obvious.
From: Abdulaziz Ghuloum
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3p1t7$3bu$1@rainier.uits.indiana.edu>
Matthias Blume wrote:

> Abdulaziz Ghuloum <········@c-s-remove-dashes.indiana.edu> writes:
> 
> 
>>alex goldman wrote:
>>
>>>Ulrich Hobelmann wrote:
>>>
>>>
>>>>Forgot one of the more important ones that regularly annoy me: no
>>>>multiple return values.
>>>
>>>This always struck me as redundant and unnecessarily complicating
>>>code in
>>>other parts (cf function combination). You can just use tuples. For
>>>example, in ML, if `divide` returns a tuple, and you only need the first
>>>value, you can write:   let i,_ = divide x y
>>
>>Oh no.  Not again.
> 
> 
> Right. Let's pretend we didn't notice the obvious.

Right, let's pretend we can't do

(receive (i _) (divide x y)
   ...)

either.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1is2n261z.fsf@tti5.uchicago.edu>
Abdulaziz Ghuloum <········@c-s-remove-dashes.indiana.edu> writes:

> Matthias Blume wrote:
>
>> Abdulaziz Ghuloum <········@c-s-remove-dashes.indiana.edu> writes:
>> 
>>>alex goldman wrote:
>>>
>>>>Ulrich Hobelmann wrote:
>>>>
>>>>
>>>>>Forgot one of the more important ones that regularly annoy me: no
>>>>>multiple return values.
>>>>
>>>>This always struck me as redundant and unnecessarily complicating
>>>>code in
>>>>other parts (cf function combination). You can just use tuples. For
>>>>example, in ML, if `divide` returns a tuple, and you only need the first
>>>>value, you can write:   let i,_ = divide x y
>>>
>>>Oh no.  Not again.
>> Right. Let's pretend we didn't notice the obvious.
>
> Right, let's pretend we can't do
>
> (receive (i _) (divide x y)
>    ...)
>
> either.

It's not in what you can do or cannot do.  The point is that multiple
return values are redundant and overly complicated, with significant
impact on other parts of the language and to programming style.

You could write "(receive (i _) (divide x y))" even without MV.  All
you have to do is make DIVIDE return a pair or a two-element list and
implement the corresponding RECEIVE macro.
Inefficient you say?  Well, it does not have to be, and even if it were
-- that only shows that MV is nothing more than an efficiency hack.

Goto square 1.

Oh no. Not again...

Matthias
From: Steven Shaw
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <426519e2_1@news.iprimus.com.au>
Matthias Blume wrote:
> It's not in what you can do or cannot do.  The point is that multiple
> return values are redundant and overly complicated, with significant
> impact on other parts of the language and to programming style.

Can't the same be said for multiple pass-in values?
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m14qe2stcy.fsf@tti5.uchicago.edu>
Steven Shaw <···········@iprimus.com.au> writes:

> Matthias Blume wrote:
>> It's not in what you can do or cannot do.  The point is that multiple
>> return values are redundant and overly complicated, with significant
>> impact on other parts of the language and to programming style.
>
> Can't the same be said for multiple pass-in values?

Yes, indeed.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <gGO8e.22156$d5.162718@newsb.telia.net>
Matthias Blume wrote:
> Abdulaziz Ghuloum <········@c-s-remove-dashes.indiana.edu> writes:
>>Oh no.  Not again.
> 
> 
> Right. Let's pretend we didn't notice the obvious.

No, but you and others recently discussed this at length on cls (even 
though that discussion hasn't been concluded to my satisfaction yet). 
This is crossposted to cll, and we're scared that we'll get a rehash of 
many arguments without people reading the archives first.

If this is to be rediscussed (and I'm sure a lot of us, including you, 
would like a breathing break from the topic for a while), start a new 
thread on cls with a good summary of the argument for your case (seems 
to be disturbingly many, many enough that I consider this an issue that 
scheme should take seriously for possible (not saying definite) adaption 
in future standards) and against (the main one I've heard is error 
reporting... others?).

Followup set.
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uhdi9ce6r.fsf@STRIPCAPStelus.net>
Ulrich Hobelmann <···········@web.de> writes:
> Forgot one of the more important ones that regularly annoy me: no multiple
> return values.

This bugs me too. I like C#'s solution: ref and out args. And unlike C++, Ada
and Delphi, you can *see* at the call site which are the out args, e.g.

   int quotient; // no need to initialize -- first use is a write
   int remainder;
   divide(out quotient, out remainder);

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <mOGdnWZXGrRMH8PfRVn-hw@giganews.com>
Ulrich Hobelmann wrote:
> Pascal Costanza wrote:
> 
>>>> I've never understood this.  How could anyone who knew Scheme and 
>>>> Lisp and even worked on Scheme standardization produce one of the 
>>>> WORST languages in the whole wide world?
>>>
>>>
>>>
>>> What is wrong with Java?... Please be specific.
>>
>>
>>
>> Everything that's not like in Smalltalk. ;)
> 
> 
> Integers != integers; Iterators are a PITA; the syntax is braindead and 
> not extensible, and far too verbose (public static...).  It blows that 
> I'm forced to put *everything* in classes, even static methods which 
> should really be part of *modules* instead.
> 
All the same could be said of C and C++, which is what Java means to 
replace for most projects.  Allowing existing programmers to transition 
to the language was a major design goal.

> The JVM is really bad (kindof like what I came up with after I studied 
> the basics of Forth and thought about what a nice VM could be like; 
> after a little while I had something resembling the JVM, but of course I 
> rejected it).  It does dynamic checks all over the place, but even that 
> doesn't make it safe (there was something, was it by Phil Wadler?, that 
> there are some possibilities to circumvent the JVM security).
All the modern JVMs eliminate those checks during JIT when they are 
provably unnecessary.  How about security on Lisps?  Most provide the 
same wide-open security model as any other language.


   Even the
> new versions of the JVM that BREAK compatibility and introduce generics 
> at the language level don't bother to include generics into the VM, so 
> that the typecasts could be eliminated (from what I heard).  The VM also 
> has no support for tail recursion (which I like).

You seem to have it backwards.  The reason generics aren't integrated 
into the VM is explicitly for backwards compatibility with older VMs. 
The only compatibility that is broken is source compatibility, which is 
obvious.  I agree about tail recursion.  Sun's lame excuse is that their 
security model relies on maintaining the call trace.


> 
> It's unnatural that any method like stringToInt should be part of either 
> the String or Integer class, or even both!  Why not have a module with 
> *one* method?

So that you can add new types without having to modify that one 
"module".  If I add a Complex type, I would need to go and modify the 
Conversions class or whatever you'd want to call it.

> 
> The lack of first class functions means I have to use bloody crap like 
> "strategy patterns", and wrap these methods in interfaces and classes.
> 
Agreed.

> Java isn't even portable.  While Scheme, Smalltalk, Lisp, ML and others 
> run on tons of platforms, Java until recently didn't even run on the 
> BSDs.  For exotic platforms (non x86,PPC,ARM,SPARC) you probably have to 
> ask a third party for a commercial VM.

Scheme, Smalltalk, Lisp and ML implementations collectively run on many 
platforms, but few implementations are as portable as the JVM.

> Java is full of implicit null pointers (in contrast to the option or 
> maybe type in FPLs), so your program can fail any minute without you 
> knowing it.  NP-exceptions are fun, right?  No, seriously, if you do 
> static checking, please do it right!
Agreed.

> Primitive types also add more fun to Java, because now every PrintStream 
> or stuff like that (btw why are there Streams and Writers?  What's the 
> difference anyway?) has a print(float) print(int) print(Object) 
> print(char) ... method.  Beautiful!

Yes, this is an area where Smalltalk got things right.  Again, Sun's 
excuse was that they wanted to trade performance for uniformity, having 
primitive types to make JIT compilation easier.  Shortsighted in my opinion.

> 
> Even more beautiful is the combination of runtime and the language's 
> libraries.  Exceptions are part of the runtime, but the subclass 
> "RuntimeException" doesn't have to be caught, unlike all others 
> subclasses of Exception.  (yes, I know, this is enforced by the 
> compiler, not the runtime)
> 
That actually turns out to be very convenient.  When to create checked 
versus unchecked exceptions is delicate of course.

> For threads you create an object (instead of just having a startThread 
> method that you pass a function).  To have the thread run Thread.RUN() 
> you invoke Thread.START(), cool huh?  And this start() methods probably 
> does some sweet low-level meddling with the VM.  Which leads me to the 
> InterruptedException. 
You're arguing against object orientation in general here.  It doesn't 
really apply to Java specifically.

  It has something to do with sleep(), but I don't
> know what and nobody can tell me.  Why can sleep be interrupted?  Don't 
> all threads run in mutual isolation?  The freaking CPU should just avoid 
> scheduling the thread for a while, no need to give stupid interrupt 
> exceptions (and it never fired on me anyway).
You're obviously quite confused about this one.  Sleep does exactly what 
you think if noone interrupts.  Interruption is *very* important feature 
that allows inter-thread communication without complex pre-agreed upon 
condition variables.  Now, for most uses you should use condition 
variables, and you'll be just fine.

> 
> That's all I can think of right now, but I'm sure there's far more to it.
> 
> Basically they botched up almost everything they could.
> 
I think you're more emmotionally than logically involved on this one. 
Far be it from me to defend Java, but its an order of magnitude 
improvement over C++, the language it most intends to replace.  Its 
biggest strength its ability to faciliate managed team software 
development.  That sounds like a buzzword, but when companies have to 
hire several programmers with varying skill levels, its a godsend in 
productivity.  Scheme and Lisp are better general purpose languages by 
far, but the fact of the world is that people are trained on the 
imperative style, and its much easier to hire or train a Java developer 
for a large project than a Lisp programmer.  Economics rule.

	Scott


	Scott
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7gn2F61dd2dU1@individual.net>
Scott G. Miller wrote:
> You seem to have it backwards.  The reason generics aren't integrated 
> into the VM is explicitly for backwards compatibility with older VMs. 
> The only compatibility that is broken is source compatibility, which is 
> obvious.  I agree about tail recursion.  Sun's lame excuse is that their 
> security model relies on maintaining the call trace.

The 1.4 and 1.5 Runtimes aren't fully compatible with older ones. 
  Lots of programs stop working and have to be ported every time, 
some due to API changes, some due to binary incompatibility.

>> It's unnatural that any method like stringToInt should be part of 
>> either the String or Integer class, or even both!  Why not have a 
>> module with *one* method?
> 
> 
> So that you can add new types without having to modify that one 
> "module".  If I add a Complex type, I would need to go and modify the 
> Conversions class or whatever you'd want to call it.

Why?  Create a Complex module, put the type and functions in it. 
Most languages work like that!

>> Java isn't even portable.  While Scheme, Smalltalk, Lisp, ML and 
>> others run on tons of platforms, Java until recently didn't even run 
>> on the BSDs.  For exotic platforms (non x86,PPC,ARM,SPARC) you 
>> probably have to ask a third party for a commercial VM.
> 
> 
> Scheme, Smalltalk, Lisp and ML implementations collectively run on many 
> platforms, but few implementations are as portable as the JVM.

What CPUs does the JVM even support?  What about MIPS, HPPA?  What 
about slightly alternative systems?

Scheme48, SML/NJ, MLton, OCaml, PLT Scheme(?), Clisp, CMUCL(?), 
Squeak are all very portable.  Most of them are even much faster 
than Java on function calls.  Sure, the solution (as usual in 
typical Java code) is to create huge methods covering several tens 
of lines, often hundreds.

>> Primitive types also add more fun to Java, because now every 
>> PrintStream or stuff like that (btw why are there Streams and 
>> Writers?  What's the difference anyway?) has a print(float) print(int) 
>> print(Object) print(char) ... method.  Beautiful!
> 
> 
> Yes, this is an area where Smalltalk got things right.  Again, Sun's 
> excuse was that they wanted to trade performance for uniformity, having 
> primitive types to make JIT compilation easier.  Shortsighted in my 
> opinion.

They could just have the compiler transparently convert a print on 
a Character into a conversion from Char->String, for instance. 
And that's just off the top of my head.

>> For threads you create an object (instead of just having a startThread 
>> method that you pass a function).  To have the thread run Thread.RUN() 
>> you invoke Thread.START(), cool huh?  And this start() methods 
>> probably does some sweet low-level meddling with the VM.  Which leads 
>> me to the InterruptedException. 
> 
> You're arguing against object orientation in general here.  It doesn't 
> really apply to Java specifically.

True, in lots of respects (fascistoidly enforced) OO sucks.

>  It has something to do with sleep(), but I don't
> 
>> know what and nobody can tell me.  Why can sleep be interrupted?  
>> Don't all threads run in mutual isolation?  The freaking CPU should 
>> just avoid scheduling the thread for a while, no need to give stupid 
>> interrupt exceptions (and it never fired on me anyway).
> 
> You're obviously quite confused about this one.  Sleep does exactly what 
> you think if noone interrupts.  Interruption is *very* important feature 
> that allows inter-thread communication without complex pre-agreed upon 
> condition variables.  Now, for most uses you should use condition 
> variables, and you'll be just fine.

Why?  My thread, just like a forked Unix process runs 
independently from all other threads.  It *can't* be interrupted, 
to my knowledge.  The only thing in Unix is that it can receive a 
signal or write(), which would get resolved after the system call, 
or when reading(), respectively.  In Java it's all shared memory, 
no need to interfere with other threads at all, unless you enter a 
monitor.

>>
>> That's all I can think of right now, but I'm sure there's far more to it.
>>
>> Basically they botched up almost everything they could.
>>
> I think you're more emmotionally than logically involved on this one. 
> Far be it from me to defend Java, but its an order of magnitude 
> improvement over C++, the language it most intends to replace.  Its 

I recently studied C++, and it seems like an improved C at first. 
  After a while you notice the bloat, the horridness of templates etc.

Still I much prefer to code (plain) C to Java, also because I have 
better native library access (Unix libs, terminal handling if I 
want, which doesn't exist in Java) and much better startup time 
(instantly instead of several seconds on my 800MHz machine, lots 
of that is disk IO, though).

> biggest strength its ability to faciliate managed team software 
> development.  That sounds like a buzzword, but when companies have to 
> hire several programmers with varying skill levels, its a godsend in 
> productivity.  Scheme and Lisp are better general purpose languages by 
> far, but the fact of the world is that people are trained on the 
> imperative style, and its much easier to hire or train a Java developer 
> for a large project than a Lisp programmer.  Economics rule.

It's a buzzword, but you're right.  But then, if Lisp or another 
language had a powerful module system, again, Java would so lose ;)

(disclaimer, I don't know anything about asdf and the like yet)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <F7adncs1Xt4FMsPfRVn-gg@giganews.com>
Ulrich Hobelmann wrote:
> Scott G. Miller wrote:
> 
>> You seem to have it backwards.  The reason generics aren't integrated 
>> into the VM is explicitly for backwards compatibility with older VMs. 
>> The only compatibility that is broken is source compatibility, which 
>> is obvious.  I agree about tail recursion.  Sun's lame excuse is that 
>> their security model relies on maintaining the call trace.
> 
> 
> The 1.4 and 1.5 Runtimes aren't fully compatible with older ones.  Lots 
> of programs stop working and have to be ported every time, some due to 
> API changes, some due to binary incompatibility.
> 
Binary code has always been forward compatible.  Thats much better than 
many languages, including C, which are sensitive to the libraries 
changing.  At worst, all the problems you must be experiencing are 
solved by a recompile, which is identical to the "portability" you're 
referring to in other languages.

>>
>> So that you can add new types without having to modify that one 
>> "module".  If I add a Complex type, I would need to go and modify the 
>> Conversions class or whatever you'd want to call it.
> 
> 
> Why?  Create a Complex module, put the type and functions in it. Most 
> languages work like that!
> 
Including Java.  I don't understand what you're arguing about.

> Scheme48, SML/NJ, MLton, OCaml, PLT Scheme(?), Clisp, CMUCL(?), Squeak 
> are all very portable.  Most of them are even much faster than Java on 
> function calls.  Sure, the solution (as usual in typical Java code) is 
> to create huge methods covering several tens of lines, often hundreds.

What?  Who cares which is faster.  Thats a property that is usually 
irrelevant, and varies considerably from platform to platform in any 
language.

> 
> They could just have the compiler transparently convert a print on a 
> Character into a conversion from Char->String, for instance. And that's 
> just off the top of my head.
> 
Realise that there are subtle issues here.  Characters aren't just numbers.

> Why?  My thread, just like a forked Unix process runs independently from 
> all other threads.  It *can't* be interrupted, to my knowledge.  The 
> only thing in Unix is that it can receive a signal or write(), which 
> would get resolved after the system call, or when reading(), 
> respectively.  In Java it's all shared memory, no need to interfere with 
> other threads at all, unless you enter a monitor.
> 
Interrupt is just a communications technique, nothing more.  You may not 
like it, others do.  Unix threads aren't the panacea of threading, btw.
> 
> Still I much prefer to code (plain) C to Java, also because I have 
> better native library access (Unix libs, terminal handling if I want, 
> which doesn't exist in Java) and much better startup time (instantly 
> instead of several seconds on my 800MHz machine, lots of that is disk 
> IO, though).

Sure, but all of those libraries are platform specific, so you're no 
longer portable.  The startup time is an issue, but one that will be 
addressed.
> 
> It's a buzzword, but you're right.  But then, if Lisp or another 
> language had a powerful module system, again, Java would so lose ;)
> 
> (disclaimer, I don't know anything about asdf and the like yet)

I disagree.  Lisp isn't losing to Java because of its module system, its 
  losing due to huge momentum behind C-like languages and better marketing.

	Scott
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7ur0F6mcalsU1@individual.net>
Scott G. Miller wrote:
>>> So that you can add new types without having to modify that one 
>>> "module".  If I add a Complex type, I would need to go and modify the 
>>> Conversions class or whatever you'd want to call it.
>>
>>
>>
>> Why?  Create a Complex module, put the type and functions in it. Most 
>> languages work like that!
>>
> Including Java.  I don't understand what you're arguing about.

That any function that has Complex as a source or result type 
needs to be in the Complex class.  If I want string->complex, and 
this isn't in the complex class distribution, and it isn't in 
String, obviously, then what do I do?  In another language I can 
write a stringToComplex function *anywhere*.  In Java I have to 
put it into a class, why?  And it's static, a very descriptive 
keyword for something that's just supposed to be a function, and 
doesn't even *want* to be part of a class in the first place. 
Doesn't make code very readable.

And for all Java basic types a single conversion module that's 
part of the standard java.lang import would have been much nicer. 
  Now we have Integer.toString() and String.intValue() or stuff 
like that, where any function appears twice.

>> Scheme48, SML/NJ, MLton, OCaml, PLT Scheme(?), Clisp, CMUCL(?), Squeak 
>> are all very portable.  Most of them are even much faster than Java on 
>> function calls.  Sure, the solution (as usual in typical Java code) is 
>> to create huge methods covering several tens of lines, often hundreds.
> 
> 
> What?  Who cares which is faster.  Thats a property that is usually 
> irrelevant, and varies considerably from platform to platform in any 
> language.

But if a language is already portable, speed is nice, too.  I 
mentioned it, because Squeak (which is probably slower), CLisp and 
Scheme48 are written in subsets of their own language, which is 
nice, too, and much more maintainable than writing them in C.

When I say portable, Java zealots cry that Java is frigging fast. 
  To me even the simple scheme48 seems a lot faster in many cases, 
but that's probably not much monolithic inline code, but lots of 
funcalls.

>> They could just have the compiler transparently convert a print on a 
>> Character into a conversion from Char->String, for instance. And 
>> that's just off the top of my head.
>>
> Realise that there are subtle issues here.  Characters aren't just numbers.

But they fit into 32bits just as well.  And the compiler knows the 
type, so it can insert the appropriate conversion.  Anyway, I 
suspect Smalltalk compilers/JITers do just that with chars and 
numbers, no need to box everything everywhere.

>> Why?  My thread, just like a forked Unix process runs independently 
>> from all other threads.  It *can't* be interrupted, to my knowledge.  
>> The only thing in Unix is that it can receive a signal or write(), 
>> which would get resolved after the system call, or when reading(), 
>> respectively.  In Java it's all shared memory, no need to interfere 
>> with other threads at all, unless you enter a monitor.
>>
> Interrupt is just a communications technique, nothing more.  You may not 
> like it, others do.  Unix threads aren't the panacea of threading, btw.

Processes or pthreads + shared mem, I think it doesn't make a 
difference.  I don't know what interrupts in threading systems (as 
a communication thing) are and what they do.  Do you have a 
reference?  Honestly this puzzles me, since I don't think I know 
nothing about OSes and threading, but I never heard of interrupts 
before.

>> Still I much prefer to code (plain) C to Java, also because I have 
>> better native library access (Unix libs, terminal handling if I want, 
>> which doesn't exist in Java) and much better startup time (instantly 
>> instead of several seconds on my 800MHz machine, lots of that is disk 
>> IO, though).
> 
> 
> Sure, but all of those libraries are platform specific, so you're no 
> longer portable.  The startup time is an issue, but one that will be 
> addressed.

They seems to run on Linux, the BSDs, the Mac, probably Solaris 
und HP-UX (I guess, since these libs *are* kind of standard).  On 
Windows probably only straight POSIX runs, but not the terminal 
stuff, but I don't know much about NT's POSIX emulation.  X Window 
also runs quite portably if you need it to.

>> It's a buzzword, but you're right.  But then, if Lisp or another 
>> language had a powerful module system, again, Java would so lose ;)
>>
>> (disclaimer, I don't know anything about asdf and the like yet)
> 
> 
> I disagree.  Lisp isn't losing to Java because of its module system, its 
>  losing due to huge momentum behind C-like languages and better marketing.

Well, that's like the Mac sales having slower growth than PC 
sales.  Absolutely they still increase their numbers.  Of course 
all the world jumps on standard technology immediately, since 
there is a large market for work.  That doesn't mean that Lisp is 
losing.  At least Kenny Tilton often posted in c.l.l that he 
notices quite a "surge" in interest.

To me losing means that a language would just waste my time 
compared to another.  So it's more of a technical sense.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Barry Margolin
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <barmar-56BC87.21340914042005@comcast.dca.giganews.com>
In article <···············@individual.net>,
 Ulrich Hobelmann <···········@web.de> wrote:

> Scott G. Miller wrote:
> >>> So that you can add new types without having to modify that one 
> >>> "module".  If I add a Complex type, I would need to go and modify the 
> >>> Conversions class or whatever you'd want to call it.
> >>
> >>
> >>
> >> Why?  Create a Complex module, put the type and functions in it. Most 
> >> languages work like that!
> >>
> > Including Java.  I don't understand what you're arguing about.
> 
> That any function that has Complex as a source or result type 
> needs to be in the Complex class.  If I want string->complex, and 
> this isn't in the complex class distribution, and it isn't in 
> String, obviously, then what do I do?  In another language I can 
> write a stringToComplex function *anywhere*.  In Java I have to 
> put it into a class, why?  And it's static, a very descriptive 
> keyword for something that's just supposed to be a function, and 
> doesn't even *want* to be part of a class in the first place. 
> Doesn't make code very readable.

You're arguing against the whole class of languages that are "OO all the 
way down".  That's just the nature of this type of programming language: 
everything is in a class.  Smalltalk, the archetype of OO languages, 
also requires everything to be in a class.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c92a6F6ju3k4U3@individual.net>
Barry Margolin wrote:
> You're arguing against the whole class of languages that are "OO all the 
> way down".  That's just the nature of this type of programming language: 
> everything is in a class.  Smalltalk, the archetype of OO languages, 
> also requires everything to be in a class.

I guess so.  I can't see any real reason to force the user to 100% 
OO, when any procedural language can perfectly integrate OO as 
well, with no forcing the user to anything.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Bruce Hoult
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <bruce-BDA36B.17261815042005@news.clear.net.nz>
In article <····························@comcast.dca.giganews.com>,
 Barry Margolin <······@alum.mit.edu> wrote:

> In article <···············@individual.net>,
>  Ulrich Hobelmann <···········@web.de> wrote:
> 
> > That any function that has Complex as a source or result type 
> > needs to be in the Complex class.  If I want string->complex, and 
> > this isn't in the complex class distribution, and it isn't in 
> > String, obviously, then what do I do?  In another language I can 
> > write a stringToComplex function *anywhere*.  In Java I have to 
> > put it into a class, why?  And it's static, a very descriptive 
> > keyword for something that's just supposed to be a function, and 
> > doesn't even *want* to be part of a class in the first place. 
> > Doesn't make code very readable.
> 
> You're arguing against the whole class of languages that are "OO all the 
> way down".  That's just the nature of this type of programming language: 
> everything is in a class.  Smalltalk, the archetype of OO languages, 
> also requires everything to be in a class.

That turns out not to be the case.  Dylan is "OO all the way down" but 
methods do not belong in classes.

-- 
Bruce |  41.1670S | \  spoken |          -+-
Hoult | 174.8263E | /\ here.  | ----------O----------
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <91su515hh112ub62dieigd5o8p6bu39tu2@4ax.com>
On Fri, 15 Apr 2005 17:26:18 +1200, Bruce Hoult <·····@hoult.org>
wrote:


>That turns out not to be the case.  Dylan is "OO all the way down" but 
>methods do not belong in classes.

BTW, does Dylan have macros 'a la lisp'?  I always wondered if it was
possible with a traditional infix syntax...
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c99nrF6j047qU1@individual.net>
Fernando Rodriguez wrote:
> On Fri, 15 Apr 2005 17:26:18 +1200, Bruce Hoult <·····@hoult.org>
> wrote:
> 
>>That turns out not to be the case.  Dylan is "OO all the way down" but 
>>methods do not belong in classes.
> 
> BTW, does Dylan have macros 'a la lisp'?  I always wondered if it was
> possible with a traditional infix syntax...

Yep, for example check out Jonathan Bachrach's work on "Dylan Procedural 
Macros" and even "The Java Syntactic Extender". See 
http://people.csail.mit.edu/people/jrb/jrb.html

It's not as straightforward as in Lisp, though.

Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Bruce Hoult
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <bruce-7FCA5E.21194315042005@news.clear.net.nz>
In article <··································@4ax.com>,
 Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> wrote:

> On Fri, 15 Apr 2005 17:26:18 +1200, Bruce Hoult <·····@hoult.org>
> wrote:
> 
> 
> >That turns out not to be the case.  Dylan is "OO all the way down" but 
> >methods do not belong in classes.
> 
> BTW, does Dylan have macros 'a la lisp'?  I always wondered if it was
> possible with a traditional infix syntax...

Dylan has macros, but quite different to the defmacro ones in CL.  
They're based on pattern matching and replacement on strings of tokens.  
Pretty much all of the "standard" syntax provided by a Dylan compiler is 
in fact a set of macros in a standard library.  You can see the ones 
from Gwydion Dylan here:

http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi/trunk/src/d2c/runtime/dyl
an/macros.dylan?rev=9533&view=markup

Here's a some typical simple examples:

define macro while
    { while (?:expression) ?:body end }
      => { begin
             local method loop () 
                     if (?expression)
                       ?body;
                       loop();
                     end;
                   end;
             loop();
           end }
end

define macro \&
    { \& (?left:expression, ?right:expression) }
     => { if (?left) ?right end }
end;

define macro \|
    { \| (?left:expression, ?right:expression) }
      => { let temp = ?left; if (temp) temp else ?right end }
end;


Obviously there are things you can do in CL that you can't do with Dylan 
macros, but they turn out to be good enough to implement probably 90% of 
what is in _On Lisp_.

-- 
Bruce |  41.1670S | \  spoken |          -+-
Hoult | 174.8263E | /\ here.  | ----------O----------
From: Bruce Lewis
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <nm94qe9w9ok.fsf@all-night-tool.mit.edu>
"Scott G. Miller" <········@freenetproject.org> writes:

> Scheme and Lisp are better general purpose languages by
> far, but the fact of the world is that people are trained on the
> imperative style

Imperative style is easy to do in Scheme, and I haven't seen anything in
CL that would make it hard there either.

> and its much easier to hire

You will find more resumes with "Java" on them, yes.  The question is
how many of these resumes describe people who can contribute good code.

> or train a Java
> developer for a large project than a Lisp programmer.

I would like to see this claim backed up.  I really don't think most
people are going to require a lot of time transitioning from f(a, b) to
(f a b).

> Economics rule.

Only in the long run.  For short to medium time periods, inertia rules.
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113501817.919769.54420@f14g2000cwb.googlegroups.com>
Bruce Lewis wrote:
> "Scott G. Miller" <········@freenetproject.org> writes:
> Imperative style is easy to do in Scheme, and I haven't seen
> anything in CL that would make it hard there either.
>
> > and its much easier to hire
>
> You will find more resumes with "Java" on them, yes.  The question
> is how many of these resumes describe people who can contribute
> good code.
>
> > or train a Java
> > developer for a large project than a Lisp programmer.
>
> I would like to see this claim backed up.  I really don't think
> most people are going to require a lot of time transitioning from
> f(a, b) to (f a b).
>
> > Economics rule.
>
> Only in the long run.  For short to medium time periods, inertia
rules.

I do think that "economically," Java has an enormous advantage. Who are
the decisionmakers, who decide which tool is used? I would say
management. Those decisionmakers would like to apply mass production
principles to software. How do you do that? Make sure your tools can't
cut everything and encourage specialization, so your organization can
scale with many commodity programmers working under "architects."

I think that's a reasonable, idealized model of what this
decisionmaking segment desires. If you were to convene a focus group, I
think managers would voice a desire for control and consistency; the
ability to add more manpower which would lead to at least linear
productivity improvements.

For our part, technocrats generally desire our tech to have the quality
of genius, and are annoyed when these Dilbertian capitalists obstruct
us. We are biased in favor of technological solutions, even when not
economical.
From: Steven E. Harris
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <jk4hdi8j6p4.fsf@W003275.na.alarismed.com>
"Tayssir John Gabbour" <···········@yahoo.com> writes:

> Make sure your tools can't cut everything and encourage
> specialization

Is this tools constraint a figure of speech or a reference to some
real-world example of management control? I know you often quote David
Noble, and wonder if he's involved here.

-- 
Steven E. Harris
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113867196.762952.218680@g14g2000cwa.googlegroups.com>
Excuse me; for some reason I missed your response.

Steven E. Harris wrote:
> "Tayssir John Gabbour" <···········@yahoo.com> writes:
> > Make sure your tools can't cut everything and encourage
> > specialization
>
> Is this tools constraint a figure of speech or a reference to some
> real-world example of management control? I know you often quote
> David Noble, and wonder if he's involved here.

I'm sure he was in the back of my mind, but I remember thinking of how
McDonald's works, a bit of Taylorism / mass production, and stuff from
Adam Smith's "Wealth of Nations".

Here's the first talking point of the 1996 Java whitepaper:

"Primary characteristics of the Java programming language include a
simple language that can be programmed without extensive programmer
training while being attuned to current software practices. The
fundamental concepts of Java technology are grasped quickly;
programmers can be productive from the very beginning."
http://java.sun.com/docs/white/langenv/Intro.doc2.html#349

The knife is a versatile, powerful tool in the hands of a skilled chef.
But one would be thoughtlessly negligent to introduce it as a real tool
in McDonald's; you can almost imagine a bloodbath. ;) The people who
work there don't have "extensive culinary training."

"The fundamental concepts of McDonald's kitchens are grasped quickly;
employees can be productive from the very beginning."


When I look at that Java whitepaper quote, I think that Lisp had it's
day in the sun because AI promised to automate programmers away. A
technological solution to a human problem.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cjaatF6mbitiU1@individual.net>
Tayssir John Gabbour wrote:
> Here's the first talking point of the 1996 Java whitepaper:
> 
> "Primary characteristics of the Java programming language include a
> simple language that can be programmed without extensive programmer
s/simple/rather complicated/
> training while being attuned to current software practices. The
> fundamental concepts of Java technology are grasped quickly;
> programmers can be productive from the very beginning."
s/can be /can't be very /
> http://java.sun.com/docs/white/langenv/Intro.doc2.html#349

Yes, I tutored non-CS students in Java, and after a while they 
could do basic stuff, but because Java is so complicated they 
weren't really good (and teaching it as a first language hardly 
effective).  Even (most) beginning CS students can't even produce 
really decent (nicely factored, long term maintainable) programs 
in Java in my experience (after, say, one semester).

> The knife is a versatile, powerful tool in the hands of a skilled chef.
> But one would be thoughtlessly negligent to introduce it as a real tool
> in McDonald's; you can almost imagine a bloodbath. ;) The people who
> work there don't have "extensive culinary training."

Java is a blunt knife.  If you *really* know it inside out you 
might make some great cuts, but a normal programmer will create 
bloated programs with it, because it seems hard to get the right 
level of factoring in Java done right.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Adrian Kubala
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <slrnd693ov.he0.adrian-news@sixfingeredman.net>
Ulrich Hobelmann <···········@web.de> schrieb:
> Even (most) beginning CS students can't even produce really decent
> (nicely factored, long term maintainable) programs in Java in my
> experience (after, say, one semester).

I like how highly you qualified that, when I wouldn't hesitate to say
that most professional programmers can't write decent programs in any
language.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3clh82F6ph0guU2@individual.net>
Adrian Kubala wrote:
> Ulrich Hobelmann <···········@web.de> schrieb:
> 
>>Even (most) beginning CS students can't even produce really decent
>>(nicely factored, long term maintainable) programs in Java in my
>>experience (after, say, one semester).
> 
> 
> I like how highly you qualified that, when I wouldn't hesitate to say
> that most professional programmers can't write decent programs in any
> language.

I only wish people would recognize that, so that I could get a 
development job for an insanely high hourly wage ;)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Karel Miklav
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3nu6601514@enews1.newsguy.com>
Tayssir John Gabbour wrote:
> For our part, technocrats generally desire our tech to have the quality
> of genius, and are annoyed when these Dilbertian capitalists obstruct
> us. We are biased in favor of technological solutions, even when not
> economical.

Right. But we're not losers, as the economical is not our primary motive
anyway. Right?
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <T9Q8e.134897$dP1.473445@newsc.telia.net>
Karel Miklav wrote:
> Tayssir John Gabbour wrote:
> 
>>For our part, technocrats generally desire our tech to have the quality
>>of genius, and are annoyed when these Dilbertian capitalists obstruct
>>us. We are biased in favor of technological solutions, even when not
>>economical.
> 
> 
> Right. But we're not losers, as the economical is not our primary motive
> anyway. Right?

But the world ends up losing if an inferior technical solution is the 
standard.
From: BR
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.18.22.20.54.427671@comcast.net>
On Mon, 18 Apr 2005 15:14:59 +0000, Sunnan wrote:

> But the world ends up losing if an inferior technical solution is the
> standard.

Maybe in an absolute sense they do.
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113868527.234150.195080@o13g2000cwo.googlegroups.com>
Karel Miklav wrote:
> Tayssir John Gabbour wrote:
> > For our part, technocrats generally desire our tech to have the
> > quality of genius, and are annoyed when these Dilbertian
> > capitalists obstruct us. We are biased in favor of technological
> > solutions, even when not economical.
>
> Right. But we're not losers, as the economical is not our primary
> motive anyway. Right?

Right. The Parecon guys convincingly explain that us professionals are
a 3rd class, at least in US society.
http://discuss.joelonsoftware.com/default.asp?off.9.98430.5

Martin Luther King mentioned "the Moloch of technology" which
threatened to automate people away from manufacturing, for service jobs
with less pay. So while tech is neutral, certain kinds of technology
can attack people. (Just as in a war, who are the soldiers and the
bombed? Isn't it the poor? ;) Weaponmakers profit, just as we saw in
Schindler's List. And Lisp's history is intertwined with DARPA.)

If we don't talk about these topics today, it isn't because tools are
fundamentally good. Paul Graham explains how the PR industry affects
journalism, from his personal experience:
http://paulgraham.com/submarine.html
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cj9skF6mfi33U1@individual.net>
Tayssir John Gabbour wrote:
> Martin Luther King mentioned "the Moloch of technology" which
> threatened to automate people away from manufacturing, for service jobs
> with less pay.

True, jobs shift from manufacturing to service jobs.  But it can't 
be said that therefore the service jobs are all low pay.  The 
money still has to go somewhere, right?  If a company makes 
billions, the shareholders profit, and the shareholders will in 
turn do something with that money, such as spend on maybe 
higher-end services.  As in any industry services will cover a 
broad spectrum, as will their jobs.

IMHO automating people away is good and in fact the goal of all 
IT.  If I can make manual work unnecessary with whatever software 
I produce, then I will have succeeded.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <bM09e.22199$d5.163059@newsb.telia.net>
Ulrich Hobelmann wrote:
> The money still has to go somewhere, right?

That's a dangerous oversimplification.

If most tasks are automated away, then why would the consumers get paid 
money to consume goods with? Money have no intrinsic value; they're 
tokens to represent the value (trade value rather than use value, 
unfortunately) of produced goods and services.

I do support automatisation (as long as it's done with sustainable 
developement and environmental issues in mind), but the idea of monetary 
systems might need some reworking.

In *theory*, the "perfect" economy to me is a gift economy where the 
benefits of goods, services, art and science are produced and 
distributed in a reasonable, voluntary fashion. I do think the ideal of 
"from each according to ability (or less if society's need is less), to 
each according to need" might be a nice idea to start with.

The extent of which this is available is of course dependent on 
processes and protocols, possibly aided by computation technology, that 
humanity can come up with. I'm very optimistic of the notion that 
corporate capitalism will be replaced by another system. My personal 
preference is for systems that are democratic, 
decentralized/distributed, bottom-up decision making (decisions being 
taken primarily by those affected), consensus and/or individual rights 
over majority decision, non-routine, varied work, and free access to 
human knowledge.

YMMV, of course. This is all IMO.
From: BR
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <pan.2005.04.19.07.02.05.129373@comcast.net>
On Tue, 19 Apr 2005 05:35:03 +0000, Sunnan wrote:

> YMMV, of course. This is all IMO.

Well whatever we come up with. For it to be successful, it'll have to take
human nature (good and bad) into account.
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <me79e.22235$d5.163134@newsb.telia.net>
BR wrote:
> Well whatever we come up with. For it to be successful, it'll have to take
> human nature (good and bad) into account.

Of course. I'm hoping several alternatives will be tried, 
simultaneously, in a style that almost looks organic/evolutionary.

I've heard this "human nature" argument against post- or anticapitalism 
before, but I don't think it holds, not in my intuition.

To me, it looks like corporate capitalism rewards some good aspects of 
human nature (production of goods and services, not all of them useful) 
but also rewards many aspects that I personally (YMMV) find "evil" or at 
least wasteful - such as the extreme amounts of commercial solicitation 
and the way the advertizing industry looks today, or the very 
hierarchical nature of many large corporations. I find that production 
of essential goods and services are often done by minimum or low wage 
workers, while other positions in our society (investors and/or ad 
firms) are disproportionately rewarded.

That last paragraph came out weird, but to summarize - I don't think 
that the current system does a very good job at taking both good and bad 
aspects of human nature into account; I hope we can do better.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <3ckfsfF6m1p62U1@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> The money still has to go somewhere, right?
> 
> 
> That's a dangerous oversimplification.
> 
> If most tasks are automated away, then why would the consumers get paid 
> money to consume goods with? Money have no intrinsic value; they're 
> tokens to represent the value (trade value rather than use value, 
> unfortunately) of produced goods and services.

Because consumers work in the growing service sector, which can't 
be automated away.  Sure, there's room; imagine a caf� with robot 
servers ;)

Still, there's always creative work to do.

> I do support automatisation (as long as it's done with sustainable 
> developement and environmental issues in mind), but the idea of monetary 
> systems might need some reworking.

Sustainable and environmental is important, yes; one (rare) 
example where we actually need more laws instead of less.

> In *theory*, the "perfect" economy to me is a gift economy where the 
> benefits of goods, services, art and science are produced and 
> distributed in a reasonable, voluntary fashion. I do think the ideal of 
> "from each according to ability (or less if society's need is less), to 
> each according to need" might be a nice idea to start with.

Capitalism allows you trade voluntarily.  If you want to exchange 
things for free (like BSD or GPL licensed), then go ahead, it's 
all legal.

The problem with your mentioned idea is that it doesn't work.  In 
capitalism people decide if they buy your stuff or not.  If your 
ability is not sufficiently useful to society (so that really 
nobody gives you money for what you do), you'll have to live on 
welfare (yes, welfare is good: give every citizen the same amount 
of money; no bureaucracy; watch them spend it).

> The extent of which this is available is of course dependent on 
> processes and protocols, possibly aided by computation technology, that 
> humanity can come up with. I'm very optimistic of the notion that 
> corporate capitalism will be replaced by another system. My personal 
> preference is for systems that are democratic, 
> decentralized/distributed, bottom-up decision making (decisions being 
> taken primarily by those affected), consensus and/or individual rights 
> over majority decision, non-routine, varied work, and free access to 
> human knowledge.

Capitalism is democratic (the political system around it), ok 
there's lots of corruption, but we *could* make laws for really 
harsh punishment there, if the lawmakers wouldn't for *some 
reason* oppose that.  It's decentralized, bottom-up (the traders 
make the decisions).  You can cooperate with people by creating a 
common company with everybody holding part of the shares.  You can 
have individual decisions by everybody having their own company 
and interacting in an exchange of services.

The problems we have right now are mainly lack of freedom on one 
hand, lack of human rights, corruption, and environment 
enforcement on the other.  It's about freedom and responsibility 
(i.e. not harming anybody with that freedom).

Free access to human knowledge can be done by government (force 
all tax-funded research to be published for free on the web), or 
in the case of private institutions, you can still ask people.  If 
they don't open research, tough shit, others will discover the 
same stuff.

> YMMV, of course. This is all IMO.

Same here :)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <4082D004.8060702@handgranat.org>
Ulrich Hobelmann wrote:
 > Because consumers work in the growing service sector, which can't be
 > automated away.  Sure, there's room; imagine a caf� with robot servers ;)

IIRC, McDonalds are already trying that idea in some restaurants.

 > Still, there's always creative work to do.

But everyone wants to be an artist...

 > Sustainable and environmental is important, yes; one (rare) example
 > where we actually need more laws instead of less.

More laws might be one way to solve or alleviate problems, but we also 
have to look at other solutions. I was involved with the Zero Emissions 
Research Initiative at one point (many years ago), http://www.zeri.org/ 
(Note that they aren't anti-capitalist - their schtick is that 
environmentalism and sustainable development can be profitable since 
waste is just that, waste, and you lose something if you waste it. Note 
also that many corporations are rather trying to find "the sweet spot" 
(possibly unsustainably) between waste and reuse, if the cost of entry 
and/or maintenance of reuse seems to be larger than the gain.)

 >> In *theory*, the "perfect" economy to me is a gift economy where the
 >> benefits of goods, services, art and science are produced and
 >> distributed in a reasonable, voluntary fashion. I do think the ideal
 >> of "from each according to ability (or less if society's need is
 >> less), to each according to need" might be a nice idea to start with.
 >
 >
 > Capitalism allows you trade voluntarily.  If you want to exchange things
 > for free (like BSD or GPL licensed), then go ahead, it's all legal.

Capitalism "allows" me to do it, but it's orthogonal to it. Free 
exchange is legal, but it's not capitalism. Proprietarian corporations 
(e.g. Microsoft, Adobe) are threatened by free software and use patents, 
propaganda and other techniques to try to hinder it.

I do believe that things free exchange, gifts, pooling and commons will 
continue to rise and that this will supplant capitalism to a greater degree.

 > The problem with your mentioned idea is that it doesn't work.  In
 > capitalism people decide if they buy your stuff or not.  If your ability
 > is not sufficiently useful to society (so that really nobody gives you
 > money for what you do),

But capitalism doesn't necessarily work, either. Products that are less 
than useful to society can still be popular, through market and/or legal 
pressure. (Examples: Pepsi and Coke, Fanta in developing countries.)

Another problem that is becoming more significant during the recent 
centuries is that the market economy prices goods and services after 
trade value, not use value.

This can sometimes lead to problems, like the tulip craze in Holland a 
few centuries ago, or the real estate market collapse in Japan a few 
years ago (the latter was admittedly escalated by government-induced 
hyperinflation, but I argue that one of the problems was that the market 
value was higher than the use value).

An example that's closer to hand for comp.lang.* folks is this:

Most people here are programmers, many of which would like to have food 
on the table, right? Well, many companies (such as Adobe, Macromedia, 
Apple) view software as goods, as products, that they try to "sell" on 
the market. The problem is, with software the initial cost is high, and 
the reproduction cost is low. In order to pay for the high initial 
costs, companies use their government-granted "intellectual 
property"-rights to artificially limit reproduction to increase market 
value.

This actually has the effect of lowering the use value of the program - 
since, when looked at abstractly, a program that's free to modify and 
redistribute is in many cases more valuable (in a use sense) than one 
that's not.

But free software has low market value (price). This is a problematic 
disrepancy.

(One might argue that programming will shift to be perceived as a 
service rather than production of goods. I'd welcome that developement.)

 > you'll have to live on welfare (yes, welfare is
 > good: give every citizen the same amount of money; no bureaucracy; watch
 > them spend it).

Welfare is good, but in a world where everyone is on welfare, why should 
anything cost anything? And then, where would the money come from? In an 
extendend version of that scenario, we might as well abstract away the 
money.

 > Capitalism is democratic (the political system around it), ok there's
 > lots of corruption, but we *could* make laws for really harsh punishment
 > there, if the lawmakers wouldn't for *some reason* oppose that.  It's
 > decentralized, bottom-up (the traders make the decisions).

Traders make some decisions (strongly influenced by marketing, 
propaganda, memetics and network externalities) about consumtion, but 
fewer about production.

Please note that I'm not blind to the advantages of capitalism 
(especially it's decentralized nature) just because I perceive it as 
flawed, and I'm looking for a better alternative.

 > You can cooperate with people by creating a common company with
 > everybody holding part of the shares.

Yes, this is part of what I advocate.

It doesn't even have to be corporations in the traditional sense, it 
could be an economic federation or other forms of organization (Debian 
comes to mind).

 > You can have individual decisions by everybody having their own
 > company and interacting in an exchange of services.

Yes, but aspects of competition have severe issues, especially 
competition that's more about obstructing competitors rather than 
increasing the quality of one's own goods or services.

This is still all IMO.

Please note that capitalism isn't just a short-hand for "trade-based 
market economy". Capitalism is a heavily proprietarian-slanted 
trade-based market economy, with emphasis on private ownership of land 
and means of production, neither of which is especially coupled to a 
trade-based market economy.

One theoretical alternative economic system (not necessarily one that I 
advocate) is one where land (for, for example, agriculture) and means of 
production are commonly owned, while consumer goods and services are 
traded (probably via a monetary system, or similar) on a market.

My own belief is that as the technology (both tools and, especially, 
processes) related to exchange and organization of information improves, 
so might the technology (tools/processes) related to the exchange and 
organization of both human labor and consumable goods.

I'm very impressed with the recent developements of information 
syndication, and/or organization (del.icio.us and everything2 comes to 
mind), and these may very well be just the first raindrops of a coming 
shower of human invention and innovation.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3ckm4jF6nekeqU1@individual.net>
Sunnan wrote:
> More laws might be one way to solve or alleviate problems, but we also 
> have to look at other solutions. I was involved with the Zero Emissions 
> Research Initiative at one point (many years ago), http://www.zeri.org/ 
> (Note that they aren't anti-capitalist - their schtick is that 
> environmentalism and sustainable development can be profitable since 
> waste is just that, waste, and you lose something if you waste it. Note 
> also that many corporations are rather trying to find "the sweet spot" 
> (possibly unsustainably) between waste and reuse, if the cost of entry 
> and/or maintenance of reuse seems to be larger than the gain.)

IMHO pollution and waste go against liberalist ideas, in that you 
possibly harm others' air and environment.

If the environment isn't taxed or protected, then waste *is* 
cheaper than recycling to a point, even though it hurts others in 
society (and our kids' generation).

>  >> In *theory*, the "perfect" economy to me is a gift economy where the
>  >> benefits of goods, services, art and science are produced and
>  >> distributed in a reasonable, voluntary fashion. I do think the ideal
>  >> of "from each according to ability (or less if society's need is
>  >> less), to each according to need" might be a nice idea to start with.
>  >
>  >
>  > Capitalism allows you trade voluntarily.  If you want to exchange things
>  > for free (like BSD or GPL licensed), then go ahead, it's all legal.
> 
> Capitalism "allows" me to do it, but it's orthogonal to it. Free 
> exchange is legal, but it's not capitalism. Proprietarian corporations 
> (e.g. Microsoft, Adobe) are threatened by free software and use patents, 
> propaganda and other techniques to try to hinder it.

Ok, maybe different definitions of free-market capitalism here ;)

I don't care about free software, I'd rather be able to write 
easy-to-use software and sell it.  That kind of software can't 
profitably be made free, because if it *is* easy, nobody will ever 
need to buy services from me ;)

Thus IBM and others can only make money because they don't write 
most of the software themselves (the community does, lots of them 
in their free time!) and because it's hard enough to use that 
people buy IBM's consulting.

> I do believe that things free exchange, gifts, pooling and commons will 
> continue to rise and that this will supplant capitalism to a greater 
> degree.

Sure, and that's a good thing.  I think it will just change the 
face of the market, for the better.

> But capitalism doesn't necessarily work, either. Products that are less 
> than useful to society can still be popular, through market and/or legal 
> pressure. (Examples: Pepsi and Coke, Fanta in developing countries.)

Who cares?  I buy Pepsi sometimes because I like it, so it is 
useful to me!  Nobody needs to force me.  And how could you force 
people to buy Coke etc??

> Another problem that is becoming more significant during the recent 
> centuries is that the market economy prices goods and services after 
> trade value, not use value.

If nobody buys something, and it's undervalued, tough s**t. 
Better market it, or if you aren't the seller, you might consider 
buying the undervalued stuff and selling it for a profit.

If something is too expensive, well, don't buy it.  The people who 
buy Apple's stocks for a horrendous price now must be really crazy.

> This can sometimes lead to problems, like the tulip craze in Holland a 
> few centuries ago, or the real estate market collapse in Japan a few 
> years ago (the latter was admittedly escalated by government-induced 
> hyperinflation, but I argue that one of the problems was that the market 
> value was higher than the use value).

That was speculation I guess.  Nobody needs a tulip for $1000 
(besides that tulips are ugly IMHO ;D).  Bubbles burst sometimes, 
so just keep away from them.

> But free software has low market value (price). This is a problematic 
> disrepancy.

That's because IT IS OFFERED FOR FREE.  *Of course* the market 
value of something given away for free is zero (unless you put it 
on CDs, bundle other things with it, offer service).

> (One might argue that programming will shift to be perceived as a 
> service rather than production of goods. I'd welcome that developement.)

But Free software is mostly written in peoples' free time.  What I 
would find useful is if people write programs on contract, i.e. 
for money.  People working for free because they think communism 
is cool (ok, that's a minority I guess) lower the market value of 
all other programmers who would like to code for a living.

>  > you'll have to live on welfare (yes, welfare is
>  > good: give every citizen the same amount of money; no bureaucracy; watch
>  > them spend it).
> 
> Welfare is good, but in a world where everyone is on welfare, why should 
> anything cost anything? And then, where would the money come from? In an 
> extendend version of that scenario, we might as well abstract away the 
> money.

 From taxes.  See the USA, where some people amass HUGE amounts of 
profit, because everybody buys their stuff (for whatever reasons). 
  These taxes fuel the rest.  And remember, the welfare money gets 
spent, so it flows back to people with businesses.

I'm not saying it should be much, just barely enough to feed and 
get a room.  You can always work to get more money.  A minimum 
wage would become obsolete, if people can live on their capita-income.

> Please note that I'm not blind to the advantages of capitalism 
> (especially it's decentralized nature) just because I perceive it as 
> flawed, and I'm looking for a better alternative.

I was, but I think there's plenty of room for improving 
capitalism, especially since most criticism doesn't target the 
system at all, but rather the current totally unliberal system 
there is worldwide.

> Yes, but aspects of competition have severe issues, especially 
> competition that's more about obstructing competitors rather than 
> increasing the quality of one's own goods or services.

Well, hindering competitors is obviously unfair and should be 
prohibited.  I think exclusive contracts for instance aren't 
legal, because there MS and Intel FORCE, say Dell, to not install 
Linux or sell AMD, something that's obviously out of MS's and 
Intel's freedom to decide.

> Please note that capitalism isn't just a short-hand for "trade-based 
> market economy". Capitalism is a heavily proprietarian-slanted 
> trade-based market economy, with emphasis on private ownership of land 
> and means of production, neither of which is especially coupled to a 
> trade-based market economy.

Slanted?  Aren't you proprietor of whatever stuff you bought and 
worked for so far?

Want means of production?  Lucky you, lots are very cheap today 
(like PCs).  If you want more, work a couple of years, then band 
with others of like mind and found a company.  Well, unless you 
live in a somewhat unfree, bureaucrat country like Germany, where 
the cost of satisfying all paperwork and regulations creates an 
overhead of �10-50.000 per year for small/medium companies (I've 
read).

> One theoretical alternative economic system (not necessarily one that I 
> advocate) is one where land (for, for example, agriculture) and means of 
> production are commonly owned, while consumer goods and services are 
> traded (probably via a monetary system, or similar) on a market.

But where and how make the distinction?  Who is to decide where to 
erect a factory or housing, where to farm?

> I'm very impressed with the recent developements of information 
> syndication, and/or organization (del.icio.us and everything2 comes to 
> mind), and these may very well be just the first raindrops of a coming 
> shower of human invention and innovation.

:)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Rmb9e.22249$d5.163235@newsb.telia.net>
Ulrich Hobelmann wrote:
> IMHO pollution and waste go against liberalist ideas, in that you 
> possibly harm others' air and environment.

I agree with this.

> I don't care about free software, I'd rather be able to write 
> easy-to-use software and sell it.  That kind of software can't 
> profitably be made free, because if it *is* easy, nobody will ever need 
> to buy services from me ;)

I can see the appeal, but I also point out some problems with this 
below. (Not that you're necessarily doing something evil - just that the 
market economy is suboptimal for the "programs as goods" idea.)

> Thus IBM and others can only make money because they don't write most of 
> the software themselves (the community does, lots of them in their free 
> time!) and because it's hard enough to use that people buy IBM's 
> consulting.

Yes, this is a problem.

>> I do believe that things free exchange, gifts, pooling and commons 
>> will continue to rise and that this will supplant capitalism to a 
>> greater degree.
> 
> 
> Sure, and that's a good thing.

Yes, this is my point.

> Who cares?  I buy Pepsi sometimes because I like it, so it is useful to 
> me!  Nobody needs to force me.  And how could you force people to buy 
> Coke etc??

Maybe I used a bad example (which I chose because these drinks can be 
detrimental to some people's health, YMMV of course).
Maybe cigarettes would be a better example?

I don't know about you, but I and many others are susceptible to 
advertising. It took me a long time to wean myself of Pepsi and Coke, 
drinks that have (through advertising, "Enjoy Coke" etc) been a friendly 
colorful face throughout my childhood. YMMV, we're all individuals.

> If nobody buys something, and it's undervalued, tough s**t. Better 
> market it,

Personally, I perceive excessive marketing as a problem.

 > or if you aren't the seller, you might consider buying the
> undervalued stuff and selling it for a profit.

Hard to do if nobody buys it.

> If something is too expensive, well, don't buy it.  The people who buy 
> Apple's stocks for a horrendous price now must be really crazy.

I guess they're thinking "buy expensive, sell more expensive".

> That was speculation I guess.  Nobody needs a tulip for $1000 (besides 
> that tulips are ugly IMHO ;D).  Bubbles burst sometimes, so just keep 
> away from them.

I was just using bubbles to point out the disrepancy between use value 
(how much you need a tulip) and trade value (how much a tulip costs - 
granted, the expensive ones were "more rare" and regular ones were 
somewhat affordable).

>> But free software has low market value (price). This is a problematic 
>> disrepancy.
> 
> 
> That's because IT IS OFFERED FOR FREE.  *Of course* the market value of 
> something given away for free is zero (unless you put it on CDs, bundle 
> other things with it, offer service).

It has low market value because anyone that has it can replicate it 
freely, and thus it might as well be (and often is) offered for free.

>> (One might argue that programming will shift to be perceived as a 
>> service rather than production of goods. I'd welcome that developement.)
> 
> 
> But Free software is mostly written in peoples' free time.  What I would 
> find useful is if people write programs on contract, i.e. for money.  

That was what I was referring to as the perception shift. Something like 
the Street Performer Protocol, perhaps?

> People working for free because they think communism is cool (ok, that's 
> a minority I guess)

I think this group is increasing in numbers.

 > lower the market value of all other programmers who
> would like to code for a living.

Yes, this is a problem, but is it a problem with people writing for free 
software, or a problem with the market system itself?

After all, they're producing software - shouldn't that be encouraged, 
since production of goods and services are important resources in an 
economy?

>  From taxes.  See the USA, where some people amass HUGE amounts of 
> profit, because everybody buys their stuff (for whatever reasons). 
>  These taxes fuel the rest.

I visited the US recently and the poverty/misery was striking. This 
might be different for different parts of the country.

A lot of these struggling minimum wagers produce essential services and 
goods that all of the society depends on.

This is a touchy subject and I need to add that this was all in my 
perception.

 > And remember, the welfare money gets spent,
> so it flows back to people with businesses.

But goods and resources are consumed, and it's costly to produce more. 
Otherwise, it would make sense for big business to just hand out dollars 
to everyone (since "it would all flow back"), which they obviously don't do.

> I'm not saying it should be much, just barely enough to feed and get a 
> room.

How about medical bills? Phone? Shower? Clothes?

> I was, but I think there's plenty of room for improving capitalism, 
> especially since most criticism doesn't target the system at all, but 
> rather the current totally unliberal system there is worldwide.

As you yourself note, there are various definitions of "the system", 
which makes it a bit more complicated.

> Well, hindering competitors is obviously unfair and should be 
> prohibited.  I think exclusive contracts for instance aren't legal, 
> because there MS and Intel FORCE, say Dell, to not install Linux or sell 
> AMD, something that's obviously out of MS's and Intel's freedom to decide.

How about software patents?

How about (and this is touchy) copyright?

>> Please note that capitalism isn't just a short-hand for "trade-based 
>> market economy". Capitalism is a heavily proprietarian-slanted 
>> trade-based market economy, with emphasis on private ownership of land 
>> and means of production, neither of which is especially coupled to a 
>> trade-based market economy.
> 
> 
> Slanted?  Aren't you proprietor of whatever stuff you bought and worked 
> for so far?

Yes. Maybe slanted was a clumsy word. Let me rephrase: "Capitalism is a 
heavily proprietarian trade-based market economy, with..."

> Want means of production?  Lucky you, lots are very cheap today (like 
> PCs).

Yes, this is a welcome development compared to the early industrial 
revolution.

> If you want more, work a couple of years, then band with others 
> of like mind and found a company.  Well, unless you live in a somewhat 
> unfree, bureaucrat country like Germany, where the cost of satisfying 
> all paperwork and regulations creates an overhead of �10-50.000 per year 
> for small/medium companies (I've read).

Yes, it can certainly be an uphill battle. You also have market forces 
working against you, competitors, advertising issues...

>> One theoretical alternative economic system (not necessarily one that 
>> I advocate) is one where land (for, for example, agriculture) and 
>> means of production are commonly owned, while consumer goods and 
>> services are traded (probably via a monetary system, or similar) on a 
>> market.
> 
> 
> But where and how make the distinction?  Who is to decide where to erect 
> a factory or housing, where to farm?

How is this decided today? Ownership of land is awkward, since it's 
inherited by necessity (since not much new land is created). Just 
because person X's grandmother's grandfather inherited a bunch of land, 
and other grandparents inherited other patches of land, person X now has 
a huge amount of farmable land where persons Y...Z has to come and work 
on to stay alive, giving a share of the profits to person X just because 
she/he holds a magical piece of paper that says "property deed"?

IMVHO, my intuition tells me that it's ok to "own" the land you live on 
and work on yourself, alone or with others, large or small group - it's 
another thing entirely to "own" land that others live on and work on, 
taking a piece of their income.

This is all very abstract, of course.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3ckvueF6pgevkU1@individual.net>
QUESTION: is anybody reading this from c.l.scheme?
I would like to keep the crossposting down!

Sunnan wrote:
>> Who cares?  I buy Pepsi sometimes because I like it, so it is useful 
>> to me!  Nobody needs to force me.  And how could you force people to 
>> buy Coke etc??
> 
> 
> Maybe I used a bad example (which I chose because these drinks can be 
> detrimental to some people's health, YMMV of course).
> Maybe cigarettes would be a better example?

No, I drink soda because it tastes good and is ok.  I don't drink 
it much, since it's high in sugar and other things.  I don't 
smoke, because that's my choice.  If I want to do heroin, why 
should anybody stop me?

Look at the drug policies from the Netherlands (Marihuana is 
legal) and the US; the US aren't really successful in prohibiting 
everything.  The Netherlands have really low drug use (Germans 
smoke a lot more pot than the Dutch).

> I don't know about you, but I and many others are susceptible to 
> advertising. It took me a long time to wean myself of Pepsi and Coke, 
> drinks that have (through advertising, "Enjoy Coke" etc) been a friendly 
> colorful face throughout my childhood. YMMV, we're all individuals.

What?  Hm, I think that's not an argument.  We all have free will. 
  Maybe you got a kick out of the caffeine (I do)?

Anyway, there should be some rules against advertising for kids, 
since they don't have a fully developed perception yet.

>> If nobody buys something, and it's undervalued, tough s**t. Better 
>> market it,
> 
> 
> Personally, I perceive excessive marketing as a problem.
> 
>  > or if you aren't the seller, you might consider buying the
> 
>> undervalued stuff and selling it for a profit.
> 
> 
> Hard to do if nobody buys it.

Well, you would have to market it (in English "show people the 
benefit of the product, what it can do for them").

>>> But free software has low market value (price). This is a problematic 
>>> disrepancy.
>>
>>
>>
>> That's because IT IS OFFERED FOR FREE.  *Of course* the market value 
>> of something given away for free is zero (unless you put it on CDs, 
>> bundle other things with it, offer service).
> 
> 
> It has low market value because anyone that has it can replicate it 
> freely, and thus it might as well be (and often is) offered for free.

Yes.  If you don't open-source it, you'll see that you can take 
(maybe only a little) bit of money for it.  For the mac there's 
lots of cheap shareware and the coders seems to do well on it.

OTOH, most Windowsers I know only install illegal copies, and 
Linuxers don't really want to buy any software, because they think 
it should all be free (my experience).

> Yes, this is a problem, but is it a problem with people writing for free 
> software, or a problem with the market system itself?

Neither.  Everybody is free to compete against Firefox and 
OpenOffice.  If they can't (costs too high), then we just happily 
use those.

> After all, they're producing software - shouldn't that be encouraged, 
> since production of goods and services are important resources in an 
> economy?

Right.  It's only that it creates some unemployment, but again, 
that's inherent in giving people lots of powerful tools.

> I visited the US recently and the poverty/misery was striking. This 
> might be different for different parts of the country.

I think it varies quite a lot.  The poor don't really have lots of 
chances (education), though, to break out of their misery.  That's 
the problem there.

> A lot of these struggling minimum wagers produce essential services and 
> goods that all of the society depends on.

So they should be rewarded more, true.  Well, I would be willing 
to pay more than minimum wage for someone cleaning my hypothetical 
house or company offices, but that's just me.  Again it's 
individual decisions.  Hotels might advertise this, "we treat ALL 
our personnel well".

> This is a touchy subject and I need to add that this was all in my 
> perception.
> 
>  > And remember, the welfare money gets spent,
> 
>> so it flows back to people with businesses.
> 
> 
> But goods and resources are consumed, and it's costly to produce more. 
> Otherwise, it would make sense for big business to just hand out dollars 
> to everyone (since "it would all flow back"), which they obviously don't 
> do.

No, but in that case the government removes some inequality (take 
from the rich, give to the poor).  Because we should acknowledge 
that even in an competitive system everybody should be able to 
live and eat -- we can afford that much!

>> I'm not saying it should be much, just barely enough to feed and get a 
>> room.
> 
> 
> How about medical bills? Phone? Shower? Clothes?

Basic clothes, shower, medical, sure.  Phone?  Not necessary IMHO. 
  Well, they would just get the money and decide themselves what 
they need.  Not like in Germany people going to the government "I 
need a new coat.  I need a new fridge etc.".

> How about software patents?

Remove freedom (to think, to program) from somebody else -> should 
be illegal.

> How about (and this is touchy) copyright?

You write a poem, so it should be yours.  Plagiarism is not ok 
IMHO.  People can still sample your music, though, if you sell 
them a license, or whatever.  I think that would be fair use 
against a royalty compensation.  Copyright should expire after 
your death, or maybe 20-50 years later.  People should vote on 
this, IMHO.

> How is this decided today? Ownership of land is awkward, since it's 
> inherited by necessity (since not much new land is created). Just 
> because person X's grandmother's grandfather inherited a bunch of land, 
> and other grandparents inherited other patches of land, person X now has 
> a huge amount of farmable land where persons Y...Z has to come and work 
> on to stay alive, giving a share of the profits to person X just because 
> she/he holds a magical piece of paper that says "property deed"?

True, and I though about that, even if inheritance should be 
illegal.  OTOH it should really be ok to give you kids what you 
worked for all your life!

To the land issue: Maybe land should be government property and 
rented by everybody?  Well, I'm for ownership I guess.  Also, if 
you inherit land, and you can't make much use of it, you might 
sell it (I probably would).  You can also buy land from people.

> IMVHO, my intuition tells me that it's ok to "own" the land you live on 
> and work on yourself, alone or with others, large or small group - it's 
> another thing entirely to "own" land that others live on and work on, 
> taking a piece of their income.

Well, if you buy it from them?  Land has powerlines, water supply, 
etc.  You buy it, you build houses.  Why shouldn't you rent it to 
people?

> This is all very abstract, of course.

Yes.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <86vf6ipjlr.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>Look at the drug policies from the Netherlands (Marihuana is legal)

Marihuana is NOT legal in The Netherlands.  This is a common
misconception.  The (usual) absence of punishment for consuming small
amounts in a civilized manner does not mean it's legalized.  For
reference, see, for example: http://www.siw.nl/zo/dope.php.

mkb.
From: Matthew D Swank
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <pan.2005.04.19.21.28.15.628873@c.net>
On Tue, 19 Apr 2005 23:00:48 +0200, Matthias Buelow wrote:


> Marihuana is NOT legal in The Netherlands.  This is a common
> misconception. 


            			  JULES
                       -- okay now, tell me about the hash
                       bars?

                                  VINCENT
                       What so you want to know?

                                  JULES
                       Well, hash is legal there, right?

                                  VINCENT
                       Yeah, it's legal, but is ain't a
                       hundred percent legal.  I mean you
                       can't walk into a restaurant, roll
                       a joint, and start puffin' away.
                       You're only supposed to smoke in
                       your home or certain designated
                       places.

                                  JULES
                       Those are hash bars?

                                  VINCENT
                       Yeah, it breaks down like this:
                       it's legal to buy it, it's legal to
                       own it and, if you're the
                       proprietor of a hash bar, it's
                       legal to sell it.  It's legal to
                       carry it, which doesn't really
                       matter 'cause -- get a load of this
                       -- if the cops stop you, it's
                       illegal for this to search you.
                       Searching you is a right that the
                       cops in Amsterdam don't have.

                                  JULES
                       That did it, man -- I'm f***in'
                       goin', that's all there is to it.

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Bmh9e.135050$dP1.475164@newsc.telia.net>
Ulrich Hobelmann wrote:
> QUESTION: is anybody reading this from c.l.scheme?
> I would like to keep the crossposting down!

I'm both reading and posting this from c.l.scheme. I don't currently 
subscribe to c.l.lisp. But you have a point. Suggested solution? That I 
temporarily subscribe to cll? That you do the same to cls instead? That 
we move the discussion to another public forum?

> No, I drink soda because it tastes good and is ok.  I don't drink it 
> much, since it's high in sugar and other things.  I don't smoke, because 
> that's my choice.  If I want to do heroin, why should anybody stop me?
> 
> Look at the drug policies from the Netherlands (Marihuana is legal) and 
> the US; the US aren't really successful in prohibiting everything.  The 
> Netherlands have really low drug use (Germans smoke a lot more pot than 
> the Dutch).

The legality of drugs is not what I'm discussing here.

My point was that it seems to me that cigarettes are a product that's 
disproportionately popular, considering it's usefulness (or lack there of).

> What?  Hm, I think that's not an argument.  We all have free will. 

Most of us can be influenced to a certain degree, as well as influence 
others.

>  Maybe you got a kick out of the caffeine (I do)?
> 
> Anyway, there should be some rules against advertising for kids, since 
> they don't have a fully developed perception yet.

Perhaps.

>> Hard to do if nobody buys it.
> 
> 
> Well, you would have to market it (in English "show people the benefit 
> of the product, what it can do for them").

But what if the benefit was well known, but the supply so large that the 
price still would be next to nothing? Example: free software.

>> It has low market value because anyone that has it can replicate it 
>> freely, and thus it might as well be (and often is) offered for free.
> 
> 
> Yes.  If you don't open-source it, you'll see that you can take (maybe 
> only a little) bit of money for it.

But in order to gain this increase in market value, you have to both 
decrease the use value (if you, like I do, buy the argument that a 
non-redistributable program is slightly less useful, and that a 
non-modifiable program is a lot less useful), and you have to 
artificially decrease the supply (by prohibiting productions of copies).

Personally, I perceive the market value/use value disrepancy as a flaw 
in the trade-based market system, and copyright as a very visible patch.

Others disagree - there are copyright-sceptical pro-capitalists, 
pointing to the goods/services shift in programming as a possible 
solution, one that meshes better with the system. YMMV.

>> Yes, this is a problem, but is it a problem with people writing for 
>> free software, or a problem with the market system itself?
> 
> 
> Neither.  Everybody is free to compete against Firefox and OpenOffice.  
> If they can't (costs too high), then we just happily use those.

But if software that's produced on non-capitalist terms supplants 
software that's produced on capitalist terms, that's one example of a 
trade-based market economy being at least partially "phased out".

I'm not saying that Firefox and OpenOffice.org necessarily are produced 
on non-capitalist terms, (both having main developers that get paid for 
their work, which of course is fine - but they get paid for their 
services, rather than for producing scarce goods) but a lot of free 
software is produced just as a labor of love, or on other non-capitalist 
terms.

Ah, just giving things away - it's compatible with capitalism, it's 
orthogonal to capitalism, it might even be beneficial in a capitalist 
society - but it's not capitalism and may one day supplant it.

>> A lot of these struggling minimum wagers produce essential services 
>> and goods that all of the society depends on.
> 
> 
> So they should be rewarded more, true.

Which is what I'm trying to say when I'm saying that capitalism isn't 
necessarily a good arbitrator of how useful something is.

 > Well, I would be willing to pay
> more than minimum wage for someone cleaning my hypothetical house or 
> company offices, but that's just me.  Again it's individual decisions.  
> Hotels might advertise this, "we treat ALL our personnel well".

But remember, there's a good and a bad part to human nature. There's a 
part of us, call it egoism or just lazyness, that doesn't always check 
that with every hotel, or bother to find the one hotell in a million 
that treats all their personnel well. (Perhaps a cooperative, 
worker-owned hotel would be a good idea?)

In today's world, tobacco company executives get rich while hotel 
cleaners ruin their bodies for pennies.

Is that taking both the good and bad parts of human nature in 
consideration? I don't think it is.

Some days I feel that even something as simple as just pooling our 
resources and trust that people will try to contribute to the best of 
their ability and for the best of society would work better and fairer 
than the trade-based market economy. This is, of course, a mostly 
unproven hunch.

(Unproven if you think that 30s anarchist Spain was too brief, too 
undocumented, or otherwise flawed as an example, and if you think that 
the success of the free software movement is irreproducible with 
physical goods.)

Even if a simple gift economy would be unworkable, let us allow 
ourselves to dream of other, fairer, better protocols than the 
trade-based market economy - maybe one day those dreams would bear fruit.

> No, but in that case the government removes some inequality (take from 
> the rich, give to the poor).  Because we should acknowledge that even in 
> an competitive system everybody should be able to live and eat -- we can 
> afford that much!

Yes - taking care of each other is one of the "good" parts human nature.

>> How about (and this is touchy) copyright?
> 
> 
> You write a poem, so it should be yours.  Plagiarism is not ok IMHO.  

I've written plenty of poems, but I think reproduction is something very 
different from claiming credit. The latter is fraud and should be 
considered as such.

> True, and I though about that, even if inheritance should be illegal.  
> OTOH it should really be ok to give you kids what you worked for all 
> your life!

It's a difficult question, given capitalist premises.

> To the land issue: Maybe land should be government property and rented 
> by everybody?  Well, I'm for ownership I guess.  Also, if you inherit 
> land, and you can't make much use of it, you might sell it (I probably 
> would). 

A lot of people would consider renting it out. This would ensure a 
steady profit for essentially no labor, except bureaucracy. I question 
the fairness of this.

 > You can also buy land from people.

Which is a large investment that not everybody can afford to make. An 
example of the rich getting richer?

>> IMVHO, my intuition tells me that it's ok to "own" the land you live 
>> on and work on yourself, alone or with others, large or small group - 
>> it's another thing entirely to "own" land that others live on and work 
>> on, taking a piece of their income.
> 
> 
> Well, if you buy it from them?  Land has powerlines, water supply, etc.  
> You buy it, you build houses.  Why shouldn't you rent it to people?

House-building, water supply maintenance, power - these could all be 
considered services instead, and treated as such.
Mere "land owning" isn't a service that's useful to society, it's more 
of an obstruction.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3clon0F6hmk5sU1@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> QUESTION: is anybody reading this from c.l.scheme?
>> I would like to keep the crossposting down!
> 
> 
> I'm both reading and posting this from c.l.scheme. I don't currently 
> subscribe to c.l.lisp. But you have a point. Suggested solution? That I 
> temporarily subscribe to cll? That you do the same to cls instead? That 
> we move the discussion to another public forum?

I'm reading both, but was under the wrong assumption, that you are 
on c.l.l.  Anyway I don't see much point in discussing this much 
more, since the "real world" is far from having even a marginally 
free, decentralized, decently democratic country.  Maybe 
Scandinavia is the best in terms of freedom and democracy, but you 
guys have super-high taxes...

> The legality of drugs is not what I'm discussing here.
> 
> My point was that it seems to me that cigarettes are a product that's 
> disproportionately popular, considering it's usefulness (or lack there of).

True, but people buy whatever (crap) they want.  And IMHO they 
should be able to.

> But in order to gain this increase in market value, you have to both 
> decrease the use value (if you, like I do, buy the argument that a 
> non-redistributable program is slightly less useful, and that a 
> non-modifiable program is a lot less useful), and you have to 
> artificially decrease the supply (by prohibiting productions of copies).
> 
> Personally, I perceive the market value/use value disrepancy as a flaw 
> in the trade-based market system, and copyright as a very visible patch.
> 
> Others disagree - there are copyright-sceptical pro-capitalists, 
> pointing to the goods/services shift in programming as a possible 
> solution, one that meshes better with the system. YMMV.

Interesting...

> But remember, there's a good and a bad part to human nature. There's a 
> part of us, call it egoism or just lazyness, that doesn't always check 
> that with every hotel, or bother to find the one hotell in a million 
> that treats all their personnel well. (Perhaps a cooperative, 
> worker-owned hotel would be a good idea?)

True.  A good example in the US seems to be the Woodman's store. 
They advertise that they're employee-owned.  Maybe this is a 
growing direction...

> I've written plenty of poems, but I think reproduction is something very 
> different from claiming credit. The latter is fraud and should be 
> considered as such.

Yes, reproduction should be generally allowed (maybe with attached 
payments).

> House-building, water supply maintenance, power - these could all be 
> considered services instead, and treated as such.
> Mere "land owning" isn't a service that's useful to society, it's more 
> of an obstruction.

Interesting to see your views and approaches to these; it makes a 
lot of sense in some ways (but seems so different from the current 
way that I don't expect much pushing in that direction anywhere soon).

Unless you have anything more to add, I think we could close this 
thread.  Was a nice discussion.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <6pj9e.135057$dP1.475219@newsc.telia.net>
I'd like to add a few things. Replying isn't mandatory.

Ulrich Hobelmann wrote:
> I'm reading both, but was under the wrong assumption, that you are on 
> c.l.l.  Anyway I don't see much point in discussing this much more, 
> since the "real world" is far from having even a marginally free, 
> decentralized, decently democratic country.  Maybe Scandinavia is the 
> best in terms of freedom and democracy, but you guys have super-high 
> taxes...

I'm not discussing in terms of nations and countries.

I'm strongly anti-nationalist. I've got plenty of criticisms against the 
Swedish government. Keynesian "capitalism" is just as 
proprietarian/hierarchical as free-market capitalism.

> True, but people buy whatever (crap) they want.  And IMHO they should be 
> able to.

I'm not talking about using legal enforcement to stop smoking (that 
reeks of centralism).

I was trying to say that it seems to me that the market isn't that good 
at determining the "usefulness" of a good or service.
It looks like a weird argument:

Y: "The market is the best at determining usefulness because people buy 
the most useful stuff."

X: "But that stuff that people buy doesn't seem very useful to me..."

Y: "It's the most useful because it's what people buy."

X: "And..?"

Y: "And whatever people buy is the most useful."

What Y is trying to get away with is that "useful" in "useful: what 
people buy" is the same as "useful: what's beneficial for 
society/humanity/the planet", which isn't proven.

> True.  A good example in the US seems to be the Woodman's store. They 
> advertise that they're employee-owned.  Maybe this is a growing 
> direction...

This trend is something that I'm interested in.

> Interesting to see your views and approaches to these; it makes a lot of 
> sense in some ways (but seems so different from the current way that I 
> don't expect much pushing in that direction anywhere soon).

Inertia is mightier than the pen...

> Unless you have anything more to add, I think we could close this 
> thread.  Was a nice discussion.
> 

I thank you for this discussion and I'm grateful that you were 
interested in what I had to say. I found you very polite, which I 
appreciated.

I thank the few lurkers whos interest we've held (especially those who 
read this years from now, through some usenet archive).

I apologize to the non-interested lispers who were disinterested in this 
topic, and I'm grateful that you just killfiled the thread (or me...) 
instead of complaining.

Thanks.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3cn17vF6olf8pU1@individual.net>
Sunnan wrote:
> I was trying to say that it seems to me that the market isn't that good 
> at determining the "usefulness" of a good or service.
> It looks like a weird argument:
> 
> Y: "The market is the best at determining usefulness because people buy 
> the most useful stuff."
> 
> X: "But that stuff that people buy doesn't seem very useful to me..."
> 
> Y: "It's the most useful because it's what people buy."
> 
> X: "And..?"
> 
> Y: "And whatever people buy is the most useful."
> 
> What Y is trying to get away with is that "useful" in "useful: what 
> people buy" is the same as "useful: what's beneficial for 
> society/humanity/the planet", which isn't proven.

Ok, let me clear this up.  We have two different definitions of 
usefulness here: I say that nobody is to decide what's useful.  So 
if I *consider* cigarettes useful for me, I buy them.

You emphasize the objective usefulness, which is that cigarettes 
probably have more negative costs for a society.

In fact I agree with your view there, even though it has a 
centralist argument in it.  I was simply saying that people should 
be able to buy whatever they want (and however harmful it might 
be).  I agree that subjective usefulness isn't what's best for the 
whole of society.  The old known problem that a free market 
doesn't necessarily give you high culture (think music and TV 
media here), but rather what the most people want (trash newspapers).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <D3u9e.22379$d5.163915@newsb.telia.net>
Ulrich Hobelmann wrote:
> In fact I agree with your view there, even though it has a centralist 
> argument in it.

I need to clarify that I've never proposed centralist solutions to any 
of the perceived problems I've discussed in this thread.

It's you who've talked about using legally enforced (governmental) means 
to alleviate the problems with:

* pollution
* basic living standard (food, place to live)
* marketing to children
* intellectual property

(While I consider the first three of these problems to be important 
enough that I can accept a centralist solution, I also want (and, in 
fact, prefer) non-centralist solutions considered - including 
transitioning to a different or modified economic system.)

It's also you who've discussed in terms of specific countries - Germany, 
Scandinavia (eh, this isn't a country, but you get my gist).

The ideas of government and nationalism are abstract concepts, they're 
accepted conventions, not necessarily the best ones and they aren't 
concepts that I take for granted or advocate.
From: Matthias Buelow
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <861x96rckx.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>> But capitalism doesn't necessarily work, either. Products that are
>> less than useful to society can still be popular, through market
>> and/or legal pressure. (Examples: Pepsi and Coke, Fanta in
>> developing countries.)
>
>Who cares?  I buy Pepsi sometimes because I like it, so it is useful
>to me!  Nobody needs to force me.  And how could you force people to
>buy Coke etc??

He was speaking about the developing world, where Coca Cola does not
have the image of the happy, sweet lemonade, that it does in the
western industrial countries.  In some, the company is rather seen as
an oppressive killer.  See: http://killercoke.org/ for one example.

>money.  People working for free because they think communism is cool
>(ok, that's a minority I guess) lower the market value of all other
>programmers who would like to code for a living.

Ah..  Free software = communism.

>Well, hindering competitors is obviously unfair and should be
>prohibited.  I think exclusive contracts for instance aren't legal,
>because there MS and Intel FORCE, say Dell, to not install Linux or
>sell AMD, something that's obviously out of MS's and Intel's freedom
>to decide.

Hehe.. I guess with Dell it's quite the other way round -- give us
your stuff at a cut-yer-own-throat price or we'll start selling AMD.

>of like mind and found a company.  Well, unless you live in a somewhat
>unfree, bureaucrat country like Germany, where the cost of satisfying
>all paperwork and regulations creates an overhead of EUR 10-50.000 per
>year for small/medium companies (I've read).

In this "unfree, bureaucrat" country, at least people don't get kicked
out in the street, having nothing to eat.  Or using one credit card to
pay off the other.  Or doing 3 jobs and still not have enough to pay
for living.  And politicians get fired when they get paid by the
industry.  But of course that's probably all evil communist stuff
aswell.

mkb.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <3cku7nF6p6v7fU1@individual.net>
Matthias Buelow wrote:
> He was speaking about the developing world, where Coca Cola does not
> have the image of the happy, sweet lemonade, that it does in the
> western industrial countries.  In some, the company is rather seen as
> an oppressive killer.  See: http://killercoke.org/ for one example.

Well, in countries where human rights violations aren't really 
prosecuted, about *every* company violates those rights.  Sadly.

I don't think that their American headquarters endorse that, 
though.  It's probably under the hood, so that the local managers 
can show off a couple % more profitability.

>>money.  People working for free because they think communism is cool
>>(ok, that's a minority I guess) lower the market value of all other
>>programmers who would like to code for a living.
> 
> 
> Ah..  Free software = communism.

I said minority.  Myself, when I was an idealist a couple years 
back, thought that all software should be free (like RMS).  Now I 
see that it's better to voluntarity trade software (or even 
components), so that people can keep being employed.  (When Linux 
would be good enough for anything sometime, why wouldn't IBM stop 
employing so many hackers?)

If that means (like Apache, PostgreSQL) having several companies 
teaming up to build a big software, so be it.

>>Well, hindering competitors is obviously unfair and should be
>>prohibited.  I think exclusive contracts for instance aren't legal,
>>because there MS and Intel FORCE, say Dell, to not install Linux or
>>sell AMD, something that's obviously out of MS's and Intel's freedom
>>to decide.
> 
> 
> Hehe.. I guess with Dell it's quite the other way round -- give us
> your stuff at a cut-yer-own-throat price or we'll start selling AMD.

Yes, but why don't they just do it then?  Whatever the customer 
buys will be built more.  Selling two kinds of CPUs would 
automatically lead to the same CYOT prices, since Intel would have 
to allow Dell to produce systems as performant as AMD, but at 
roughly the same price.  With direct comparison of Intel and AMD 
systems from Dell, most people would start going for AMD I think.

>>of like mind and found a company.  Well, unless you live in a somewhat
>>unfree, bureaucrat country like Germany, where the cost of satisfying
>>all paperwork and regulations creates an overhead of EUR 10-50.000 per
>>year for small/medium companies (I've read).
> 
> 
> In this "unfree, bureaucrat" country, at least people don't get kicked
> out in the street, having nothing to eat.  Or using one credit card to
> pay off the other.  Or doing 3 jobs and still not have enough to pay
> for living.  And politicians get fired when they get paid by the
> industry.  But of course that's probably all evil communist stuff
> aswell.

They don't get kicked out in the street, because they don't get 
employed in the first place!  If I had a company there, I wouldn't 
employ anybody, since it Germany you can't easily fire people when 
you don't need the work anymore!  Instead I would probably go for 
contractors in other countries (or even move the company there!).

People have debt, too, in Germany.  Ok, in the US that seems to be 
really a big problem, but that might be due to structural problems 
(schools are financed by their district taxes, so poor districts 
basically *have no school*, no books, and thus can't have any 
chances).  Also, the US have neither a good welfare system nor 
fail minimum wage.  A guaranteed free per-capita income could fix 
that, both in the US as in Germany.

Policitians don't really do anything when they're corrupt.  Maybe 
it seems like that, but I guess Scandinavia is much better in that 
respect than the ever-more-corrupted Germany.  Nobody gets 
punished, sadly; well, normal citizens do if they commit petty 
crimes.  That's because those citizens don't make the laws I guess.

-- 
Murphy's Golden Rule:
Whoever has the gold, makes the rules.
From: BR
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <pan.2005.04.19.17.00.10.606984@comcast.net>
On Tue, 19 Apr 2005 14:51:45 +0000, Sunnan wrote:

> Most people here are programmers, many of which would like to have food
> on the table, right? Well, many companies (such as Adobe, Macromedia,
> Apple) view software as goods, as products, that they try to "sell" on
> the market. The problem is, with software the initial cost is high, and
> the reproduction cost is low. In order to pay for the high initial
> costs, companies use their government-granted "intellectual
> property"-rights to artificially limit reproduction to increase market
> value.

Well most economic systems are predicated on the idea that if you put
forth an effort, you have an opportunity to gain from such an effort
without being unfairly undermined by your fellows. If you spent five years
writing the worlds greatest program? Then you have the opportunity* to
gain from it by reciprocal agreements with your fellows, without worry
that those who contributed nothing towards that effort, will walk away
with all the benefits of what you created.


*Opportunity, because while a reward isn't guarenteed.  Society shouldn't
have "emminent domain" over what you produce either.
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <5yb9e.22251$d5.163185@newsb.telia.net>
BR wrote:
 > If you spent five years
> writing the worlds greatest program? Then you have the opportunity* to
> gain from it by reciprocal agreements with your fellows, without worry
> that those who contributed nothing towards that effort, will walk away
> with all the benefits of what you created.

Yes, but the consumer perspective is that you get a product with lower 
use value (no source code, redistribution disallowed by law), and this 
lowered usefulness is specifically for the purpose of increasing the 
product's market price, which isn't exactly helpful to the consumer either.

Thus, the market economy's inherent disrepancy between trade value and 
use value.

(I can certainly understand the programmer perspective, having high 
initial costs (five years in your example) - but I don't think the issue 
of copyright and copyright infringement is easily solved. The Street 
Performer Protocol is an interesting solution to this within the 
premises of capitalism. The free software movement's peer-production 
strategies is another variant, which lessens (or distributes) the intial 
(development) costs.)

Sunnan
From: BR
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <pan.2005.04.19.18.59.37.626148@comcast.net>
On Tue, 19 Apr 2005 17:50:57 +0000, Sunnan wrote:

> Yes, but the consumer perspective is that you get a product with lower
> use value (no source code, redistribution disallowed by law), and this
> lowered usefulness is specifically for the purpose of increasing the
> product's market price, which isn't exactly helpful to the consumer
> either.

Well that assuming that a particular consumer would benefit from having
source code. As for redistribution, that depends. Some allow you to sell
the software product WITHOUT keeping any copies. Others don't. However
that artificial barrier is substituting for it's  physical goods
counterpart. The digital nature of the goods makes for a temptation that
few can resist. Keep one copy for yourself, and distribute another.  The
market enjoys benefits without paying the reciprocal cost. The loser here
is the one who has little to no compensation to show for their effort.
Ultimately everyone loses in that situation for no one will want to enter
such an easily abused market, and they gravitate towards markets that have
natural barriers in place against those destructive aspects of "human
nature".
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Zph9e.135051$dP1.475191@newsc.telia.net>
BR wrote:
> Well that assuming that a particular consumer would benefit from having
> source code.

Of course, but change that to "benefit from having the source code 
available", with emphasis on the last word - even if they aren't 
themselves programmers, they might know someone who is, or they might 
benefit from someone else's efforts.

 > As for redistribution, that depends.

Clearly, something that both me and (for example) my sister could use is 
more valuable to us than something just one of us could use.

 > The market enjoys benefits without paying the reciprocal cost.

I perceive this as a flaw in the market system.
From: David Steuber
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <87r7h6k9op.fsf@david-steuber.com>
Sunnan <······@handgranat.org> writes:

> (One might argue that programming will shift to be perceived as a
> service rather than production of goods. I'd welcome that
> developement.)

That has already happened.  Or if the perception hasn't changed, the
reality has.

> I'm very impressed with the recent developements of information
> syndication, and/or organization (del.icio.us and everything2 comes to
> mind), and these may very well be just the first raindrops of a coming
> shower of human invention and innovation.

I simply don't get del.icio.us.

-- 
An ideal world is left as an excercise to the reader.
   --- Paul Graham, On Lisp 8.1
No excuses.  No apologies.  Just do it.
   --- Erik Naggum
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <9qb9e.22250$d5.163167@newsb.telia.net>
David Steuber wrote:
> I simply don't get del.icio.us.
> 
I subscribe to tags and users (mostly, but not exclusively, people I 
know IRL), and others subscribe to me. Users are like filters. It's one 
way to find out the "buzz", what's happening, what someone's reading.

I'm thinking of switching to frassle or another alternative in the 
future, but we'll see.
From: drewc
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Kzc9e.1074916$8l.429925@pd7tw1no>
Sunnan wrote:
> Ulrich Hobelmann wrote:

> 
>  > You can cooperate with people by creating a common company with
>  > everybody holding part of the shares.
> 
> Yes, this is part of what I advocate.
> 
> It doesn't even have to be corporations in the traditional sense, it 
> could be an economic federation or other forms of organization (Debian 
> comes to mind).
> 

Or, how about a co-operative? Like http://tech.coop for example. :)

We are not-for-profit, member-owned, democratically run (our members 
elect the board, and we run the day to day operations as a workers 
democracy). Our sole reason for existing is to provice technical 
services to our members. Contrast this model with a for-profit 
corporation, whose legal requirement is to increase shareholder value.

It's been an interesting experiment so far.

drewc
From: Paolo Amoroso
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <87pswqd2vb.fsf@plato.moon.paoloamoroso.it>
Sunnan <······@handgranat.org> writes:

> I'm very impressed with the recent developements of information
> syndication, and/or organization (del.icio.us and everything2 comes to
> mind), and these may very well be just the first raindrops of a coming
> shower of human invention and innovation.

For a few thoughts on how such "inventions" and "innovations"
originate, have a look at the latest essay by Paul Graham :)

  The Submarine
  http://www.paulgraham.com/submarine.html


Paolo
-- 
Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film
Recommended Common Lisp libraries/tools (see also http://clrfi.alu.org):
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- UFFI: Foreign Function Interface
From: Matthias Blume
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <m18y3estf6.fsf@tti5.uchicago.edu>
Sunnan <······@handgranat.org> writes:

> Ulrich Hobelmann wrote:
>> The money still has to go somewhere, right?
>
> That's a dangerous oversimplification.
>
> If most tasks are automated away, then why would the consumers get
> paid money to consume goods with? Money have no intrinsic value;
> they're tokens to represent the value (trade value rather than use
> value, unfortunately) of produced goods and services.
>
> I do support automatisation (as long as it's done with sustainable
> developement and environmental issues in mind), but the idea of
> monetary systems might need some reworking.

What you write is not just a dangerous oversimplification, it is
downright wrong.  If, indeed, production is so automated that humans
hardly have to work, then the products will be exceedingly cheap.  At
least in the sum, humans can still afford to buy them.

Roughly speaking, the intrinsic value of a product (disregarding issue
such as demand-supply) only depends on how much (human) effort is
required to sustain its production.  Thus, if due to automation no
effort is required, then the product is almost without value (which is
not the same as "worthless").

The real problem with automation is that it causes imbalances: there
are some people who still work and get money, and many other people
who are completely out of work and get no money.  Only those with
money can buy products (however cheap they may have become due to
automation).
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <zXa9e.135021$dP1.474307@newsc.telia.net>
Matthias Blume wrote:
> If, indeed, production is so automated that humans
> hardly have to work, then the products will be exceedingly cheap.

I know.
This is part of the process I'm speaking of when I'm discussing the 
future possible obsolence of the monetary system.

> Roughly speaking, the intrinsic value of a product (disregarding issue
> such as demand-supply) only depends on how much (human) effort is
> required to sustain its production.

Yes.
This is production value, which is separate from trade value (the 
demand-supply of your parenthesis), and also separate from use value 
("usefulness value").

> The real problem with automation is that it causes imbalances: there
> are some people who still work and get money, and many other people
> who are completely out of work and get no money.  Only those with
> money can buy products (however cheap they may have become due to
> automation).

Yes, these problems are exactly what I'm thinking of as some of the 
major flaws in the monetary system, and I think this will lead to 
trade-based market economies either being phased out or drastically 
improved.
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3ckukiF6lv9i3U1@individual.net>
Sunnan wrote:
> I know.
> This is part of the process I'm speaking of when I'm discussing the 
> future possible obsolence of the monetary system.

Regarding that, and another post here about what's human nature:
a system *needs* the ability to decide what's useful contributions 
to society and what isn't.  It needs to be decentralized, because 
centralism is wasteful and not really egalitarian.  The free 
market is open for everyone, thus fair, and provides a good way to 
decide what society wants and what it doesn't need.

Currency is a necessary and important step to ensure free trade. 
I believe that every culture that introduced currency into their 
system has since prospered (maybe not everybody, but a good number 
  of people could, in contrast to no prosperity at all, before).

>> The real problem with automation is that it causes imbalances: there
>> are some people who still work and get money, and many other people
>> who are completely out of work and get no money.  Only those with
>> money can buy products (however cheap they may have become due to
>> automation).
> 
> 
> Yes, these problems are exactly what I'm thinking of as some of the 
> major flaws in the monetary system, and I think this will lead to 
> trade-based market economies either being phased out or drastically 
> improved.

No, the people who don't farm, don't bake bread, don't build cars 
aren't unemployed.  They do the healthcare, the childcare, the 
haircuts, the music and theater plays for those people who are in 
material production.  The jobs aren't in manufacturing anymore, 
but there will be demand for services instead.

I can neither see what flaws you attribute to the monetary system 
here, nor who will (and why) ever phase out free markets.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: David Golden
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <2sd9e.51850$Z14.40957@news.indigo.ie>
Ulrich Hobelmann wrote:

> I can neither see what flaws you attribute to the monetary system
> here, nor who will (and why) ever phase out free markets.
> 

Ha! I'd like to see some free markets phased in...

Right now, with the enforced monopolies  of copyright and patent law
massively interfering in the software market, it's in a sorry state. 
There can't be a free market unless we get rid of them, no matter how
much paper-pushers may bleat the propaganda phrase "intellectual
property", information is just not anything like physical property, and
it's hugely inefficient and downright tyrannical in some cases to
restrict its free flow. 

The poor starving programmers who are any good could still work on
commission in the complete absence of copyright law, only difference is
they'd have to be writing actual new code to make money.  Businesses
that cheat society by selling the world the same thing over and over
again, totally dependent on artificial pro-monopoly intervention by the
state to sustain that (hi microsoft!) might fold, but I don't give a
fuck about them (and they sure as hell don't give a fuck about me!)
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <rqg9e.22275$d5.163695@newsb.telia.net>
Ulrich Hobelmann wrote:
> Regarding that, and another post here about what's human nature:
> a system *needs* the ability to decide what's useful contributions to 
> society and what isn't.

I disagree about this. Having the ability to decide what's useful 
contributions to society might be a useful aspect of an economic system, 
but I'm not sure it's needed. It depends on many other factors of that 
economic system, and how the reward system looks.

 > It needs to be decentralized,

I'm also strongly opposed to centralism.

 > The free market is open for everyone, thus fair,

Openness for everyone is very good but doesn't automatically ensure 
fairness.

 > and provides a good way to decide what society wants and what it doesn't
 > need.

As I said earlier, I humbly disagree about this. (Again using heavy 
advertising as an example.)

> Currency is a necessary and important step to ensure free trade.

Currency is certainly a useful tool/medium for the process of free 
trade, but it's not necessary.
Further more, strictly trade-based economies might or mightn't be the 
best way to go. I'd love some experimentation with other protocols - 
similar to trade-based economies but slightly tweaked, or totally different.

I'd like to present the bittorrent protocol as a very abstract 
counterexample (not necessarily directly suitable for humans, but humor me).

IIRC, in the most popular implementation, the client downloads from 
everyone that will upload to it, and uploads to the four peers that will 
upload the most to it.

Similarly, I can imagine an imaginary society where people will gladly 
accept everything that's given to them, and give to the four people that 
gives them the most. (In this hypothetical example, the finite resource 
being managed is human labour (capacity of which differs from person to 
person) - in the real bittorrent case, the finite resource is bandwidth 
(capacity of which differs from person to person).

While this is a nice thought experiment, the difference which makes it 
works in the bittorrent case but not necessarily in the human case is 
that with bittorrent, the resources only come in one flavour - bits of 
the requested file - while with human labour, the resources can be 
haircuts, bread, fruit, textiles or novels, demands of which can of 
course differ.

But it's a great example that resource allocation does not necessarily 
demand an exact tit-for-tat trade to work to the benifit of all involved 
parts. If the tit-for-tat trade aspect can be removed, then maybe, 
hypothetically, there can be a working system without a global "what's a 
useful contribution"-arbitrator.

And the "what's a useful contribution"-arbitrator doesn't have to be a 
trade market, here's another example:

I'm thinking of using digital communication systems (in a decentralized, 
local fashion) where people can post needs, which then can be 
automatically organized into "labour postings" - and if someone does 
something that a lot of people want/need, then it's probably a useful 
contribution.

(What protocols this arbitrator is useful for is left unspecified - just 
like when programming, I like to abstract away the pieces and patterns, 
so they can be recombined in interesting ways, or changed piecemeal.)

> No, the people who don't farm, don't bake bread, don't build cars aren't 
> unemployed.  They do the healthcare, the childcare, the haircuts, the 
> music and theater plays for those people who are in material 
> production.  The jobs aren't in manufacturing anymore, but there will be 
> demand for services instead.

So in the future, people would cut their hair more often because there 
are more barbers?

> I can neither see what flaws you attribute to the monetary system here, 

I'm talking about a non-proven hunch I have that labor-saving and 
comfort-giving devices can lead to technological unemployment, to use 
Amelia Earharts terms.

> nor who will (and why) ever phase out free markets.
> 

If it turns out that there's no "why", no compelling reason, then 
obviously it won't happen, and everyone will be happy, including me.
If the things I perceive as problems with capitalism are either 
resolved, or turns out beneficial, then I'll have no reason to complain.

This is not something I believe will necessarily happen, though.

The concept "phasing out" of free markets seems to me very easy to 
grasp, but I might be wrong.

One hypothetical example:
If a group of people voluntarily pool their resources and divide them 
among themselves according to some non-trade based protocol (but one 
that's agreeable/beneficial to all of them), they would need less 
interaction with the outside, trade-based market. Other similar groups 
could pop up and they could interact with each other. Extra bonus if the 
groups produce a surplus, so they could give things away to gain 
coolness points in the general public + undermine the trade market.

Subversion through philantropy...

Sunnan (sprinkle IMHOs throughout)
From: Ulrich Hobelmann
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in   DDJ)
Date: 
Message-ID: <3cln0mF6od9c6U1@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> Regarding that, and another post here about what's human nature:
>> a system *needs* the ability to decide what's useful contributions to 
>> society and what isn't.
> 
> 
> I disagree about this. Having the ability to decide what's useful 
> contributions to society might be a useful aspect of an economic system, 
> but I'm not sure it's needed. It depends on many other factors of that 
> economic system, and how the reward system looks.

Yes, I meant that there has to be a reward system, because 
otherwise (like in Communism) people won't really produce useful work.

>> No, the people who don't farm, don't bake bread, don't build cars 
>> aren't unemployed.  They do the healthcare, the childcare, the 
>> haircuts, the music and theater plays for those people who are in 
>> material production.  The jobs aren't in manufacturing anymore, but 
>> there will be demand for services instead.
> 
> 
> So in the future, people would cut their hair more often because there 
> are more barbers?

Those were just service job examples.  I believe (stupidly?) that 
there's always enough work to do.

> One hypothetical example:
> If a group of people voluntarily pool their resources and divide them 
> among themselves according to some non-trade based protocol (but one 
> that's agreeable/beneficial to all of them), they would need less 
> interaction with the outside, trade-based market. Other similar groups 
> could pop up and they could interact with each other. Extra bonus if the 
> groups produce a surplus, so they could give things away to gain 
> coolness points in the general public + undermine the trade market.

I think that's basically what small companies and communities do 
anyway.  It's like in computing, where you don't do all 
communication over sockets, but try to use simple function calls 
instead.  Since they don't leave their domain, they're faster. 
Similarly trade involves a huge marketplace which might be too 
much work for some things.  It's keeping those things local, for 
which it makes sense.

> Subversion through philantropy...

I wouldn't call that subversion.  That's the nice thing about a 
really free society (yes, we have a long way till we are there!), 
that everything is possible, from free software to other 
cooperatives, and nobody can do anything about it ;)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <SPh9e.135052$dP1.474989@newsc.telia.net>
Ulrich Hobelmann wrote:
>> I disagree about this. Having the ability to decide what's useful 
>> contributions to society might be a useful aspect of an economic 
>> system, but I'm not sure it's needed. It depends on many other
>> factors of that economic system, and how the reward system looks.
> 
> 
> Yes, I meant that there has to be a reward system,

I understood that, and disagreed with it, because...

> because otherwise (like in Communism) people won't really produce 
> useful work.

... I'm not really sure about this.
(The Soviet system was centrally planned and had other serious flaws.)

>> So in the future, people would cut their hair more often because
>> there are more barbers?
> 
> 
> Those were just service job examples.  I believe (stupidly?) that 
> there's always enough work to do.

Yes, even in a post-scarcity society there will be work to do
(science/space work if nothing else), but that doesn't mean that the
resources and labor opportunities will always be of such nature that a
market is the best tool for distributing them.

>> Subversion through philantropy...
> 
> 
> I wouldn't call that subversion.

It's certainly non-capitalist.

> That's the nice thing about a really free society (yes, we have a
> long way till we are there!), that everything is possible, from free
> software to other cooperatives, and nobody can do anything about it
> ;)
> 

Yes, I also long for a free society.
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Rri9e.637$fw2.39@newssvr33.news.prodigy.com>
Sunnan wrote:
> The concept "phasing out" of free markets seems to me very easy to 
> grasp, but I might be wrong.
> 
> One hypothetical example:
> If a group of people voluntarily pool their resources and divide them 
> among themselves according to some non-trade based protocol (but one 
> that's agreeable/beneficial to all of them), they would need less 
> interaction with the outside, trade-based market. Other similar groups 
> could pop up and they could interact with each other. Extra bonus if the 
> groups produce a surplus, so they could give things away to gain 
> coolness points in the general public + undermine the trade market.
> 
> Subversion through philantropy...

Your hypothetical example sounds a lot like the case of free software. 
However, that situation depends on one important thing: the near-zero 
cost of reproduction.  As soon as physical goods are involved, the 
picture changes.  Short of a way to replicate physical goods for 
near-zero cost, that scenario is unlikely to be replicated outside of 
"intellectual property".

Another candidate might be modern-day communes and other "intentional 
communities":

http://www.ic.org/
http://en.wikipedia.org/wiki/Intentional_Community

However, despite the fact that there are quite a few of these, they 
don't seem to make much impact on the outside world in the way you suggest.

Anton
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Hxj9e.135058$dP1.475237@newsc.telia.net>
Anton van Straaten wrote:
> Your hypothetical example sounds a lot like the case of free software. 
> However, that situation depends on one important thing: the near-zero 
> cost of reproduction.

This is true, and it's quite possible that another protocol is needed 
for physical goods.

But please, bear in mind that the free software movement does have 
development costs - programmer labor. This is a limited resource that is 
(in some cases) pooled for the benefit of all.

> However, despite the fact that there are quite a few of these, they 
> don't seem to make much impact on the outside world in the way you suggest.

Don't underestimate the snowball effect.

But the internet, free software, wikipedia, the RSS web - these are all 
having a very real impact on the world.
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <lGk9e.119$iB1.14@newssvr19.news.prodigy.com>
Sunnan wrote:
> Don't underestimate the snowball effect.
> 
> But the internet, free software, wikipedia, the RSS web - these are all 
> having a very real impact on the world.

Undeniably so.  But I think at best, these things will end up creating a 
different balance, they won't eliminate the market economy as we know it.

I can imagine many other radical changes that also wouldn't eliminate 
market economies: for example, true digital cash that's not tied to 
national central banks (i.e. which relies on some other trust model) 
could cause major economic upheaval, but people would still be using it 
to trade with.

Anton
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <7vb9e.468$fw2.165@newssvr33.news.prodigy.com>
Sunnan wrote:
> Yes, these problems are exactly what I'm thinking of as some of the 
> major flaws in the monetary system, and I think this will lead to 
> trade-based market economies either being phased out or drastically 
> improved.

Trade-based market economies "phased out"?

ROFL.
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <4Yf9e.22274$d5.163707@newsb.telia.net>
Anton van Straaten wrote:
> Sunnan wrote:
> Trade-based market economies "phased out"?
> 
> ROFL.

Feudalism.
Soviet style central planning.
Were are these today?

Economic systems can change.
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <77i9e.628$fw2.98@newssvr33.news.prodigy.com>
Sunnan wrote:
> Anton van Straaten wrote:
> 
>> Sunnan wrote:
>> Trade-based market economies "phased out"?
>>
>> ROFL.
> 
> 
> Feudalism.
> Soviet style central planning.
> Were are these today?
> 
> Economic systems can change.

Sure, but "phased out" implies an orderly, planned transition over time 
to something else.  Considering the nature of the current global 
economic system, and considering how fundamental trade and markets are, 
that's a real stretch.

Assuming it's not imposed by an organization with the ability to project 
force globally on an unprecedented scale, then it implies a new system 
that's so obviously superior that it will be willingly adopted by all 
concerned.  Having a Star Trek-like replicator might help.

It's much more likely that while someone is trying to phase out markets, 
others will be busy finding ways to trade with each other.  Trade and 
markets are one of those things that tend to automatically route around 
obstacles -- you'd have to wipe the memory of them from the human race 
to succeed in eliminating them, and then only temporarily.  You might as 
well try to eliminate politics.

I can imagine many dramatic upheavals of the global economy, but a 
phased transition away from trade-based market economies is bottom of 
the list of probabilities, right next to invasion by extraterrestrials, 
who as it happens are probably the most likely source of such a transition.

I'll now deftly link this to something marginally topical and say that 
trade and markets are the lambda of economic systems.  Actually, money 
-- the abstraction of goods and services -- would be lambda, the rest 
are just macros and procedures.

Anton
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <SRi9e.135055$dP1.475236@newsc.telia.net>
Anton van Straaten wrote:
> Sure, but "phased out" implies an orderly, planned transition over time 
> to something else.

In which case I regret my wording. I don't advocate enforced central 
planning.

When I wrote "phased out", I did mean a transition over time, but not 
necessarily something orderly or planned. (It could be intentional, one 
vision of which I've described in another post (where I described it as 
"Subversion through philanthropy") - or it could just be.)

> It's much more likely that while someone is trying to phase out markets, 
> others will be busy finding ways to trade with each other.  Trade and 
> markets are one of those things that tend to automatically route around 
> obstacles -- you'd have to wipe the memory of them from the human race 
> to succeed in eliminating them, and then only temporarily.  You might as 
> well try to eliminate politics.

Protocols that are better (in some aspects) than trade-based markets in 
certain fields are used successfully in those fields. I used the 
BitTorrent protocol as one example. The informal resource pooling that 
takes place in parts of the free software movement is another example.

> I can imagine many dramatic upheavals of the global economy, but a 
> phased transition away from trade-based market economies is bottom of 
> the list of probabilities, right next to invasion by extraterrestrials, 
> who as it happens are probably the most likely source of such a transition.

Again, I regret and apologize for my use of the word "phase". My 
dictionary doesn't even have a verb form of phase (except as an archaic 
spelling of faze, which isn't the same thing).

> I'll now deftly link this to something marginally topical and say that 
> trade and markets are the lambda of economic systems.  Actually, money 
> -- the abstraction of goods and services -- would be lambda, the rest 
> are just macros and procedures.

Transactions are the lambdas.
A trade is composed of two transactions.
A gift is composed of one transaction.

These lambdas operate on goods and services.

(On an even lower level, we have natural resources and human labor - 
these are the "atoms" that compose goods and services.)

Transaction doesn't have to be directly between entities; resources can 
be pooled.

Money is an abstract good that some entities accept in trade; thus, it 
depends on two lambdas.

Using definitions and procedures are, as you seem to have understood as 
well, very useful when designing or considering economic systems and/or 
other processes and protocols.
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <2Bk9e.118$iB1.30@newssvr19.news.prodigy.com>
Sunnan wrote:
> Protocols that are better (in some aspects) than trade-based markets in 
> certain fields are used successfully in those fields. I used the 
> BitTorrent protocol as one example. The informal resource pooling that 
> takes place in parts of the free software movement is another example.

I don't see any problem with multiple models coexisting.

I'll note that with BitTorrent, a formal kind of currency has already 
arisen.  On (free) services like tvtorrents.com, to eliminate 
freeloading, you get credits for uploads, and are only allowed to 
download in proportion to the amount you upload.  That's trading, on a 
simple sort of market: there are different "prices" (credits/debits) 
associated with downloading and with different kinds of uploading.

I don't think this is happening because the person who created that site 
is indocrinated into the concept of the trade-based market; it's just a 
very natural way to organize exchanges.

> Transactions are the lambdas.
> A trade is composed of two transactions.
> A gift is composed of one transaction.
> 
> These lambdas operate on goods and services.

But you need to be able to operate on fractions of goods and services. 
To support that, you want an abstraction -- money.  Once you're 
exchanging goods and services for money, you've got a pretty classic market.

I guess I'm not completely sure what implications you see arising from 
"trade-based", e.g. does trading have to set prices?  Obviously there 
can be many variations on what sets prices, but for a market to work, it 
has to take supply and demand into account, particularly for physical goods.

> Transaction doesn't have to be directly between entities; resources can 
> be pooled.

Sure.  I don't think that conflicts with trade-based markets, though.

> Using definitions and procedures are, as you seem to have understood as 
> well, very useful when designing or considering economic systems and/or 
> other processes and protocols.

It's all "just abstraction"... :)

Anton

P.S. Curse you for sucking me into this thread!  ;)
From: Sunnan
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <1am9e.22283$d5.163884@newsb.telia.net>
Anton van Straaten wrote:
> I don't see any problem with multiple models coexisting.

Neither do I.

> I'll note that with BitTorrent, a formal kind of currency has already
>  arisen.  On (free) services like tvtorrents.com, to eliminate 
> freeloading, you get credits for uploads, and are only allowed to 
> download in proportion to the amount you upload.  That's trading, on
> a simple sort of market: there are different "prices"
> (credits/debits) associated with downloading and with different kinds
> of uploading.
> 
> I don't think this is happening because the person who created that
> site is indocrinated into the concept of the trade-based market;

I do think that's the reason, but that's subjective.

I do think that it's a sort of superstition, a sort of game, a sort of 
lack of trust in the protocol's inherent resource distribution 
algorithms, and I think the effect is tautological and violates the 
principle of "once and only once".

I've never seen any detrimental effects of so-called "freeloading" on 
BitTorrent. The only problem I've experienced is overloaded trackers.

IIRC, the most popular clients use the "download from everyone, upload 
to the four who give you the most"-approach. This ensure that the peers 
who upload the most are also uploaded to the most, while allowing 
everyone to participate, even those with a slightly slower connection.

(Unless they're talking about giving credit for seeding new stuff? Which 
is different from upload/download ratio, but orthogonal and not really 
compatible.)

The BitTorrent protocol is very interesting because it seems to fall 
outside the two oft-stated, conflicting ideals "everyone should only get 
what they can give" vs "from each according to ability, to each 
according to need". By the way, I'm often biased towards the latter, 
even though I try to see outside my biases. The former becomes absurd 
when taken to extremes; but I guess the gist that market advocates are 
after is "if you give more, you should get more" or "you should have the 
opportunity to strike it rich if you work hard or are smart/lucky". Both 
which are valid positions to hold, even if I don't.

It seems to me that capitalism in practice awards unethical behaviour 
and egoism (of the variety that hurts others, not just non-altruism) and 
only minimally reward production of vital services and goods (because 
that's called "unskilled" labor).

> it's just a very natural way to organize exchanges.

Yes, if you're thinking in the strict quid-pro-quo box, which might or 
mightn't be the best way to distribute resources.

>> Transactions are the lambdas. A trade is composed of two
>> transactions. A gift is composed of one transaction.
>> 
>> These lambdas operate on goods and services.
> 
> 
> But you need to be able to operate on fractions of goods and
> services. To support that, you want an abstraction -- money.

Trading with a symbolic good -- money -- is one way to keep track of
transactions, provided you want to do that (instead of tracking
production/consumtion separately). It's not necessarily the only way, or
the best way.

Many problems arise with money -- most obviously noticeable is that it's
(by design, but still) another scarce resource to manage.

I don't think some genius came up with the idea of currency as a
purposeful plan. More likely, people started trading with objects with a
high "trade value/size" ratio, such as perls and gems, for practical
reasons. The first abstract currency was probably a variant of IOUs.

> Once you're exchanging goods and services for money, you've got a
> pretty classic market.

Yes.

> I guess I'm not completely sure what implications you see arising
> from "trade-based", e.g. does trading have to set prices?

Trading on a supply-demand market will probably almost always affect
pricing, yes. Which causes the trade value / production value / use
value threefold disrepancy that's been discussed earlier.

> Obviously there can be many variations on what sets prices, but for a
> market to work, it has to take supply and demand into account,
> particularly for physical goods.

Seems like you're answering your own question?

>> Transaction doesn't have to be directly between entities; resources
>>  can be pooled.
> 
> 
> Sure.  I don't think that conflicts with trade-based markets, though.
> 
Variants of resource pooling may form the basis of economic systems that
might wholly or partially supplant trade-based markets.

By the way, I feel that I need to point out that IMVHO the problems with 
trade-based market economies are among the least problems of 
proprietarian, corporate, contemporary capitalism.

If I had to choose between non-hierarchical, worker's cooperatives 
trading their goods and services on a market on the one hand, and 
hierarchical, powerful corporations pooling their resources (keiretsu 
style) on the other, I'd choose the former in the blink of an eye.

Not that they can't both co-exist on the same planet, of course (well, 
depending on *how* powerful those corporations get... *shudder*).

> P.S. Curse you for sucking me into this thread!  ;)
> 

I'm sorry, but you've got a track record of being smart, so how could I 
resist?
From: Anton van Straaten
Subject: Re: What money? [Way off topic] (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <Hpw9e.827$fw2.604@newssvr33.news.prodigy.com>
Sunnan wrote:
> I do think that it's a sort of superstition, a sort of game, a sort of 
> lack of trust in [BitTorrent]'s inherent resource distribution 
> algorithms, and I think the effect is tautological and violates the 
> principle of "once and only once".
> 
> I've never seen any detrimental effects of so-called "freeloading" on 
> BitTorrent. The only problem I've experienced is overloaded trackers.

I think you're missing the reasoning: the credits give people an 
incentive to remain connected and allow uploading from files that 
they've already downloaded.  The detrimental effects of not doing this 
are fewer files available for download at any one time, and less 
bandwidth available per torrent.

"Freeloading" in this context refers to only staying connected long 
enough to download the file(s) you want -- your disconnection diminishes 
the system, so an incentive to remain connected is useful.

BTW, principles like "once and only once" need to be used with care when 
applying to complex systems -- redundancy is often good too, as the 
phrase "once and only once" demonstrates (the 
OnceAndOnlyOnceNameParadox).  Sometimes redundancy arises because of 
orthogonal areas of functionality which overlap, which I think is the 
case with the BitTorrent market idea.

> IIRC, the most popular clients use the "download from everyone, upload 
> to the four who give you the most"-approach. This ensure that the peers 
> who upload the most are also uploaded to the most, while allowing 
> everyone to participate, even those with a slightly slower connection.

This doesn't deal with what happens after the download is completed.  A 
market can give an incentive to stay online, in particular since it 
allows something that BitTorrent clients themselves don't: the ability 
to accumulate "wealth", retain it between epsiodes of downloading, and 
use it in future.  This is one of the primary benefits of money, the 
ability to "timeshift" the effects of one's resource generation and 
usage (not to mention the ability to aggregate and split it, so you're 
not reduced to direct barter).

This particular market also helps correct imbalances, such as the common 
one between upload and download speeds.  Users with DSL may be able to 
download e.g. 6 times faster than they can upload, which is another 
reason to want to encourage people to keep uploading when not downloading.

> The BitTorrent protocol is very interesting because it seems to fall 
> outside the two oft-stated, conflicting ideals "everyone should only 
> get what they can give" vs "from each according to ability, to each 
> according to need".

I don't think it does fall outside that.  Any individual user is limited 
by their bandwidth.  If they can only upload very slowly, then they can 
usually only download very slowly, so their use of resources is 
proportional to their providing of resources.

Imbalances, such as in the DSL case, can indeed cause a problem: if 
someone can download a file 6 times quicker than anyone else can receive 
from them, the system will suffer without some correction of that 
imbalance.  A market forces such users to "work harder" than someone 
with an equal bidirectional bandwidth.

> By the way, I'm often biased towards the latter, 
> even though I try to see outside my biases. 

That's generally quite an impractical bias, attractive as it may seem. 
It's only ever going to apply to people who feel that way themselves, 
unless you try to impose it somehow, or incentivize for it, which has 
proven difficult in practice.

As a system design principle, it often sucks, because as soon as you use 
it, you have to figure out ways to deal with all of the people who will 
try to work around it.

> It seems to me that capitalism in practice awards unethical behaviour 
> and egoism (of the variety that hurts others, not just non-altruism) and 
> only minimally reward production of vital services and goods (because 
> that's called "unskilled" labor).

I would distinguish between capitalism and "trade-based markets".  The 
latter exist outside capitalist contexts.  There were markets under 
communism, but their political/legal/social constraints were different. 
  Were they "trade-based"?  I don't know whether you'd consider them 
such, because we haven't defined that properly.

>> it's just a very natural way to organize exchanges.
> 
> 
> Yes, if you're thinking in the strict quid-pro-quo box, which might or 
> mightn't be the best way to distribute resources.

One problem there is that "best" is in the eye of the beholder.

Another problem is that we seem to be talking about possibilities that 
haven't even been defined yet.  The fantasy of "a better system" is 
always much more attractive than its actual incarnations once humans, 
competing for resources, get their grubby paws on it.

> Trading with a symbolic good -- money -- is one way to keep track of
> transactions, provided you want to do that (instead of tracking
> production/consumtion separately). It's not necessarily the only way, or
> the best way.
> 
> Many problems arise with money -- most obviously noticeable is that it's
> (by design, but still) another scarce resource to manage.

Money is just an abstraction of underlying resources, which themselves 
are scarce.  You'd have to show that the problems of managing money (in 
whatever sense) are greater than the problems of managing & exchanging 
those resources in the absence of money.  Afaict, money wins hands down.

> I don't think some genius came up with the idea of currency as a
> purposeful plan. More likely, people started trading with objects with a
> high "trade value/size" ratio, such as perls and gems, for practical
> reasons. The first abstract currency was probably a variant of IOUs.

Why does that matter?

>> Obviously there can be many variations on what sets prices, but for a
>> market to work, it has to take supply and demand into account,
>> particularly for physical goods.
> 
> 
> Seems like you're answering your own question?

I was really looking for what you consider the definition of 
"trade-based" to be.  For example, Soviet citizens still exchanged money 
for goods -- were those trade-based markets, as you see it?

Admittedly, trading was not supposed to be the primary factor in setting 
prices under communism.  But I would say that as long as you have 
markets of any kind, there's going to be an extremely strong tendency 
for what I consider the unavoidable realities of markets, like supply 
vs. demand, to influence the system in the direction of being more 
"trade-based" in the sense of allowing trading to influence prices, etc.

> Variants of resource pooling may form the basis of economic systems that
> might wholly or partially supplant trade-based markets.

Can you give any references or examples of what you're thinking of? 
It's difficult to discuss nebulous possibilities.  Are you thinking of 
a world consisting of nothing but worker's cooperatives, for example? 
(Presumably with laws against those efficient-but-amoral 
shareholder-controlled companies.)

> By the way, I feel that I need to point out that IMVHO the problems with 
> trade-based market economies are among the least problems of 
> proprietarian, corporate, contemporary capitalism.

I agree about the distinction, and that the problems lie more with the 
nature of the political, legal and social constraints surrounding 
markets than the markets themselves.  That's part of where I'm coming 
from in my skepticism about eliminating trade-based markets, with 
anything short of e.g. a global catastrophe.  "Markets will find a way", 
to paraphrase a line from "Jurassic Park".

> If I had to choose between non-hierarchical, worker's cooperatives 
> trading their goods and services on a market on the one hand, and 
> hierarchical, powerful corporations pooling their resources (keiretsu 
> style) on the other, I'd choose the former in the blink of an eye.

"Non-hierarchical" is another one of those ideas which ignores human 
nature.  Any group of people I've ever come across, or heard of, 
organizes itself into leaders, followers, onlookers, etc.  With enough 
people, you have a lot of leaders, and any group of leaders itself 
organizes similarly.  Bam, you have a hierarchy.  Which, btw, arises 
largely due to imbalances in natural leadership abilities and other 
talents, so there's some "from each according to ability" going on, but 
the "to each according to need" part isn't nearly as fundamental -- 
unless you have the ability to get what you need. :-}

Some of the most successful worker's cooperatives have had hierarchical 
structures in order to achieve efficient operation, even if workers are 
compensated on a more egalitarian basis.

Of course, you can create organizations with unusual ("inhuman") 
properties, but they tend not to scale up to the point where they can 
compete with other large, hierarchical organizations like nation-states, 
corporations, and religions, so they're not candidates for replacing 
existing systems, only for existing within them.

>> P.S. Curse you for sucking me into this thread!  ;)
>>
> 
> I'm sorry, but you've got a track record of being smart, so how could I 
> resist?

Compliments are a kind of currency, you know.  Careful, or you'll start 
a trade-based market.  :)

Anton
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113921457.243909.224850@g14g2000cwa.googlegroups.com>
Ulrich Hobelmann wrote:
> IMHO automating people away is good and in fact the goal of all
> IT.  If I can make manual work unnecessary with whatever software
> I produce, then I will have succeeded.

It is not the goal of all IT. But it's the goal of Java and most AI.
http://www.nooranch.com/synaesmedia/wiki/wiki.cgi?DavidNoble/ForcesOfProduction

Even Marshall Brain (of howstuffworks.com) explained:
"In the past, increases in productivity have meant higher wages and
reduced hours for workers. Today, worker wages are stagnant. Most of
the money from productivity improvements flows to the wealthy, creating
a gigantic Concentration of wealth. Robots will turbocharge the
concentration of wealth and leave tens of millions of workers in
poverty."
http://marshallbrain.com/robotic-faq.htm


> > Martin Luther King mentioned "the Moloch of technology" which
> > threatened to automate people away from manufacturing, for service
> > jobs with less pay.
>
> True, jobs shift from manufacturing to service jobs.  But it can't
> be said that therefore the service jobs are all low pay.

I don't think I claimed they'll all be less pay. Merely that servile
jobs certainly tend to pay less with longer hours. And what capital
does it create? Is it adding serious value to long-lasting capital?

Scrubbing bathtubs is one rather unglamorous service I don't want to be
the fate of my nation. ;) That's what neoliberal Paul Krugman is
talking about when he says "A lot of what we think of as unskilled
professions but are actually extremely subtle, like cleaning houses,
providing personal care, will actually have booming demand because
those are the things that we cannot automate away."

Our manufacturing jobs go to the one nation that might have more
prisoners (in absolute numbers) than the US -- China. Slave labor. They
don't even know what free speech is, except something to be beaten
down. There's a reason why their labor costs are miniscule.
Globalization is to be desired, but an important component of that is
requiring reasonably equalized working conditions.
http://www.pbs.org/wgbh/pages/frontline/shows/walmart/

"Automation is imperceptibly but inexorably producing dislocations,
skimming off unskilled labor from the industrial force. The displaced
are flowing into proliferating service occupations. These enterprises
are traditionally unorganized and provide low wage scales with longer
hours." -- Martin Luther King Jr.

I've worked a US service job before. It sucks, far worse than I've ever
heard a programmer complain about. These are not jobs many of us would
ever want, or wish on their children.


> The money still has to go somewhere, right?  If a company makes
> billions, the shareholders profit, and the shareholders will in
> turn do something with that money, such as spend on maybe
> higher-end services.  As in any industry services will cover a
> broad spectrum, as will their jobs.

Here's the scenario that always comes to mind; perhaps you can explain
it to me: Suppose you paid a US programmer $50/hr. Then she's offshored
to an Indian getting $20/hr. So you have $30/hr left that you MIGHT
plunge back into the local economy. Even if you were feeling altruistic
enough to buy 3 maids, that's still a net loss.

The neoliberal point of view is that you have to make the wealthy
happier, and they will return the favor. But since capital is so
mobile, what happens is they just play regions off each other to drive
the best deals.

Intel Chairman Andy Grove explained that the US had to employ heavy
protectionism to regain its semiconductor and steel industries:
http://www.forbes.com/2003/10/10/1010grovepinnacor.html

And when you look at intellectual property like patents/copyright, you
realize these are completely "socialist" -- laws designed to stop you
from using your own private property as it was intended, "for art's
sake and intellectual freedom through state enforcement." Less free
market, less control of your own physical property, less perfect market
information, less competiton+choice.

In fact, Adam Smith mentioned the "invisible hand" in only one place in
Wealth of Nations: explaining why investors will invest LOCALLY, rather
than abroad. ;) What today would be called a shockingly
anti-globalization stance, and the punchline is that he apparently
didn't even think the metaphor was a convincing reason that investment
would remain local.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cknh6F6nja35U1@individual.net>
Tayssir John Gabbour wrote:
> Even Marshall Brain (of howstuffworks.com) explained:
> "In the past, increases in productivity have meant higher wages and
> reduced hours for workers. Today, worker wages are stagnant. Most of
> the money from productivity improvements flows to the wealthy, creating
> a gigantic Concentration of wealth. Robots will turbocharge the

You think they won't spend that wealth somewhere?  Or give credit 
to smaller companies (and later buy those)?

> concentration of wealth and leave tens of millions of workers in
> poverty."
> http://marshallbrain.com/robotic-faq.htm

Not if those millions cooperate in, guess what: free market 
capitalism, and create and trade goods among each other.  Who will 
prevent them from doing that?  If the rich people sell expensive 
goods, don't buy them.  I wish, developing countries would do just 
that, instead of stupidly importing German cars and selling 
everything they have for that.

A tax transfer like guaranteed $300 for everybody would also 
reduce this somewhat, as rich people pay taxes (yes, that would 
mean removing laws that allow you to *not* pay taxes).

>>>Martin Luther King mentioned "the Moloch of technology" which
>>>threatened to automate people away from manufacturing, for service
>>>jobs with less pay.
>>
>>True, jobs shift from manufacturing to service jobs.  But it can't
>>be said that therefore the service jobs are all low pay.
> 
> 
> I don't think I claimed they'll all be less pay. Merely that servile
> jobs certainly tend to pay less with longer hours. And what capital
> does it create? Is it adding serious value to long-lasting capital?
> 
> Scrubbing bathtubs is one rather unglamorous service I don't want to be
> the fate of my nation. ;) That's what neoliberal Paul Krugman is
> talking about when he says "A lot of what we think of as unskilled
> professions but are actually extremely subtle, like cleaning houses,
> providing personal care, will actually have booming demand because
> those are the things that we cannot automate away."

What's wrong with a rich person having a butler and paying him/her 
decently, in order to get good service?  Do you think such a job 
would be bad?  I would even like it I think, depends on the person.

> Our manufacturing jobs go to the one nation that might have more
> prisoners (in absolute numbers) than the US -- China. Slave labor. They
> don't even know what free speech is, except something to be beaten
> down. There's a reason why their labor costs are miniscule.
> Globalization is to be desired, but an important component of that is
> requiring reasonably equalized working conditions.
> http://www.pbs.org/wgbh/pages/frontline/shows/walmart/

That's unrelated to capitalism or other systems.  Some countries 
are unfree.

> "Automation is imperceptibly but inexorably producing dislocations,
> skimming off unskilled labor from the industrial force. The displaced
> are flowing into proliferating service occupations. These enterprises
> are traditionally unorganized and provide low wage scales with longer
> hours." -- Martin Luther King Jr.

That's why everybody tells you all your life to get skills.

> I've worked a US service job before. It sucks, far worse than I've ever
> heard a programmer complain about. These are not jobs many of us would
> ever want, or wish on their children.

Sure, but that's because the demand for these jobs is very high, 
so they are minimum wage.  Companies that care to get good workers 
will pay more than that.

> Here's the scenario that always comes to mind; perhaps you can explain
> it to me: Suppose you paid a US programmer $50/hr. Then she's offshored
> to an Indian getting $20/hr. So you have $30/hr left that you MIGHT
> plunge back into the local economy. Even if you were feeling altruistic
> enough to buy 3 maids, that's still a net loss.

Only for the local economy.  Maybe that shows that bread, butter, 
housing and other work is overpriced in the US compared to India?

That's what makes me consider South America if the EU and US 
patent all programming and high bureaucracy doesn't really tickle 
me into founding a business anyway.

> The neoliberal point of view is that you have to make the wealthy
> happier, and they will return the favor. But since capital is so
> mobile, what happens is they just play regions off each other to drive
> the best deals.

Yes, the money ends up where people meet your demands.  If that 
means constructing my iBook gave some Malaysians work instead of 
some Americans, so be it.  Other countries are cheaper, or 
conversely, housing, bread+butter, work is too expensive in the 
USA.  Why?  I don't know.  But my solution is offshoring as much 
consumption as I can to cheaper countries, preferably to 
people/companies that honor the environment and human rights. 
Imagine: you could hire you personal co-programmer in China! 
Maybe I'll do that, if I want to build some software twice as fast 
for just $3 more per hour (and that would be way more than usual 
pay there).

> Intel Chairman Andy Grove explained that the US had to employ heavy
> protectionism to regain its semiconductor and steel industries:
> http://www.forbes.com/2003/10/10/1010grovepinnacor.html

True.  It's us against other countries.  But what rights do we 
have, after exploiting other countries, to deny them all wealth? 
I'll try to keep away from protectionist policies and nations, in 
general.

> And when you look at intellectual property like patents/copyright, you
> realize these are completely "socialist" -- laws designed to stop you
> from using your own private property as it was intended, "for art's
> sake and intellectual freedom through state enforcement." Less free
> market, less control of your own physical property, less perfect market
> information, less competiton+choice.

I'm strictly against patents.  Copyright is ok, since plagiarism 
is IMHO not ok at all.

> In fact, Adam Smith mentioned the "invisible hand" in only one place in
> Wealth of Nations: explaining why investors will invest LOCALLY, rather
> than abroad. ;) What today would be called a shockingly
> anti-globalization stance, and the punchline is that he apparently
> didn't even think the metaphor was a convincing reason that investment
> would remain local.

Investing locally has benefits.  It improves communication and 
reduces transportation costs (and pollution by cars).  For IT 
offshoring is very cheap, though.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113939073.661607.45360@f14g2000cwb.googlegroups.com>
Ulrich Hobelmann wrote:
> Tayssir John Gabbour wrote:
> > Scrubbing bathtubs is one rather unglamorous service I don't want
> > to be the fate of my nation. ;) That's what neoliberal Paul
> > Krugman is talking about when he says "A lot of what we think
> > of as unskilled professions but are actually extremely subtle,
> > like cleaning houses, providing personal care, will actually have
> > booming demand because those are the things that we cannot automate
> > away."
>
> What's wrong with a rich person having a butler and paying him/her
> decently, in order to get good service?  Do you think such a job
> would be bad?  I would even like it I think, depends on the person.

Unfortunately, I don't even enjoy scrubbing my own bathtub. :( But if
it came down to choosing that or programming in Java...


> > And when you look at intellectual property like patents/copyright,
> > you realize these are completely "socialist" -- laws designed to
> > stop you from using your own private property as it was intended,
> > "for art's sake and intellectual freedom through state
> > enforcement." Less free market, less control of your own physical
> > property, less perfect market information, less competiton+choice.
>
> I'm strictly against patents.  Copyright is ok, since plagiarism
> is IMHO not ok at all.

Who doesn't take someone else's hard-won algorithms, or use the
internet developed at enormous taxpayer expense?

Capitalists naturally prefer Free Software, because the market is freer
from state distortion; people aren't told by the state that there are
certain Numbers which require permission to copy.

Free sourcecode availability clearly results in more perfect market
information (and the mailing lists are usually far more open to boot).
This is important to capitalist systems.

And in desktop OSes, where's the serious competition? There's only
Windows (and maybe MacOS, which is largely built on Free Software).
Whereas there's many distros based on Gnu. Bill Gates tries convincing
people that Choice is Scary... Free Markets are Evil... yet he somehow
gets away with claiming that Linux supporters (like IBM) are communist.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3clfe1F6okicdU1@individual.net>
Tayssir John Gabbour wrote:
> Who doesn't take someone else's hard-won algorithms, or use the
> internet developed at enormous taxpayer expense?

But even TCP/IP isn't rocket science.  The concepts are standard 
networking tech (sliding window) pretty much.  Algorithms are also 
public-domain, and while red-black trees and other fancy stuff 
might be cool, most of it is just dead obvious techniques.

> And in desktop OSes, where's the serious competition? There's only
> Windows (and maybe MacOS, which is largely built on Free Software).

(Mac OS) Not true.  NeXTStep predates the free BSDs or GNU.  It's 
based on Mach + NeXTStep's libraries, with FreeBSD code taken to 
modernize the Unix base.  So yes, it contains open-source, but 
isn't really based on it (most NeXTStep/Cocoa stuff internally 
uses Mach messaging, AFAIK).

> Whereas there's many distros based on Gnu. Bill Gates tries convincing
> people that Choice is Scary... Free Markets are Evil... yet he somehow
> gets away with claiming that Linux supporters (like IBM) are communist.

Well, some are, as might be RMS to some degree.  Most are just 
sharing development costs on common software, while some might do 
it for the cooperative aspect.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113952860.309948.12670@g14g2000cwa.googlegroups.com>
Ulrich Hobelmann wrote:
> Tayssir John Gabbour wrote:
> > And in desktop OSes, where's the serious competition? There's only
> > Windows (and maybe MacOS, which is largely built on Free Software).

>
> (Mac OS) Not true.  NeXTStep predates the free BSDs or GNU.  It's
> based on Mach + NeXTStep's libraries, with FreeBSD code taken to
> modernize the Unix base.  So yes, it contains open-source, but
> isn't really based on it (most NeXTStep/Cocoa stuff internally
> uses Mach messaging, AFAIK).

"Q. What are the open projects at Apple?
Major projects include Darwin, the core operating system of Mac OS X,
and the Streaming Server which runs on a wide variety of platforms. The
list of open projects is available here.

"Q. Why is Apple opening up its source?
We believe the open source model is the most effective form of
development for certain types of software. By pooling expertise with
the open source development community, we expect to improve the
quality, performance and feature set of our software."
http://developer.apple.com/darwin/ps-faq.html

Even if what you said were true, I suspect it doesn't invalidate my
statement above which you quote.


> > Whereas there's many distros based on Gnu. Bill Gates tries
> > convincing people that Choice is Scary... Free Markets are Evil...
> > yet he somehow gets away with claiming that Linux supporters (like
> > IBM) are communist.
>
> Well, some are, as might be RMS to some degree.  Most are just
> sharing development costs on common software, while some might do
> it for the cooperative aspect.

Freedom, as in free speech, free market and free software, seems
inherently democratic. But on the other hand, it's fun for Bill Gates
to tar fellow Americans as Red Commies, especially though Bill's a
complete socialist. Eh, Komrade? ;)

But I suspect we are now beginning to "debate", so unless you have any
points which illuminate serious misunderstandings on my part or
whatever, I'll leave you with the last words.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cln95F6od9c6U3@individual.net>
Tayssir John Gabbour wrote:
> "Q. What are the open projects at Apple?
> Major projects include Darwin, the core operating system of Mac OS X,
> and the Streaming Server which runs on a wide variety of platforms. The
> list of open projects is available here.
> 
> "Q. Why is Apple opening up its source?
> We believe the open source model is the most effective form of
> development for certain types of software. By pooling expertise with
> the open source development community, we expect to improve the
> quality, performance and feature set of our software."
> http://developer.apple.com/darwin/ps-faq.html

Yes, that means that the software the Mac is based on was opened. 
  They didn't base the Mac on already existing open-source (unless 
you count Mach, as Matthias points out).

> Even if what you said were true, I suspect it doesn't invalidate my
> statement above which you quote.

I didn't intend to.  I guess I was just nitpicking.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <MCh9e.22281$d5.163748@newsb.telia.net>
Tayssir John Gabbour wrote:
> "Q. What are the open projects at Apple?
> Major projects include Darwin, the core operating system of Mac OS X,
> and the Streaming Server which runs on a wide variety of platforms. The
> list of open projects is available here.

Unfortunately, there seems to be a lack of free hardware drivers for the 
Darwin project. I still use the Linux kernel on my iBook.

> Freedom, as in free speech, free market and free software, seems
> inherently democratic. But on the other hand, it's fun for Bill Gates
> to tar fellow Americans as Red Commies, especially though Bill's a
> complete socialist. Eh, Komrade? ;)

You seem to have a weird definition of socialist and communist. Bill 
Gates isn't exactly known for being an advocate of worker's right (his 
infamous "letter to hobbyists" aside).

But it's OK, "socialist" and "communist" are misused words, anyway. 
There's no rescuing them.
From: Ulrich Hobelmann
Subject: OT: Darwin drivers
Date: 
Message-ID: <3clnh7F6jlqf9U1@individual.net>
Sunnan wrote:
> Unfortunately, there seems to be a lack of free hardware drivers for the 
> Darwin project. I still use the Linux kernel on my iBook.

Why aren't you using Mac OS with X11 or whatever you want to use 
on top?

I don't know the situation (and don't quite understand what you're 
trying to say here).  Are the Darwin drivers all binary, so that 
you mean you can't port them to Linux?

For Linux/BSD drivers the situation is bad, yes, as the Airport 
chip makers refuse to publish information on how to program the chip.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: OT: Darwin drivers
Date: 
Message-ID: <f1i9e.135054$dP1.475094@newsc.telia.net>
Ulrich Hobelmann wrote:
> Sunnan wrote:
> 
>> Unfortunately, there seems to be a lack of free hardware drivers for 
>> the Darwin project. I still use the Linux kernel on my iBook.
> 
> 
> Why aren't you using Mac OS with X11 or whatever you want to use on top?

It's part philosophical reasons, since I want to use free software, but 
also practical reasons - I can't afford the $129 (or whatever it is) 
every 18 months, and using/acquiring pirated versions would probably be 
even more hassle than using Linux or a BSD, which are easy to upgrade 
continuously.

There's another problem with using the Mac OS - I get tied to using only 
computers from a particular manufacturer (Apple) - I want to be 
reasonably assured that the software I'm using will be available on the 
next computer I use, which might or mightn't be from Apple.

(My next computer will probably be going back to my old 100 mhz pentium 
desktop, if this iBook breaks. That trusty old box is what I use 
"between computers".)

> I don't know the situation (and don't quite understand what you're 
> trying to say here).  Are the Darwin drivers all binary, so that you 
> mean you can't port them to Linux?

If Darwin had free drivers, maybe there could be a free operating system 
based around it (and using X11 etc) that I could use.

> For Linux/BSD drivers the situation is bad, yes, as the Airport chip 
> makers refuse to publish information on how to program the chip.
> 

If Darwin had free drivers (and maybe it even does, I haven't 
investigated the matter very much) someone even geekier than me could 
figure out the specs from the Darwin drivers and use that to make 
Linux/BSD drivers. I didn't even get an Airport chip for this computer, 
since they're still not supported, but I had one with my iBook g3 since 
that worked fine with Linux.
From: Ulrich Hobelmann
Subject: Re: OT: Darwin drivers
Date: 
Message-ID: <3clphfF6lu4saU1@individual.net>
Sunnan wrote:
> It's part philosophical reasons, since I want to use free software, but 
> also practical reasons - I can't afford the $129 (or whatever it is) 
> every 18 months, and using/acquiring pirated versions would probably be 
> even more hassle than using Linux or a BSD, which are easy to upgrade 
> continuously.

I understand the philosophical part, but I think my iBook is open 
"enough" for my purposes.  Since Tiger is just shipping, I suggest 
you pick up a copy of Panther (10.3) on ebay or somewhere.  I 
think it's a really good system and don't intend to get the new 
one anytime soon.  Nobody forces you to upgrade every 18 months ;)

And even if old versions aren't as widely supported by Apple 
anymore, you get security fixes, and most Unix stuff runs just 
like on Linux.

> There's another problem with using the Mac OS - I get tied to using only 
> computers from a particular manufacturer (Apple) - I want to be 
> reasonably assured that the software I'm using will be available on the 
> next computer I use, which might or mightn't be from Apple.

That's a point for going PC, so I'm wondering why you run Linux on 
a Mac ;)

I actually got a Mac, because I couldn't find enough information 
about Linux-laptops.  I want a simple machine with decent battery 
life and display, with sleep (suspend to RAM), TV-out, 
DVI/VGA-out, WLAN 100% working.  Most websites check ACPI and 
WLAN, but don't mention any of the TV/VGA capabilities. :(

Oh, and the machine should reasonably adhere to German radiation 
standards.  In a test in 2003 I think the iBook got a "Very Good" 
in a test, all PC laptops tested (including Dell) didn't even 
nearly satisfy the radiation tests.

The Mac works well, and has some commercial stuff, which makes it 
nice (Flash, Java if I need it).  It also has superior 
multi-language, with nice input methods, good keyboard facilities 
(I don't know about writing European languages on a 
PC-US-keyboard, since I only switched my layout since I have the 
Mac), nice fonts, etc.

Maybe I'll borrow some friend's laptop and try new Linux out sometime.

> If Darwin had free drivers, maybe there could be a free operating system 
> based around it (and using X11 etc) that I could use.

Did you try OpenDarwin or GNU/Darwin on the iBook?  I don't know 
too much about them.

> If Darwin had free drivers (and maybe it even does, I haven't 
> investigated the matter very much) someone even geekier than me could 
> figure out the specs from the Darwin drivers and use that to make 
> Linux/BSD drivers. I didn't even get an Airport chip for this computer, 
> since they're still not supported, but I had one with my iBook g3 since 
> that worked fine with Linux.

Yes, the old 11Mbit ones work AFAIK.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: OT: Darwin drivers
Date: 
Message-ID: <C4j9e.135056$dP1.475216@newsc.telia.net>
Ulrich Hobelmann wrote:
> I understand the philosophical part, but I think my iBook is open 
> "enough" for my purposes.  Since Tiger is just shipping, I suggest you 
> pick up a copy of Panther (10.3) on ebay or somewhere.  I think it's a 
> really good system and don't intend to get the new one anytime soon.  

I think that Panther is the version that shipped with this computer, 
actually.

Another danger of switching to Mac OS X is that it seems to affect the 
mind - it's a culture shift/perception shift, and people that can accept 
to use Mac OS X tends to start to accept binary-only shareware and 
similar ideas after a while. Different culture, different values - we're 
all affected by our peers.

(You may scoff, and refer to the "free will" that we supposedly have, 
but you yourself observed that Windows users use pirated software to a 
greater extent than other communities, and GNU/Linux users are often 
adamant about free software. Different cultures.)

> Nobody forces you to upgrade every 18 months ;)

It feels like an arbitrary cutoff, especially if you're used to the free 
upgrades of GNU/Linux/BSD.

>> There's another problem with using the Mac OS - I get tied to using 
>> only computers from a particular manufacturer (Apple) - I want to be 
>> reasonably assured that the software I'm using will be available on 
>> the next computer I use, which might or mightn't be from Apple.
> 
> 
> That's a point for going PC, so I'm wondering why you run Linux on a Mac ;)

iBooks are good-looking and the batteries last long. I've got and like 
the 12.1" size, and I couldn't find a PC notebook that small for a 
reasonable price. I could find some that were just a little bit more 
expensive, but they didn't have the Radeon that the iBook have, so why 
pay more for less just to stick it to Apple?

14"-15" PC notebooks are easy to find cheap, if you like to carry 
something that big around.

> Oh, and the machine should reasonably adhere to German radiation 
> standards.  In a test in 2003 I think the iBook got a "Very Good" in a 
> test, all PC laptops tested (including Dell) didn't even nearly satisfy 
> the radiation tests.

This is interesting to me, I've lost a friend that was hypersensitive to 
electromagnetic fields. (Whether or not the symptoms were psychosomatic, 
or caused by something other than electromagnetic fields, they cost him 
his life.)

> The Mac works well, and has some commercial stuff, which makes it nice 

"Commercial" and "proprietary" are orthogonal attributes.

> (Flash, Java if I need it).  It also has superior multi-language, with 
> nice input methods, good keyboard facilities (I don't know about writing 
> European languages on a PC-US-keyboard, since I only switched my layout 
> since I have the Mac), nice fonts, etc.

I strongly dislike the iBook keyboard, particularly the ctrl-key position.

> Did you try OpenDarwin or GNU/Darwin on the iBook?  I don't know too 
> much about them.

I haven't yet.

>> If Darwin had free drivers (and maybe it even does, I haven't 
>> investigated the matter very much) someone even geekier than me could 
>> figure out the specs from the Darwin drivers and use that to make 
>> Linux/BSD drivers. I didn't even get an Airport chip for this 
>> computer, since they're still not supported, but I had one with my 
>> iBook g3 since that worked fine with Linux.
> 
> 
> Yes, the old 11Mbit ones work AFAIK.

Though not in the iBook g4, if I'm correctly informed.
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113967096.152906.141590@l41g2000cwc.googlegroups.com>
Sunnan wrote:
> Tayssir John Gabbour wrote:
> > Freedom, as in free speech, free market and free software, seems
> > inherently democratic. But on the other hand, it's fun for Bill
> > Gates to tar fellow Americans as Red Commies, especially though
> > Bill's a complete socialist. Eh, Komrade? ;)
>
> You seem to have a weird definition of socialist and communist.

Absolutely. I come from the land where "socialist" and "communist" are
insults. The founders of my country also took great pains to explain
that we're NOT a democracy, and that the mob (most of the nation) must
never be allowed to seriously participate on an equal footing. But
nowadays we sure love to pretend we are a democracy. Because we
disrespect our own history.

So what? Most programmers think the craziest things about Java. ;) They
know nothing about their chosen profession.

And I probably don't know what socialism/communism/computing truly
means either.
From: Thant Tessman
Subject: [off topic] definitions (Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <d4joab$je$1@news.xmission.com>
Tayssir John Gabbour wrote:
> Sunnan wrote:

[...]

>>You seem to have a weird definition of socialist and communist.
> 
> Absolutely. I come from the land where "socialist" and "communist" are
> insults. [...]

[Editorial comments enclosed in square brackets.]

Socialism is [in theory] a state of society in which the means of 
production are in the hands of the people. [In practice, it's a state of 
society in which the means of production are in the hands of the State.]

Communism [according to Marx in "The German Ideology"] is a state of 
society in which the interests of the individual are indistinguishable 
from the interests of the collective. [Communism is a form of 
eschatological utopianism.]

Capitalism is the use in production of privately-owned resources made 
available through deferred consumption.

Mercantilism is the use of political means to favor specific industries 
at the expense of the rest of the economy.

I only bring this up because a whole lot of people spend a whole lot of 
time fallaciously ignoring the difference between capitalism and 
mercantilism, while simultaneously ignoring the connection between 
socialism and mercantilism.

"We are living today in a highly organized state of socialism. The state 
is all; the individual is of importance only as he contributes to the 
welfare of the state. His property is his only as the state does not 
need it. He must hold his life and possessions at the call of the state."
-- Bernard Baruch, renouned Wall Street investor, and chairman of War 
Industries Board under Woodrow Wilson, August 7, 1918

-thant
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86r7h6pb3w.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>> And in desktop OSes, where's the serious competition? There's only
>> Windows (and maybe MacOS, which is largely built on Free Software).
>
>(Mac OS) Not true.  NeXTStep predates the free BSDs or GNU.  It's
>based on Mach + NeXTStep's libraries, with FreeBSD code taken to
>modernize the Unix base.  So yes, it contains open-source, but isn't
>really based on it (most NeXTStep/Cocoa stuff internally uses Mach
>messaging, AFAIK).

And Mach isn't free software, or what?

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cln4oF6od9c6U2@individual.net>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> writes:
> 
> 
>>>And in desktop OSes, where's the serious competition? There's only
>>>Windows (and maybe MacOS, which is largely built on Free Software).
>>
>>(Mac OS) Not true.  NeXTStep predates the free BSDs or GNU.  It's
>>based on Mach + NeXTStep's libraries, with FreeBSD code taken to
>>modernize the Unix base.  So yes, it contains open-source, but isn't
>>really based on it (most NeXTStep/Cocoa stuff internally uses Mach
>>messaging, AFAIK).
> 
> 
> And Mach isn't free software, or what?

It used to be a university project, and as such not really Free 
Software, from a philosophical or political view.  Practically, of 
course, you're right that it is.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <7Sh9e.135053$dP1.475193@newsc.telia.net>
Ulrich Hobelmann wrote:
> It used to be a university project, and as such not really Free 
> Software, from a philosophical or political view.  Practically, of 
> course, you're right that it is.
> 

Free software is usually defined as software with the "four freedoms" - 
usage, modification, distribution and improvement.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86mzrup3xo.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>> And Mach isn't free software, or what?
>
>It used to be a university project, and as such not really Free
>Software, from a philosophical or political view.  Practically, of
>course, you're right that it is.

Eh??!  That doesn't make sense to me.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cm1elF6poletU2@individual.net>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> writes:
> 
> 
>>>And Mach isn't free software, or what?
>>
>>It used to be a university project, and as such not really Free
>>Software, from a philosophical or political view.  Practically, of
>>course, you're right that it is.
> 
> 
> Eh??!  That doesn't make sense to me.

I think they just left it open, just as AT&T originally had the 
Unix source open.  There wasn't much of an ideological movement 
behind it.

Well, I might be wrong, whatever...

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: BR
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.19.16.31.03.806793@comcast.net>
On Tue, 19 Apr 2005 07:37:37 -0700, Tayssir John Gabbour wrote:

> And when you look at intellectual property like patents/copyright, you
> realize these are completely "socialist" -- laws designed to stop you
> from using your own private property as it was intended, "for art's sake
> and intellectual freedom through state enforcement." Less free market,
> less control of your own physical property, less perfect market
> information, less competiton+choice.

I can use my "Intellectual Property" just fine.  Problems start when
someone else feels they're entitled to my hard work without compensation,
or even permission. Yes there's abuse of IP. That's the "human nature" I
made previous reference to. However the overall idea that intellectual
pursuits should have a rewards system comparable to the one physical
pursuits have is still valid.
From: Tayssir John Gabbour
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1113938255.746814.174220@f14g2000cwb.googlegroups.com>
BR wrote:
> On Tue, 19 Apr 2005 07:37:37 -0700, Tayssir John Gabbour wrote:
> > And when you look at intellectual property like patents/
> > copyright, you realize these are completely "socialist" -- laws
> > designed to stop you from using your own private property as it
> > was intended, "for art's sake and intellectual freedom through
> > state enforcement." Less free market, less control of your own
> > physical property, less perfect market information, less
> > competiton+choice.
>
> I can use my "Intellectual Property" just fine.  Problems start when
> someone else feels they're entitled to my hard work without
> compensation, or even permission. Yes there's abuse of IP. That's
> the "human nature" I made previous reference to. However the overall
> idea that intellectual pursuits should have a rewards system
comparable
> to the one physical pursuits have is still valid.

I only said these were socialist laws, not that it's "bad." It takes
away people's rights to employ their physical, private property to work
as intended. So there are State restrictions on how you can copy
certain large numbers sitting on your own harddrive, even it was
designed to do this efficiently.

Taking advantage of these social contracts, Microsoft has an
organization (the BSA) which develops a network of informants to snitch
on small businesses, so they can raid their offices.

I think socialism can be good, but today's copyright barons like Disney
pressure legislators into things like "infinite copyright." Even though
Disney loves plagiarizing Beauty and the Beast, Hunchback of Notre
Dame, and a zillion other stories they've ripped off.
http://www.archive.org/movies/movies-details-db.php?collection=opensource_movies&collectionid=LessigAtSwarthmore

And we only respect copyright when it suits us. "In the 19th century,
the United States was both a rapidly industrializing nation and -- as
Charles Dickens, among others, knew all too well -- a bold pirate of
intellectual property." And we did so until it stopped suiting us.
http://www.nytimes.com/2002/10/14/technology/14NECO.html
From: Sunnan
Subject: OT, but this thread is probably kill-filed by the purists anyway, (was Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <FA09e.22198$d5.162976@newsb.telia.net>
Tayssir John Gabbour wrote:
> Martin Luther King mentioned "the Moloch of technology" which
> threatened to automate people away from manufacturing, for service jobs
> with less pay.

FWIW, all this talk about labour-saving technology as threatening is 
dependent on a trade-based market economy, which isn't necessarily a 
state that humanity will dwell in for all time.

One possible alternative (perhaps complemented by others) is the 
emerging idea of commons-based peer-production (a la wikipedia, the srfi 
process, and the free software movement).
From: Thant Tessman
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d436gq$531$1@news.xmission.com>
Tayssir John Gabbour wrote:
> Karel Miklav wrote:
> 
>>Tayssir John Gabbour wrote:
>>
>>>For our part, technocrats generally desire our tech to have the
>>>quality of genius, and are annoyed when these Dilbertian
>>>capitalists obstruct us. We are biased in favor of technological
>>>solutions, even when not economical.
>>
>>Right. But we're not losers, as the economical is not our primary
>>motive anyway. Right?
> 
> 
> Right. The Parecon guys convincingly explain that us professionals are
> a 3rd class, at least in US society.
> http://discuss.joelonsoftware.com/default.asp?off.9.98430.5

Hans-Hermann Hoppe on Marxist and Austrian Class analysis:

	http://www.mises.org/mp3/marxism/Hoppe.mp3

-thant



-- 
"We are living today in a highly organized state of socialism. The state is
all; the individual is of importance only as he contributes to the welfare
of the state. His property is his only as the state does not need it. He 
must
hold his life and possessions at the call of the state." -- Bernard Baruch,
chairman of War Industries Board under Woodrow Wilson, August 7, 1918
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <F7adnco1Xt6pLcPfRVn-gg@giganews.com>
Bruce Lewis wrote:
> "Scott G. Miller" <········@freenetproject.org> writes:
> 
> 
>>Scheme and Lisp are better general purpose languages by
>>far, but the fact of the world is that people are trained on the
>>imperative style
> 
> 
> Imperative style is easy to do in Scheme, and I haven't seen anything in
> CL that would make it hard there either.
> 

Sorry, I should have said C-like languages.  Imperative is only part of it.

> 
>>and its much easier to hire
> 
> 
> You will find more resumes with "Java" on them, yes.  The question is
> how many of these resumes describe people who can contribute good code.
> 
> 
I've gone over 100 resumes for a position in our company recently.  I 
saw exactly one person who knew any functional languages.  Out of those 
100, every one of them had C or Java experience, and out of those, five 
candidates were qualified.  Thats still five times as many Java 
programmers than Lisp ones.  Its a terrible vicious cycle, but its reality.


>>or train a Java
>>developer for a large project than a Lisp programmer.
> 
> 
> I would like to see this claim backed up.  I really don't think most
> people are going to require a lot of time transitioning from f(a, b) to
> (f a b).

Maybe its not really true, but its perceived true by programming 
managers.  And thats enough.

> 
> 
>>Economics rule.
> 
> 
> Only in the long run.  For short to medium time periods, inertia rules.


True.

	Scott
From: William Bland
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.18.25.52.557641@abstractnonsense.com>
On Thu, 14 Apr 2005 13:02:23 -0500, Scott G. Miller wrote:
> 
> I've gone over 100 resumes for a position in our company recently.  I 
> saw exactly one person who knew any functional languages.  Out of those 
> 100, every one of them had C or Java experience, and out of those, five 
> candidates were qualified.  Thats still five times as many Java 
> programmers than Lisp ones.  Its a terrible vicious cycle, but its reality.

I used to believe one could find good programmers by sifting through
resumes.  Then I thought one could at least find them by giving very
thorough interviews.  Now I'm not sure what to believe.

Cheers,
	Bill.
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Ka6dnSQ6stsQQsPfRVn-gg@giganews.com>
William Bland wrote:
> On Thu, 14 Apr 2005 13:02:23 -0500, Scott G. Miller wrote:
> 
>>I've gone over 100 resumes for a position in our company recently.  I 
>>saw exactly one person who knew any functional languages.  Out of those 
>>100, every one of them had C or Java experience, and out of those, five 
>>candidates were qualified.  Thats still five times as many Java 
>>programmers than Lisp ones.  Its a terrible vicious cycle, but its reality.
> 
> 
> I used to believe one could find good programmers by sifting through
> resumes.  Then I thought one could at least find them by giving very
> thorough interviews.  Now I'm not sure what to believe.
> 
I don't mean to imply they weren't interviewed.  We weed through 
resumes, then interview what we identify as the top n candidates.  But 
we're way off topic.
From: William Bland
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.21.36.58.218753@abstractnonsense.com>
On Thu, 14 Apr 2005 16:24:22 -0500, Scott G. Miller wrote:
>> I used to believe one could find good programmers by sifting through
>> resumes.  Then I thought one could at least find them by giving very
>> thorough interviews.  Now I'm not sure what to believe.
>> 
> I don't mean to imply they weren't interviewed.  We weed through 
> resumes, then interview what we identify as the top n candidates.  But 
> we're way off topic.

Sorry, yes I know we're off topic, but I wasn't meaning to suggest that
you hadn't interviewed them.

Rather, I was meaning to suggest that neither resumes nor interviews
actually seem to be good ways of determining how good people are at
programming computers.

Best wishes,
		Bill.
From: Alex McGuire
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <425fd845$0$806$8fcfb975@news.wanadoo.fr>
William Bland wrote:
> On Thu, 14 Apr 2005 13:02:23 -0500, Scott G. Miller wrote:
> 
>>I've gone over 100 resumes for a position in our company recently.  I 
>>saw exactly one person who knew any functional languages.  Out of those 
>>100, every one of them had C or Java experience, and out of those, five 
>>candidates were qualified.  Thats still five times as many Java 
>>programmers than Lisp ones.  Its a terrible vicious cycle, but its reality.
> 
> 
> I used to believe one could find good programmers by sifting through
> resumes.  Then I thought one could at least find them by giving very
> thorough interviews.  Now I'm not sure what to believe.
> 
> Cheers,
> 	Bill.

Having had to do way too many interviews in the past, I've found that 
getting a short code sample, say 200-300 lines, from prospective 
candidates _really_ helpful. I ask them to send something they did 
themselves, that they are proud of. I don't expect a working app, or 
even for the code to compile, but I find I can filter out around 90% of 
applicants with 5-10 minutes spent looking at their work.

Of course, the first hurdle they have to pass is emailing the code to 
me. Putting code into a word document (I swear, this happens) means they 
don't get through the door.

cheers,

Alex
From: Barry Margolin
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <barmar-A95A6C.21422114042005@comcast.dca.giganews.com>
In article <······················@giganews.com>,
 "Scott G. Miller" <········@freenetproject.org> wrote:

> I've gone over 100 resumes for a position in our company recently.  I 
> saw exactly one person who knew any functional languages.  Out of those 
> 100, every one of them had C or Java experience, and out of those, five 
> candidates were qualified.  Thats still five times as many Java 
> programmers than Lisp ones.  Its a terrible vicious cycle, but its reality.

But if you can get 5 times as much product from the Lispers, you still 
win.

Most of the C/Java programmers probably learned at Joe Blow Technical 
Institute.  The functional programmers, on the other hand, are mostly 
going to be full-fledged hackers.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ud5sxcdua.fsf@STRIPCAPStelus.net>
Ulrich Hobelmann <···········@web.de> writes:
[decent Java criticisms]
> Java isn't even portable.  While Scheme, Smalltalk, Lisp, ML and others run on
> tons of platforms, Java until recently didn't even run on the BSDs.  For
> exotic platforms (non x86,PPC,ARM,SPARC) you probably have to ask a third
> party for a commercial VM.

In practice, Java is actually the most portable language I've used. Given a VM
implementation that is.

> Primitive types also add more fun to Java, because now every PrintStream or
> stuff like that (btw why are there Streams and Writers?  What's the difference
> anyway?) has a print(float) print(int) print(Object) print(char) ... method.

PrintStreams vs PrintWriters suck. What's wrong with just a regular writer?
Something to avoid the io exceptions I suppose. General streams vs writers is
useful though: binary data vs char data.

> Even more beautiful is the combination of runtime and the language's
> libraries.  Exceptions are part of the runtime, but the subclass
> "RuntimeException" doesn't have to be caught, unlike all others subclasses of
> Exception.  (yes, I know, this is enforced by the compiler, not the runtime)

Now I actually like this. That is, I like being able to choose between checked
exceptions vs unchecked exceptions. Check exceptions help me in general, and
by default. But when I need the flexibility of unchecked exceptions I am glad
to have it.

RuntimeException being an exception is a pain, since one has to always
remember to handle them differently:

  catch (RuntimeException passThru) {throw passThru;}
  catch (Exception err) {log.error("action failed", err);}

I would have had Exception and UnCheckedException extending Throwable,
then Error and RuntimeException extending UnCheckedException

> For threads you create an object (instead of just having a startThread method
> that you pass a function).  To have the thread run Thread.RUN() you invoke
> Thread.START(), cool huh?  And this start() methods probably does some sweet
> low-level meddling with the VM.

Well it kind of has to. If you can invoke run() directly, then would would be
running its code in calling thread, not its own.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c85rnF6gv79rU1@individual.net>
Ray Blaak wrote:
>>For threads you create an object (instead of just having a startThread method
>>that you pass a function).  To have the thread run Thread.RUN() you invoke
>>Thread.START(), cool huh?  And this start() methods probably does some sweet
>>low-level meddling with the VM.
> 
> 
> Well it kind of has to. If you can invoke run() directly, then would would be
> running its code in calling thread, not its own.

Sure it has to.  I just think the way it's done isn't too elegant. 
  Maybe it also was the lack of good threading and OO design 
examples I had initially.  Right now my only criticism there is 
that they made Thread.start() a method (that looks as though it 
would run just like any method, but instead it spawns a thread), 
instead of saying like forkThread(Function r), where Function 
encapsulates a method, so it could be Runnable; forkThread would 
not be an OO library method, but a language element.  I don't know 
much about pthreads; it seems to work that way (except that the 
methods are all library functions).

The one thing that instances of Runnable handle elegantly, is 
thread-local storage: just put it in the Runnable object.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <O9Q8e.134896$dP1.473440@newsc.telia.net>
Ray Blaak wrote:
> In practice, Java is actually the most portable language I've used. Given a VM
> implementation that is.

Doesn't that statement hold for every language?
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u8y3g81ye.fsf@STRIPCAPStelus.net>
Sunnan <······@handgranat.org> writes:
> Ray Blaak wrote:
> > In practice, Java is actually the most portable language I've used. Given
> > a VM implementation that is.
> 
> Doesn't that statement hold for every language?

Not the way I meant it.

Scheme tends to have significant implementation differences and extensions.

C/C++ tends to have significant OS-differences.

With Java, about the only thing I run into is whether I should use / vs \ in
my file names. Mostly things just work. There are a few dark corners
(e.g. paste buffer issues), but the effort I used to do to get portable apps
with a reasonable user interface has essentially evaporated.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Christopher Koppler
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.18.18.17.38.684527@chello.at>
On Mon, 18 Apr 2005 16:49:49 +0000, Ray Blaak wrote:

> With Java, about the only thing I run into is whether I should use / vs \ in
> my file names.

That's one thing you don't run into with Python, let alone Common Lisp.

-- 
Christopher
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <e7GdnWceK66ylPnfRVn-hw@giganews.com>
Christopher Koppler wrote:
> On Mon, 18 Apr 2005 16:49:49 +0000, Ray Blaak wrote:
> 
> 
>>With Java, about the only thing I run into is whether I should use / vs \ in
>>my file names.
> 
> 
> That's one thing you don't run into with Python, let alone Common Lisp.
> 
But you needn't run into it in Java.  You can use forward slashes always 
if I'm not mistaken.
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <GWU8e.1164$L03.792@newssvr17.news.prodigy.com>
Scott G. Miller wrote:
>> On Mon, 18 Apr 2005 16:49:49 +0000, Ray Blaak wrote:
>>
>>
>>> With Java, about the only thing I run into is whether I should use / 
>>> vs \ in
>>> my file names.
...
> But you needn't run into it in Java.  You can use forward slashes always 
> if I'm not mistaken.

You can -- I do whenever I can get away with it -- but if you display 
those path names to Windows users, they can get confused.
From: Christoph Breitkopf
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <wrall7f9owj.fsf@eddie.magrathea.local>
"Scott G. Miller" <········@freenetproject.org> writes:

> Christopher Koppler wrote:
> > On Mon, 18 Apr 2005 16:49:49 +0000, Ray Blaak wrote:
> >
> >>With Java, about the only thing I run into is whether I should use / vs \ in
> >>my file names.
> > That's one thing you don't run into with Python, let alone Common
> > Lisp.
> >
> But you needn't run into it in Java.  You can use forward slashes
> always if I'm not mistaken.

I think you should use

String fileSeparator = System.getProperty("file.separator");

(or File.separator or File.separatorChar)

Regards,
Chris
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u4qe47xci.fsf@STRIPCAPStelus.net>
Christopher Koppler <········@chello.at> writes:
> On Mon, 18 Apr 2005 16:49:49 +0000, Ray Blaak wrote:
> 
> > With Java, about the only thing I run into is whether I should use / vs \ in
> > my file names.
> 
> That's one thing you don't run into with Python, let alone Common Lisp.

I imagine they are more portable. [Although does CL have sockets officially
yet?]

But it must be stressed that Java did a decent job on the portability front.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <upswrgbfj.fsf@news.dtpq.com>
Ray Blaak <········@STRIPCAPStelus.net> writes:

> But it must be stressed that Java did a decent job on the portability front.

That's a definite potential benefit of having monopoly control
over a language and infinite development resources.
Hard to beat!
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <%cT8e.134920$dP1.473447@newsc.telia.net>
Ray Blaak wrote:
> With Java, about the only thing I run into is whether I should use / vs \ in
> my file names. Mostly things just work. There are a few dark corners
> (e.g. paste buffer issues), but the effort I used to do to get portable apps
> with a reasonable user interface has essentially evaporated.
> 

That's not my experience. I've had troubles getting code to work with 
kaffe, gcj and friends. There's no sun-blessed jvm readily available for 
my platform (GNU/Linux PPC), although I guess you could find one somewhere.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cifjiF6mi5h8U1@individual.net>
Sunnan wrote:
> Ray Blaak wrote:
> 
>> With Java, about the only thing I run into is whether I should use / 
>> vs \ in
>> my file names. Mostly things just work. There are a few dark corners
>> (e.g. paste buffer issues), but the effort I used to do to get 
>> portable apps
>> with a reasonable user interface has essentially evaporated.
>>
> 
> That's not my experience. I've had troubles getting code to work with 
> kaffe, gcj and friends. There's no sun-blessed jvm readily available for 
> my platform (GNU/Linux PPC), although I guess you could find one somewhere.

That's why I always say that Java is definitely NOT portable. 
Compare this to bytecode platforms like scheme48 or squeak or 
OCaml, or clisp (is that a bytecode system) and others that 
happily compile on about any Unix.

Since Java runs both on Unix (or Linux) and PPC (mac) I don't know 
why those bastards don't ever provide a public download so people 
can compile it for $BSD, or $UNIX in general, if it's OH SO 
PORTABLE...

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ciisiF6mfdurU1@news.dfncis.de>
In comp.lang.lisp Ulrich Hobelmann <···········@web.de> wrote:

>That's why I always say that Java is definitely NOT portable. 
>Compare this to bytecode platforms like scheme48 or squeak or 
>OCaml, or clisp (is that a bytecode system) and others that 
>happily compile on about any Unix.

Since when does clisp "happily compile on about any unix"?  I've
often had difficulties with it in the past.  For a while (don't
know if that's still the case) it didn't even compile with gcc 3.x
(either the FreeBSD port or NetBSD's pkgsrc entry -- can't remember
which -- had a dependency on gcc 2.95 in it so it could be built
at all.  I wasn't amused at all when I tried to build it and saw
that it started downloading and building gcc 2.95.x)  When I look
at its current ports entry, I see:

.if ${ARCH} == "alpha" || ${ARCH} == "ia64" || ${ARCH} == "amd64" || ${ARCH} == 
"sparc64"
BROKEN=         "Does not compile on 64-bit architectures"
.endif

IMHO it has always been quite a bitch to get compiled, and I'm not
speaking anymore about the 386 days with 8mb RAM when it caused the
machine to trash itself near death endlessly because of the huge C
files (not the case anymore with today's hardware, obviously).

Can't say the same about scheme48, which indeed seems to play nicely,
on the limited platforms that I've tried it on (*BSD, Linux, Solaris,
on a couple h/w platforms).

OCaml seems to be quite portable aswell, but there's a lot more effort
in OCaml than in the other systems you mentioned.

Dunno about Squeak.

>Since Java runs both on Unix (or Linux) and PPC (mac) I don't know 
>why those bastards don't ever provide a public download so people 
>can compile it for $BSD, or $UNIX in general, if it's OH SO 
>PORTABLE...

Because the beancounters then think that they have to officially
support those platforms.  Porting is now done by enthusiasts outside
Sun.  But they cannot redistribute the stuff.  One has to get the
patches, and the original source manually, and then you can build
the port with those.  Quite idiotic.

mkb.
From: Steven Shaw
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <426520fc_1@news.iprimus.com.au>
Ulrich Hobelmann wrote:
> That's why I always say that Java is definitely NOT portable. Compare 
> this to bytecode platforms like scheme48 or squeak or OCaml, or clisp 
> (is that a bytecode system) and others that happily compile on about any 
> Unix.

but Java is a "bytecode platform". The bytecode part mustn't be the hard 
part to get portable. I guess it's the runtime system.

I don't think Java requires a JIT but I guess people expect one. That's 
an aspect of the runtime system that is non-portable. Really don't think 
it's required though. What about tiny platforms J2ME etc? They probably 
don't have JITs.

Steve.
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uk6mx2u4g.fsf@STRIPCAPStelus.net>
Ulrich Hobelmann <···········@web.de> writes:

> Sunnan wrote:
> > There's no sun-blessed jvm readily available for my
> > platform (GNU/Linux PPC), although I guess you could find one somewhere.
> 
> That's why I always say that Java is definitely NOT portable. Compare this to
> bytecode platforms like scheme48 or squeak or OCaml, or clisp (is that a
> bytecode system) and others that happily compile on about any Unix.
> 
> Since Java runs both on Unix (or Linux) and PPC (mac) I don't know why those
> bastards don't ever provide a public download so people can compile it for
> $BSD, or $UNIX in general, if it's OH SO PORTABLE...

You are actually talking about a different thing then I meant.

I was referring to portability from the developer's point of view *in the
language itself*. That is, how often one have to make OS-specific code when
programming in it?

The portability of the underlying compiler/interpreter/VM/build system is
another aspect of portability, to be sure, and an important one.

So, Java code is decently portable. The JVM code, on the other hand, being in
C++ and necessarily implementing an abstract services layer on top of an
actual OS, is fundamentally less portable.

Sun deserves the criticisms about JVM availability here.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cnvkmF6mbt43U1@individual.net>
Ray Blaak wrote:
> You are actually talking about a different thing then I meant.
> 
> I was referring to portability from the developer's point of view *in the
> language itself*. That is, how often one have to make OS-specific code when
> programming in it?

Ok, Java has extensive libraries.  I just wonder why these 
libraries have to be Java.  I can also use the C standard lib as 
well as glib+gtk for GUIs + SDL for multimedia etc. and program 
everything in C.  The result will usually compile cleanly on 
numerous architectures.

That's why I'm wondering why there is no Java to configure;make 
for all those architectures.  The JIT could indeed be left out for 
exotic CPUs.  Since Java runs both on Linux and on PPC (Mac), it 
should be available for Linux/PPC for instance.

> The portability of the underlying compiler/interpreter/VM/build system is
> another aspect of portability, to be sure, and an important one.
> 
> So, Java code is decently portable. The JVM code, on the other hand, being in
> C++ and necessarily implementing an abstract services layer on top of an
> actual OS, is fundamentally less portable.
> 
> Sun deserves the criticisms about JVM availability here.

Yes.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uvf6g4rvb.fsf@STRIPCAPStelus.net>
Ulrich Hobelmann <···········@web.de> writes:
> Ok, Java has extensive libraries.  I just wonder why these 
> libraries have to be Java.  I can also use the C standard lib as 
> well as glib+gtk for GUIs + SDL for multimedia etc. and program 
> everything in C.  The result will usually compile cleanly on 
> numerous architectures.

While standardized libraries are the most obvious portability advantage, it's
a little more than that.

Consider how portable sizeof(int) is in C across OS's and varying CPU
architectures. 

Consider in Scheme how something as fundamental as modules and namespaces can
vary across implementations.
-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cpnqoF6pkmk3U1@individual.net>
Ray Blaak wrote:
> Consider how portable sizeof(int) is in C across OS's and varying CPU
> architectures. 

Excellently portable.  4 isn't portable.  sizeof(int) adapts to 
whatever architecture you happen to run on, so it always compiles 
and works like you want it.  That's why sizeof was introduced in 
the first place, I believe, to hide differences btw. platforms and 
compilers (structs layouts, padding, sizes ...).

> Consider in Scheme how something as fundamental as modules and namespaces can
> vary across implementations.

Which is maybe the biggest fault in R5RS.  They should really have 
included an extension mechanism...

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3PH9e.1119$fw2.172@newssvr33.news.prodigy.com>
Ulrich Hobelmann wrote:
> That's why I'm wondering why there is no Java to configure;make for all 
> those architectures.  The JIT could indeed be left out for exotic CPUs.  
> Since Java runs both on Linux and on PPC (Mac), it should be available 
> for Linux/PPC for instance.

That's easy: presumably Sun doesn't care enough about Linux/PPC.

Besides, Java is much younger than C.  C's current enviable portability 
(in the ways in which it is portable) has over three decades of 
development behind it.  During most of that time, C has been a kind of 
monopoly systems languages -- the systems language equivalent of 
Windows.  Competing with that is tough, especially for a 
quasi-proprietary language.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cpo14F6nscdgU1@individual.net>
Anton van Straaten wrote:
> Ulrich Hobelmann wrote:
> 
>> That's why I'm wondering why there is no Java to configure;make for 
>> all those architectures.  The JIT could indeed be left out for exotic 
>> CPUs.  Since Java runs both on Linux and on PPC (Mac), it should be 
>> available for Linux/PPC for instance.
> 
> 
> That's easy: presumably Sun doesn't care enough about Linux/PPC.

That's not a reason.  Well, it's a reason to despise and reject 
Java, since obviously its vendor doesn't give a damn about 
programmers being able to widely use it whereever *they* want.

> Besides, Java is much younger than C.  C's current enviable portability 
> (in the ways in which it is portable) has over three decades of 
> development behind it.  During most of that time, C has been a kind of 
> monopoly systems languages -- the systems language equivalent of 
> Windows.  Competing with that is tough, especially for a 
> quasi-proprietary language.

Maybe it was, but there is no reason for that.  When did K&R come 
out?  Programmers were able all the time to write their own C 
compiler, I'd say (especially since K&R C was nice and simple).

Indeed most Unix vendors had their own C compilers, as had (AFAIK) 
Borland for DOS and Windows.  I don't see the problems you 
mentioned, here.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <GFT9e.1192$fw2.466@newssvr33.news.prodigy.com>
Ulrich Hobelmann wrote:
> Anton van Straaten wrote:
>> That's easy: presumably Sun doesn't care enough about Linux/PPC.
> 
> 
> That's not a reason.  Well, it's a reason to despise and reject Java, 
> since obviously its vendor doesn't give a damn about programmers being 
> able to widely use it whereever *they* want.

That's a pointless rant.  Any commercial organization has to make 
decisions about where to expend its resources.  What you might really 
getting at is that you despise and reject the concept of proprietariness 
in languages, which is fine, but then why are you discussing Java at all?

>> Besides, Java is much younger than C.  C's current enviable 
>> portability (in the ways in which it is portable) has over three 
>> decades of development behind it.  During most of that time, C has 
>> been a kind of monopoly systems languages -- the systems language 
>> equivalent of Windows.  Competing with that is tough, especially for a 
>> quasi-proprietary language.
> 
> 
> Maybe it was, but there is no reason for that.  When did K&R come out?  
> Programmers were able all the time to write their own C compiler, I'd 
> say (especially since K&R C was nice and simple).

That simplicity is part of the reason, obviously.  You can write your 
own Java compiler and runtime, but Java does more than C does, and it's 
much more work to do it.  There are Linux/PPC Java development efforts, 
like this one:

http://www.blackdown.org/java-linux/java2-status/jdk1.2-status.html#ppc

They're not up to date, etc., because it's a huge job to keep them up to 
date.

> Indeed most Unix vendors had their own C compilers, as had (AFAIK) 
> Borland for DOS and Windows.  I don't see the problems you mentioned, here.

Borland's first C compiler came out at least about 10 years after C was 
invented.  10 years after Java was invented, i.e. now, we have Java 
compilers and runtimes from IBM and a number of others.  C has had 
another 20 years of development since that time.

Anton
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cqi51F6og57kU1@individual.net>
Anton van Straaten wrote:
> Ulrich Hobelmann wrote:
> 
>> Anton van Straaten wrote:
>>
>>> That's easy: presumably Sun doesn't care enough about Linux/PPC.
>>
>>
>>
>> That's not a reason.  Well, it's a reason to despise and reject Java, 
>> since obviously its vendor doesn't give a damn about programmers being 
>> able to widely use it whereever *they* want.
> 
> 
> That's a pointless rant.  Any commercial organization has to make 
> decisions about where to expend its resources.

Why do you think did I mention further up, that they could just 
publish a tarball to configure;make, like other systems do?  Where 
the incredible danger of this to Sun?  Where are the resources to 
spend?

> What you might really 
> getting at is that you despise and reject the concept of proprietariness 
> in languages, which is fine, but then why are you discussing Java at all?

Proprietariness is fine (i.e. closed-source implementations, as 
long as the language is *open*).  Java is open in as much as there 
is AFAIK a standard definition + test suite, so you can build your 
own Java.  I'm just angry that Sun always claims (their) Java is 
portable when it's not, and they obviously don't care in the least.

> That simplicity is part of the reason, obviously.  You can write your 
> own Java compiler and runtime, but Java does more than C does, and it's 
> much more work to do it.  There are Linux/PPC Java development efforts, 
> like this one:
> 
> http://www.blackdown.org/java-linux/java2-status/jdk1.2-status.html#ppc
> 
> They're not up to date, etc., because it's a huge job to keep them up to 
> date.

That's why it would be *incredibly* intelligent to use one common 
codebase that compiles on all platforms, like most GNU projects 
and NetBSD do.  The platform-specific code in NetBSD is not too 
much, either.  And Sun could provide the general codebase, with 
third parties (open source community) providing "plugins" for 
exotic platforms.  But as I said, Sun doesn't care about "write 
once, run anywhere".  It's more "write once, run here" where 
"here" means on Intel machines and Sun's SPARC servers.  The Mac 
is already a third-party (Apple) supported platform that Sun 
doesn't care about.

> Borland's first C compiler came out at least about 10 years after C was 
> invented.  10 years after Java was invented, i.e. now, we have Java 
> compilers and runtimes from IBM and a number of others.  C has had 
> another 20 years of development since that time.

But I don't think C changed in important ways (regarding openness) 
in that time.  It only got some standards (ANSI, ISO, C99).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <%BV9e.1218$fw2.11@newssvr33.news.prodigy.com>
Ulrich Hobelmann wrote:
> I'm 
> just angry that Sun always claims (their) Java is portable when it's 
> not, and they obviously don't care in the least.

This was covered already: when Sun talks about the portability of Java, 
they're talking about the portability of programs written in Java across 
systems that support Java.

You're talking about something completely different -- the portability 
of the underlying language implementation.  Afaik, Sun has never claimed 
anything about that except to state what systems Java runs on.

> That's why it would be *incredibly* intelligent to use one common 
> codebase that compiles on all platforms, like most GNU projects and 
> NetBSD do.

Well, that's the closed vs. open source debate, which is my point: if 
you're against closed source, even if only for languages, then you know 
where Java stands, and there's not much more to productively discuss. 
Of course, you can try to convince Sun to change, like this:
http://viva.sourceforge.net/action.html

> The Mac is already a third-party (Apple) supported 
> platform that Sun doesn't care about.

It's interesting to note that the reason Sun doesn't care about that 
platform is that Apple deliberately marginalizes the platform, by tying 
its software to its hardware, in the interests of higher per-unit 
profits.  The resulting marginalized platform is unattractive to other 
for-profit vendors who are similarly deliberately restricting their 
products.  To complete the circle here, if Microsoft hadn't backed off 
their earlier portability attempts for desktop Windows for the same 
kinds of reasons (focusing on the broadest market segments and ignoring 
the marginal ones), you might be able to run Windows on Apple hardware 
now, which would mean many more people would have the hardware, which 
might indirectly make Linux/PPC more interesting to Sun.

So this isn't just Sun's fault -- blame Apple and Microsoft, too.  And 
capitalism, while we're about it.  And consumers who behave like sheep.

>> Borland's first C compiler came out at least about 10 years after C 
>> was invented.  10 years after Java was invented, i.e. now, we have 
>> Java compilers and runtimes from IBM and a number of others.  C has 
>> had another 20 years of development since that time.
> 
> 
> But I don't think C changed in important ways (regarding openness) in 
> that time.  It only got some standards (ANSI, ISO, C99).

The *implementations* of C changed in some big ways -- it was ported 
onto new platforms, and compilers got much better.  Java was first 
released in 1995, only a year or so after the first PowerPCs.  At that 
time, the various existing operating systems and legacy languages like C 
had nothing better to do than be ported to these new systems. 
Meanwhile, Java had decades of catching up to do, and they focused on 
major platforms to do it.  I'm sure sometime in the next 20 years 
they'll get around to Linux/PPC.  ;)

Anton
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cr2fbF6modstU1@individual.net>
Anton van Straaten wrote:
> Ulrich Hobelmann wrote:
> 
>> I'm just angry that Sun always claims (their) Java is portable when 
>> it's not, and they obviously don't care in the least.
> 
> 
> This was covered already: when Sun talks about the portability of Java, 
> they're talking about the portability of programs written in Java across 
> systems that support Java.

Isn't that the identity claim?  A program written on platform X 
runs on all systems with platform X.  That can't be what Sun are 
talking about when they claim "run anywhere".  Really.

> You're talking about something completely different -- the portability 
> of the underlying language implementation.  Afaik, Sun has never claimed 
> anything about that except to state what systems Java runs on.

Sure, it's just a stupid (and obviously unjustified) marketing 
slogan.  As I said, Sun doesn't care, and -- since most people run 
x86 (Windows/Linux) -- almost nobody else cares, either.

>> That's why it would be *incredibly* intelligent to use one common 
>> codebase that compiles on all platforms, like most GNU projects and 
>> NetBSD do.
> 
> 
> Well, that's the closed vs. open source debate, which is my point: if 
> you're against closed source, even if only for languages, then you know 
> where Java stands, and there's not much more to productively discuss. Of 
> course, you can try to convince Sun to change, like this:
> http://viva.sourceforge.net/action.html

Yes, there is no more to discuss.  I was only ranting about Sun's 
portability claim, that's all.  I don't care if Java is free, 
because I utterly despise the language and Virtual machine (more 
than I dislike x86).

>> The Mac is already a third-party (Apple) supported platform that Sun 
>> doesn't care about.
> 
> 
> It's interesting to note that the reason Sun doesn't care about that 
> platform is that Apple deliberately marginalizes the platform, by tying 
> its software to its hardware, in the interests of higher per-unit 
> profits.

Apple doesn't try to maximize per-unit profit, but overall company 
profit.  They way they go might not be the right strategy, but 
it's a valid strategy.

For porting Java to the Mac: Sun only needs a PPC backend (which 
Apple or Sun, I don't know, built and put into Sun's Java 
distribution, so they have it) and an OS interface (the Linux one 
should work on the Mac with some minor modifications).  Maybe they 
talked to Apple not to release Java 5 themselves, but I think they 
just don't care.

> The resulting marginalized platform is unattractive to other 
> for-profit vendors who are similarly deliberately restricting their 
> products.  To complete the circle here, if Microsoft hadn't backed off 
> their earlier portability attempts for desktop Windows for the same 
> kinds of reasons (focusing on the broadest market segments and ignoring 
> the marginal ones), you might be able to run Windows on Apple hardware 
> now, which would mean many more people would have the hardware, which 
> might indirectly make Linux/PPC more interesting to Sun.

Why is it a marginalized platform.  There not many less Mac users 
than Linux users, and Mac users are more likely to actually *pay* 
for software, unlike Windows users (all that I know use illegal 
copies only) and Linux users who usually prefer Free (libre) 
software and aren't really willing to pay for commercial stuff, 
mostly because it's not GPLed.

> So this isn't just Sun's fault -- blame Apple and Microsoft, too.  And 
> capitalism, while we're about it.  And consumers who behave like sheep.

No, the only one who's not providing a Java that compiles for most 
platforms is Sun.  For the Mac and for Windows there exist 
numerous other systems and software, both free and commercial.

As for consumers: who is it that's crying for Java 5 on the Mac, 
since the Windows version came out?  *Lots* of people care.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <TsadnVJ-9aCuH_XfRVn-rg@giganews.com>
Ulrich Hobelmann wrote:
> Anton van Straaten wrote:
> 
>> Ulrich Hobelmann wrote:
>>
>>> I'm just angry that Sun always claims (their) Java is portable when 
>>> it's not, and they obviously don't care in the least.
>>
>>
>>
>> This was covered already: when Sun talks about the portability of 
>> Java, they're talking about the portability of programs written in 
>> Java across systems that support Java.
> 
> 
> Isn't that the identity claim?  A program written on platform X runs on 
> all systems with platform X.  That can't be what Sun are talking about 
> when they claim "run anywhere".  Really.

Sun doesn't claim it will "run anywhere".  I quote:

"The Java programming language lets you write powerful, 
enterprise-worthy programs that run in the browser, from the desktop, on 
a server, or on a consumer device. Java programs are run on -- 
interpreted by -- another program called the Java Virtual Machine (Java 
VM). Rather than running directly on the native operating system, the 
program is interpreted by the Java VM for the native operating system. 
This means that any computer system **with the Java VM installed** can 
run a Java program regardless of the computer system on which the 
application was originally developed."

(emphasis mine)

 From http://java.sun.com/overview.html
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86k6mv34gm.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>Why is it a marginalized platform.  There not many less Mac users than
>Linux users, and Mac users are more likely to actually *pay* for
>software, unlike Windows users (all that I know use illegal copies
>only) and Linux users who usually prefer Free (libre) software and
>aren't really willing to pay for commercial stuff, mostly because it's
>not GPLed.

MacOS X comes with Java (although Tiger only ships with Java 5.0 as a
"preview").  IMHO anyone who desires to run Lignux on a Mac needs to
get a new brain anyways.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csbknF6osr16U1@individual.net>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> writes:
> 
> 
>>Why is it a marginalized platform.  There not many less Mac users than
>>Linux users, and Mac users are more likely to actually *pay* for
>>software, unlike Windows users (all that I know use illegal copies
>>only) and Linux users who usually prefer Free (libre) software and
>>aren't really willing to pay for commercial stuff, mostly because it's
>>not GPLed.
> 
> 
> MacOS X comes with Java (although Tiger only ships with Java 5.0 as a
> "preview").  IMHO anyone who desires to run Lignux on a Mac needs to
> get a new brain anyways.

Still thinking if your typo was intentional (maybe 
subconsciously): Malignux?

;)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Dx7ae.22471$d5.165486@newsb.telia.net>
Ulrich Hobelmann wrote:
> Still thinking if your typo was intentional (maybe subconsciously): 
> Malignux?

Lignux was a proposed name for the combination of GNU libraries / 
utilities and the Linux kernel. It was rejected by both RMS and Linus.

RMS suggested GNU/Linux for the combined system and asked Linus if that 
was ok. Linus misunderstood, thought that RMS was speaking of a name 
specific to FSF's planned distribution and said yes to that, but does 
not endorse it as a name for the operating system in itself, preferring 
to call it just Linux.

Gah. They can fight their petty battles. I call it GNU/Linux most of the 
time, especially in writing, but occasionally I call it Linux since 
that's a shorter, more familiar term.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csi76F6oep7fU1@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> Still thinking if your typo was intentional (maybe subconsciously): 
>> Malignux?
> 
> 
> Lignux was a proposed name for the combination of GNU libraries / 
> utilities and the Linux kernel. It was rejected by both RMS and Linus.
> 
> RMS suggested GNU/Linux for the combined system and asked Linus if that 
> was ok. Linus misunderstood, thought that RMS was speaking of a name 
> specific to FSF's planned distribution and said yes to that, but does 
> not endorse it as a name for the operating system in itself, preferring 
> to call it just Linux.

The kernel by itself is Linux.  The whole userland is GNU 
typically, unlike the BSDs where kernel+userland are always 
combined in one distribution (and thus in one cvs archive, and 
consistent).  So almost any useful Linux installation (such as one 
able to compile the kernel) *is* a GNU/Linux.  I usually call it 
Linux, when everyone knows the sum of all distributions is meant, 
but if Linus says that the whole system *should* be called just 
Linux, that looks like greed to me and like disrespect to the GNU 
people who build and maintain the whole Linux userland.

> Gah. They can fight their petty battles. I call it GNU/Linux most of the 
> time, especially in writing, but occasionally I call it Linux since 
> that's a shorter, more familiar term.

Exactly.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1w8ae.22477$d5.165380@newsb.telia.net>
Ulrich Hobelmann wrote:
> but if Linus says that the whole system 
> *should* be called just Linux,

Don't know 'bout "should", but IIRC he's indicated that preference when 
asked (and he's been asked about this topic an annoyingly large amount 
of times).

> that looks like greed to me

I don't think of Linus as an especially greedy person.

I just don't think Linus takes this question as seriously as RMS and 
some others do.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csj26F6nskfrU1@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> but if Linus says that the whole system *should* be called just Linux,
> 
> 
> Don't know 'bout "should", but IIRC he's indicated that preference when 
> asked (and he's been asked about this topic an annoyingly large amount 
> of times).
> 
>> that looks like greed to me
> 
> 
> I don't think of Linus as an especially greedy person.

Not in that sense.  I just think since *he* is the author of Linux 
and uses GNU tools every day it would be respectful and 
appropriate to acknowledge their contribution.  Rejecting that 
name, in effect saying "no, the whole should just be called Linux, 
because it's shorter and sounds better" is not really respectful.

> I just don't think Linus takes this question as seriously as RMS and 
> some others do.

Sure he doesn't.  Again, it's fine to talk of Linux distributions, 
or of programs with a Windows, Mac and Linux version.  But a Linux 
distribution, be it Gnome, KDE or minimalistic, is always based on 
GNU/Linux.

One is a category (or "kind") of systems, the other one would be 
the technical term describing the system. ;)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <867jiuvntg.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>> "preview").  IMHO anyone who desires to run Lignux on a Mac needs to
>Still thinking if your typo was intentional (maybe subconsciously):
>Malignux?

I don't call it just "linux" since that's ignoring the Gnu.  I think
the term "Lignux" was once forwarded by Chairman Stallman, but later
dropped when he didn't get his will, going for "Gnu/Linux" instead.
Also, I've found out, that it seems to annoy a certain kind of
evangelical Lignux fanatics when I use that term. ;-)

mkb.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u_4ae.135329$dP1.476820@newsc.telia.net>
Matthias Buelow wrote:
> MacOS X comes with Java (although Tiger only ships with Java 5.0 as a
> "preview").  IMHO anyone who desires to run Lignux on a Mac needs to
> get a new brain anyways.

This is me.

I explained my reasons in ·······················@newsc.telia.net

About the "getting a new brain" part - I believe that switching 
operating systems is sort of like getting a new brain, or at least 
getting a large part of your thought processes changed.

Case in point - Ulrich used to be a self-described free software zealot; 
now, using the Mac OS, s/he can gladly accept binary-only shareware as a 
positive thing.

I believe that this is in part because of the technological and cultural 
shift that was the OS switch.

(But I'm a kook, anyway...)
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <mg0ae.1977$zi.134@newssvr31.news.prodigy.com>
Ulrich Hobelmann wrote:
> Anton van Straaten wrote:
> 
>> Ulrich Hobelmann wrote:
>>
>>> I'm just angry that Sun always claims (their) Java is portable when 
>>> it's not, and they obviously don't care in the least.
>>
>>
>>
>> This was covered already: when Sun talks about the portability of 
>> Java, they're talking about the portability of programs written in 
>> Java across systems that support Java.
> 
> 
> Isn't that the identity claim?  A program written on platform X runs on 
> all systems with platform X.  That can't be what Sun are talking about 
> when they claim "run anywhere".  Really.

It is.  Really.

The reason it's not the identity claim is because it is a kind of 
portability that you don't get with a language like C.  With Java, you 
don't have to use platform-specific #ifdefs.  You don't have to use 
tools like autoconf.  You don't have to know anything platform-specific 
about the systems you plan to target.  You write Java code, and compile 
it, and the resulting compiled .class files will run on any machine that 
runs Java, with no recompilation, changes or localized configuration 
required.

A particular area where you see a big advantage over older languages is 
between Windows and Unix.  A Java program runs on both without 
modification.  Not just console apps, but GUI apps too, and you don't 
need to know anything about the GUI system the target platforms use. 
None of this requires environments like Cygwin or WINE.  Of course, the 
JVM plays that role, but the point is that it's standard and available 
on the major platforms, and there are no configuration or recompilation 
issues.  Essentially, Sun has created a platform within a platform. 
That has major utility in many real-world scenarios.

>> You're talking about something completely different -- the portability 
>> of the underlying language implementation.  Afaik, Sun has never 
>> claimed anything about that except to state what systems Java runs on.
> 
> 
> Sure, it's just a stupid (and obviously unjustified) marketing slogan.  
> As I said, Sun doesn't care, and -- since most people run x86 
> (Windows/Linux) -- almost nobody else cares, either.

If you understand what it's actually supposed to mean, it's a perfectly 
reasonable and justifiable slogan, and it does mean something that's 
useful and valid and which reflects the experience of Java users.

> Yes, there is no more to discuss.  I was only ranting about Sun's 
> portability claim, that's all.  

Now you don't even have to do that anymore.  ;)

> Apple doesn't try to maximize per-unit profit, but overall company 
> profit.  They way they go might not be the right strategy, but it's a 
> valid strategy.

I meant that the approach they've chosen to maximize overall company 
profit is to maximize per-unit profit, instead of going for maximum 
volume, which they might achieve if they e.g. sold Mac OS the way 
Microsoft sells Windows, or sold Mac hardware that officially runs 
Windows or Linux.  (They would have had the option to run Windows back 
when Microsoft was targeting multiple CPUs.)

I didn't say it wasn't a valid strategy -- I'm pointing out that it has 
tradeoffs, one being that they guarantee themselves a smaller userbase 
than they might otherwise have.  That has consequences.

> Maybe they talked to Apple not to 
> release Java 5 themselves, but I think they just don't care.

It's quite possible Apple did ask Sun not to support other OSes on their 
hardware -- that wouldn't be an unusual sort of deal.  But "don't care" 
is also quite likely, which translates to "don't think it will affect 
their bottom line sufficiently to justify the effort".

>> The resulting marginalized platform is unattractive to other 
>> for-profit vendors who are similarly deliberately restricting their 
>> products.  To complete the circle here, if Microsoft hadn't backed off 
>> their earlier portability attempts for desktop Windows for the same 
>> kinds of reasons (focusing on the broadest market segments and 
>> ignoring the marginal ones), you might be able to run Windows on Apple 
>> hardware now, which would mean many more people would have the 
>> hardware, which might indirectly make Linux/PPC more interesting to Sun.
> 
> 
> Why is it a marginalized platform.  There not many less Mac users than 
> Linux users, and Mac users are more likely to actually *pay* for 
> software, unlike Windows users (all that I know use illegal copies only) 
> and Linux users who usually prefer Free (libre) software and aren't 
> really willing to pay for commercial stuff, mostly because it's not GPLed.

"Marginalized" is perhaps too strong.  All I really mean is that since 
the userbase is smaller than it might otherwise be, that affects the 
choice of many vendors as to whether or not to target that platform. 
When it comes to Linux/PPC, you're talking about a small, unofficial 
subset of an already relatively small market.  I don't think it's 
surprising that Sun has ignored that.  If Java were open source, it 
would be a different story; as it is, they'd have to devote engineers 
and support etc. to Linux/PPC.

>> So this isn't just Sun's fault -- blame Apple and Microsoft, too.  And 
>> capitalism, while we're about it.  And consumers who behave like sheep.
> 
> 
> No, the only one who's not providing a Java that compiles for most 
> platforms is Sun.  For the Mac and for Windows there exist numerous 
> other systems and software, both free and commercial.

My point was that the current situation is the result of a number of 
factors, not all under Sun's control.  Certainly, Sun makes the final 
decision, but if the situation were different, they might have an 
incentive to make a different choice.

> As for consumers: who is it that's crying for Java 5 on the Mac, since 
> the Windows version came out?  *Lots* of people care.

I take it back, then: "marginalized" was right.  ;)

Anton
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csc5kF6l1eieU1@individual.net>
Anton van Straaten wrote:
> The reason it's not the identity claim is because it is a kind of 
> portability that you don't get with a language like C.  With Java, you 
> don't have to use platform-specific #ifdefs.  You don't have to use 
> tools like autoconf.  You don't have to know anything platform-specific 
> about the systems you plan to target.  You write Java code, and compile 
> it, and the resulting compiled .class files will run on any machine that 
> runs Java, with no recompilation, changes or localized configuration 
> required.

Java has no ifdefs, because on all platforms the same library is 
installed (because it's standard and part of the JRE Sun distributes).

If you use the same libraries on all platforms, you don't need 
ifdefs in C either (I have never used/needed them so far).  As the 
(ok, rather small) stuff I write seems to compile fine on the Mac, 
FreeBSD and Linux I consider it somewhat portable.  For exotic 
Unices Autoconf might be needed, though (I don't know much about 
those platforms or the big blob that is autoconf).

> A particular area where you see a big advantage over older languages is 
> between Windows and Unix.  A Java program runs on both without 
> modification.  Not just console apps, but GUI apps too, and you don't 
> need to know anything about the GUI system the target platforms use. 
> None of this requires environments like Cygwin or WINE.  Of course, the 
> JVM plays that role, but the point is that it's standard and available 
> on the major platforms, and there are no configuration or recompilation 
> issues.  Essentially, Sun has created a platform within a platform. That 
> has major utility in many real-world scenarios.

True, but a POSIX+SDL app should also cleanly compile on both.  Of 
course the POSIX and SDL layers look different internally, but 
that's because the platforms are different underneath.  The JRE 
for different platforms is also full of ifdefs I suppose, because 
the platforms are different.  Java just includes so much stuff 
that mostly you don't need ifdefs because you can "stay" in Java.

But you're right.  If you're fine with the included Java libs 
(which are quite extensive and IMHO excellently documented), Java 
as a language is very portable.

>> Apple doesn't try to maximize per-unit profit, but overall company 
>> profit.  They way they go might not be the right strategy, but it's a 
>> valid strategy.
> 
> 
> I meant that the approach they've chosen to maximize overall company 
> profit is to maximize per-unit profit, instead of going for maximum 
> volume, which they might achieve if they e.g. sold Mac OS the way 
> Microsoft sells Windows, or sold Mac hardware that officially runs 
> Windows or Linux.  (They would have had the option to run Windows back 
> when Microsoft was targeting multiple CPUs.)

True, that would be cool, too.  But it also carries a fair amount 
of risk, so Apple conservatively only increases their hardware 
market share for now (or sometimes even just absolute numbers).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Em9ae.1495$iB1.842@newssvr19.news.prodigy.com>
Ulrich Hobelmann wrote:
> Java has no ifdefs, because on all platforms the same library is 
> installed (because it's standard and part of the JRE Sun distributes).

Right, exactly.  That's the point.

> If you use the same libraries on all platforms, you don't need ifdefs in 
> C either 

In C, you don't have that choice -- look at the differences between 
Windows and Unix, for example.  But there are many differences between 
Unixes, too -- take a look at the C header files of any non-trivial 
program.  The point about using a virtual machine is that the user of 
the VM can rely on a standard environment.  C is too close to the 
machine to achieve the kind of portability a VM can provide.

> (I have never used/needed them so far).  As the (ok, rather
> small) stuff I write seems to compile fine on the Mac, FreeBSD and Linux 
> I consider it somewhat portable.  For exotic Unices Autoconf might be 
> needed, though (I don't know much about those platforms or the big blob 
> that is autoconf).

Autoconf (or something like it) and ifdefs are a lot more necessary than 
you think, to achieve portability of non-trivial C programs across 
different Unixes.  Why do you think most widely ported open source C 
programs use these techniques?  It's not just about exotic Unixes -- 
even the most common ones have differences that need to be programmed 
around.

> Java just includes so much stuff that mostly you don't need 
> ifdefs because you can "stay" in Java.
> 
> But you're right.  If you're fine with the included Java libs (which are 
> quite extensive and IMHO excellently documented), Java as a language is 
> very portable.

It goes beyond the included Java libs -- any library written in pure 
Java is generally equally portable.  This gives a benefit to people 
writing libraries, as well as to people using them.  It's also why the 
Java community has tended to rewrite everything imaginable in pure Java, 
even reverse engineering protocols in order to implement pure Java 
libraries that don't have to depend on e.g. a closed source C library.

If you're willing to live with Java the language (a task which requires 
some mixture of fortitude and blissful ignorance), then the environment 
it provides is very standard, and very rich.  That's why so many other 
languages have been implemented on top of the JVM.  The good news is 
that there are Schemes and Lisps in that mix, too.

Anton
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csn9uF6osqaaU1@individual.net>
Anton van Straaten wrote:
> Autoconf (or something like it) and ifdefs are a lot more necessary than 
> you think, to achieve portability of non-trivial C programs across 
> different Unixes.  Why do you think most widely ported open source C 
> programs use these techniques?  It's not just about exotic Unixes -- 
> even the most common ones have differences that need to be programmed 
> around.

If you use standard, widely ported libraries (libc, gtk, sdl) you 
shouldn't ever need ifdefs.  These libraries, however, need ifdefs 
for each platform they're on, just like the Java VM probably also 
has ifdefs for each platform inside.

(Note: Unix has been called a virtual machine too, for probably 
the same reason.  If you stray from the standard path, you're on 
your own, just like in Java where you might need to link with 
native libraries...)

NetBSD has a rather small core for each platform it runs on.  The 
rest (even of the kernel) is pretty much portable C.

> It goes beyond the included Java libs -- any library written in pure 
> Java is generally equally portable.

As are most programs written in pure C (without using other 
platform-specific libraries).

> If you're willing to live with Java the language (a task which requires 
> some mixture of fortitude and blissful ignorance), then the environment 

You're saying I'm not ignorant?  Thanks ;)

> it provides is very standard, and very rich.  That's why so many other 
> languages have been implemented on top of the JVM.  The good news is 
> that there are Schemes and Lisps in that mix, too.

The good news is that there are also VMs for Scheme written in 
PreScheme, which are quite portable and fast at the same time 
(function calls (proportionally needed for modular programming) in 
Scheme48 are waaay faster than in Java, for instance).  Libraries, 
of course, are another matter, but could just as well be written 
in those languages (with an AWT-like cross-platform layer?).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Hmaae.1510$iB1.384@newssvr19.news.prodigy.com>
Ulrich Hobelmann wrote:
> Anton van Straaten wrote:
> 
>> Autoconf (or something like it) and ifdefs are a lot more necessary 
>> than you think, to achieve portability of non-trivial C programs 
>> across different Unixes.  Why do you think most widely ported open 
>> source C programs use these techniques?  It's not just about exotic 
>> Unixes -- even the most common ones have differences that need to be 
>> programmed around.
> 
> 
> If you use standard, widely ported libraries (libc, gtk, sdl) you 
> shouldn't ever need ifdefs.  

That also assumes that you use the same C compiler on every platform, 
and it ignores things like differing word sizes which can affect your 
application even if you use standard libraries.

Can you point out any reasonably sized C programs (not tiny ones) that 
are so lacking in platform-specific ifdefs, and don't use a 
platform-specific configuration program at build time?

> (Note: Unix has been called a virtual machine too, for probably the same 
> reason.  If you stray from the standard path, you're on your own, just 
> like in Java where you might need to link with native libraries...)

There's no comparison.  POSIX and even widely ported libraries only take 
you so far.  Java provides a single, standardized system that offers an 
entire range of application functionality.  It is, essentially, a kind 
of operating system, so in that sense it can be compared to Unix; the 
difference is, the variation between different implementations of Java 
(e.g. Sun and IBM) is orders of magnitude lower than the variation 
between different Unixes.  It makes a huge difference, in practice.

> NetBSD has a rather small core for each platform it runs on.  The rest 
> (even of the kernel) is pretty much portable C.

Right, but now take a program that compiles on NetBSD, and compile on 
Linux.  Or Solaris, or AIX, or FreeBSD, or OpenBSD... or Windows!!!  You 
keep ignoring Windows -- your portable C library argument really doesn't 
play well there.  In theory, it's possible, with libraries like 
wxWindows, but in practice, most portable C systems resort to something 
like Cygwin, which is essentially its own Unix platform with its own set 
of incompatibilities.

>> It goes beyond the included Java libs -- any library written in pure 
>> Java is generally equally portable.
> 
> 
> As are most programs written in pure C (without using other 
> platform-specific libraries).

That would be fine, if C didn't have to depend on so much external stuff 
outside its control.  What Java does is define the entire environment as 
standard.

>> If you're willing to live with Java the language (a task which 
>> requires some mixture of fortitude and blissful ignorance), then the 
>> environment 
> 
> 
> You're saying I'm not ignorant?  Thanks ;)

Well, you're defending *C*, which is basically a bad but portable 
high-level assembly language.  I wouldn't get too cocky if I were you. ;)

> The good news is that there are also VMs for Scheme written in 
> PreScheme, which are quite portable and fast at the same time (function 
> calls (proportionally needed for modular programming) in Scheme48 are 
> waaay faster than in Java, for instance).  Libraries, of course, are 
> another matter, but could just as well be written in those languages 
> (with an AWT-like cross-platform layer?).

"Just as well be written" == vaporware.  You're certainly right that the 
arguments which apply to Sun's VM apply to any VM+library combination 
that is equally comprehensive.  The problem is, not many systems are 
equally comprehensive, particularly when it comes to the kinds of 
applications that Java targets.

Anton
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csr9eF6qe9osU1@individual.net>
Anton van Straaten wrote:
> That also assumes that you use the same C compiler on every platform, 
> and it ignores things like differing word sizes which can affect your 
> application even if you use standard libraries.

Only for linking does this make a difference.  A header file 
should sufficiently describe a library, that together with C's 
standardized calling conventions it should be compatible.

> Can you point out any reasonably sized C programs (not tiny ones) that 
> are so lacking in platform-specific ifdefs, and don't use a 
> platform-specific configuration program at build time?

Most programs after a while started using autoconf.  I don't 
really know what issues they encountered, maybe broken platforms?

Anyway, for me this invariably means that I can't understand the 
build process anymore.

When I write X11 or GTk or other stuff (haven't tried SDL, but 
it's said to be portable) I never *need* ifdefs + autoconf. 
Therefore building is fast and transparent.

>> NetBSD has a rather small core for each platform it runs on.  The rest 
>> (even of the kernel) is pretty much portable C.
> 
> 
> Right, but now take a program that compiles on NetBSD, and compile on 
> Linux.  Or Solaris, or AIX, or FreeBSD, or OpenBSD... or Windows!!!  You 
> keep ignoring Windows -- your portable C library argument really doesn't 
> play well there.

MS claims to have a POSIX compliance layer on NT (which is XP). 
If something doesn't work, write a problem report to them.

> In theory, it's possible, with libraries like 
> wxWindows, but in practice, most portable C systems resort to something 
> like Cygwin, which is essentially its own Unix platform with its own set 
> of incompatibilities.

Of course the GTk argument only applies when you run an X server 
on Windows or the Mac.  SDL OTOH uses native libraries to 
implement its own functionality (just like wxwin).  Again, no need 
to use all that ifdef+autoconf bloat.  People still do it, though.

>>> If you're willing to live with Java the language (a task which 
>>> requires some mixture of fortitude and blissful ignorance), then the 
>>> environment 
>>
>>
>>
>> You're saying I'm not ignorant?  Thanks ;)
> 
> 
> Well, you're defending *C*, which is basically a bad but portable 
> high-level assembly language.  I wouldn't get too cocky if I were you. ;)

I much prefer coding in C to coding in Java.  It gets done faster, 
compiles faster, runs much faster, debugging is easier, too.  And 
easier access to all those (portable or not) libs ;)

>> The good news is that there are also VMs for Scheme written in 
>> PreScheme, which are quite portable and fast at the same time 
>> (function calls (proportionally needed for modular programming) in 
>> Scheme48 are waaay faster than in Java, for instance).  Libraries, of 
>> course, are another matter, but could just as well be written in those 
>> languages (with an AWT-like cross-platform layer?).
> 
> 
> "Just as well be written" == vaporware.  You're certainly right that the 
> arguments which apply to Sun's VM apply to any VM+library combination 
> that is equally comprehensive.  The problem is, not many systems are 
> equally comprehensive, particularly when it comes to the kinds of 
> applications that Java targets.

Sure, but Java is nothing but a set of written, standardized 
libraries.  It exists, unlike alternatives, but still I wanted to 
mention that it could be done in a better language, too :)

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87is2e7iu2.fsf@qrnik.zagroda>
Ulrich Hobelmann <···········@web.de> writes:

>> Can you point out any reasonably sized C programs (not tiny ones)
>> that are so lacking in platform-specific ifdefs, and don't use a
>> platform-specific configuration program at build time?
>
> Most programs after a while started using autoconf.  I don't really
> know what issues they encountered, maybe broken platforms?

My project (a compiler) uses autoconf to detect the following, apart
for many details; it has fallbacks with reduced functionality or
reduced performance for most things being unavailable:

- availability of various libraries to make available from my language

- availability of functions and constants from these libraries which
  are present only in some versions

- availability of GCC extensions which are useful for generating
  better code but are absent in other compilers or older GCC versions
  (__builtin_expect, statement expressions, typeof,
  __attribute__((regparam(N), noreturn, packed)))

- the CPU family, to enable the appropriate postprocessor of assembler
  output coming from the C compiler, which makes tail calls efficient

- whether -fwrapv flag is needed to disable optimizations where the
  compiler assumes that the program doesn't cause signed arithmetic
  to overflow (I currently rely on wraparound of signed arithmetic
  to implement fixnum arithmetic)

- whether int or long can be cast to a pointer type and back
  (for fixnums); actually I assume that they can if only they have
  an appropriate size

- whether there exists some integer type twice as long as the previous
  type (for faster fixnum multiplication)

- whether values of type double can be directly accessed at addresses
  aligned only to the size of a pointer; if not, they will be memcpy'd
  to/from a correctly aligned variable

- whether struct tm has member tm_gmtoff; if not, it will be computed
  using an extra gmtime call

- whether the variable 'timezone' can be used to determine the current
  time zone

- whether sysinfo() is present (optional Linux-specific function for
  obtaining the amount of physical memory, used to tune the GC better)

- which library contains iconv() if it's available at all, for
  character recoding

- which iconv encoding name denotes UCS-4 in native endianness, if any

- whether nl_langinfo(CODESET) can be used to obtain the name of the
  encoding corresponding to the locale, and whether iconv understands
  this name at all

- which of epoll / poll / select are available, for multiplexing I/O
  (epoll is preferred because it's asymptotically faster, but it's
  Linux-specific and avaiable sinze kernel 2.6)

- whether the current Linux kernel is 2.6.0-2.6.7, in which case epoll
  is known to have a memory leak in the kernel and thus it should be
  avoided even if present

- how long poll or epoll will actually sleep when asked to sleep for
  their smallest interval: 1 ms (needed for precise timeouts)

- how to enable pthreads, if they are available at all

- whether pthread_sigmask and pthread_kill functions are supported

- how to enable interfaces with 64-bit file offsets (if it's possible,
  and if something has to be done at all)

- whether BSD socket interface is present

- whether the curses library provides only the old 8-bit character API
  or it also provides the newer wide character API which makes it
  possible to use UTF-8 terminals

- whether the wide character API in curses has particular bugs which
  render it almost unusable and narrow character API should be
  preferred instead

- whether curses contains some ncurses-specific recently added
  extensions like resize_term, which allow the application to respond
  to the terminal being resized

It seems that many of these things are available on Java unconditionally
(e.g. threads, 64-bit file offsets) or would be unnecessary if the
runtime was implemented in Java (e.g. alignment of doubles for GC).

OTOH some are unconditionally impossible to obtain (e.g. a sensible
representation of fixnums in a dynamically typed language, or a sane
implementation of tail calls).

Availability and versioning of optional libraries would probably yield
the same issues as in C. I don't use Java so I don't know what people
do in this case.

> MS claims to have a POSIX compliance layer on NT (which is XP).
> If something doesn't work, write a problem report to them.

I've heard that it's useless because it makes impossible to reach
non-POSIX Windows-specific functionality. That's why cygwin and others
reimplement POSIX functionality in terms of native Windows APIs
(which on the other hand makes impossible to reach some functionality
available only through the POSIX subsystem).

-- 
   __("<         Marcin Kowalczyk
   \__/       ······@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ur7h2lfvk.fsf@STRIPCAPStelus.net>
Marcin 'Qrczak' Kowalczyk <······@knm.org.pl> writes:
> My project (a compiler) uses autoconf to detect the following, apart
> for many details; it has fallbacks with reduced functionality or
> reduced performance for most things being unavailable:

[...my god!...]

I forgot just how bad things can be. 

> Availability and versioning of optional libraries would probably yield
> the same issues as in C. I don't use Java so I don't know what people
> do in this case.

Usually one simply requires the libraries -- i.e. they are not optional. If
you cannot depend on their existence, you include them in your distribution.

It is possible (and I have seen it done) to do classpath tricks and
dynamically check for existence of particular libraries, and that would be
typically hidden underneath a layer that shields these contortions from the
rest of the app.

It is more common to do OS version runtime checks and have alternate code
paths for different environments. Again this would/should be hidden behind a
suitable API.

But doing this kind of thing is still a contortion, and yet is far far less
common in Java than the kinds of contortions needed in C/C++.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Barry Margolin
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <barmar-156AFA.09170922042005@comcast.dca.giganews.com>
In article <·················@newssvr31.news.prodigy.com>,
 Anton van Straaten <·····@appsolutions.com> wrote:

> The reason it's not the identity claim is because it is a kind of 
> portability that you don't get with a language like C.  With Java, you 
> don't have to use platform-specific #ifdefs.  You don't have to use 
> tools like autoconf.  You don't have to know anything platform-specific 
> about the systems you plan to target.  You write Java code, and compile 
> it, and the resulting compiled .class files will run on any machine that 
> runs Java, with no recompilation, changes or localized configuration 
> required.

So that's why Java applications that run fine on Windows misbehave on my 
Mac?

And wasn't there this whole "Windows Foundation Class" brouhaha a few 
years ago, where you could expect incompatible Java runtime libraries on 
different operating systems?

All these claims are only valid if the developers go to the trouble of 
porting compatible JVMs and JREs to all the platforms.  If not, you get 
the same problems as every other language.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <XPudncoxpYUjkvTfRVn-qA@giganews.com>
Barry Margolin wrote:
> In article <·················@newssvr31.news.prodigy.com>,
>  Anton van Straaten <·····@appsolutions.com> wrote:
> 
> 
>>The reason it's not the identity claim is because it is a kind of 
>>portability that you don't get with a language like C.  With Java, you 
>>don't have to use platform-specific #ifdefs.  You don't have to use 
>>tools like autoconf.  You don't have to know anything platform-specific 
>>about the systems you plan to target.  You write Java code, and compile 
>>it, and the resulting compiled .class files will run on any machine that 
>>runs Java, with no recompilation, changes or localized configuration 
>>required.
> 
> 
> All these claims are only valid if the developers go to the trouble of 
> porting compatible JVMs and JREs to all the platforms.  If not, you get 
> the same problems as every other language.

Which is exactly Sun's argument against relinquishing language control 
by fully open-sourcing it.  With that control, they simply don't allow 
people who don't port adequately to call their language "Java".  Whether 
they've enforced that too strongly or weakly is a separate question.

        Scott
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3csideF6qk8cjU1@individual.net>
Scott G. Miller wrote:
>> All these claims are only valid if the developers go to the trouble of 
>> porting compatible JVMs and JREs to all the platforms.  If not, you 
>> get the same problems as every other language.
> 
> 
> Which is exactly Sun's argument against relinquishing language control 
> by fully open-sourcing it.  With that control, they simply don't allow 
> people who don't port adequately to call their language "Java".  Whether 
> they've enforced that too strongly or weakly is a separate question.

Again it's a totally useless argument.  J2EE for instance isn't 
open, but it's a standard, with a test suite guaranteeing 
compliance.  Only when you're compliant may you call your 
implementation J2EE.

I see no reason why they couldn't do this with the Java libraries. 
  "Only a VM and a set of libraries of version X may be called 
Java X" would be fair.  Open-sourcing Java is orthogonal to that, 
but would certainly be better, by e.g. allowing people to compile 
and release binaries for Linux/PPC (or other platforms) which was 
mentioned in the discussion.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: ggem
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1114183176.365057.37710@f14g2000cwb.googlegroups.com>
Ulrich Hobelmann wrote:
> [...] allowing people to compile and release binaries for Linux/PPC

you can find java 1.4.2 for linux/ppc at
  http://www-128.ibm.com/developerworks/java/jdk/linux140/

-ggem.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <7y8ae.22478$d5.165363@newsb.telia.net>
Ulrich Hobelmann wrote:
> I see no reason why they couldn't do this with the Java libraries. 
>  "Only a VM and a set of libraries of version X may be called Java X" 
> would be fair.  Open-sourcing Java is orthogonal to that, but would 
> certainly be better, by e.g. allowing people to compile and release 
> binaries for Linux/PPC (or other platforms) which was mentioned in the 
> discussion.
> 

Freeing java's source code would mean a *lowered* incentive to create 
own implementations from scratch. E.g. kaffe, gcj and friends wouldn't 
be as interesting. That's why it might be a good idea for Sun.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <863btivnma.fsf@drjekyll.mkbuelow.net>
Sunnan <······@handgranat.org> writes:

>Freeing java's source code would mean a *lowered* incentive to create
>own implementations from scratch. E.g. kaffe, gcj and friends wouldn't
>be as interesting. That's why it might be a good idea for Sun.

I wouldn't mind Sun keeping stewardship of the JDK if at least they
would allow people to redistribute modified versions (if only, to make
it compile on, or compiled versions for, unsupported platforms).

mkb.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2s8ae.135343$dP1.476688@newsc.telia.net>
Scott G. Miller wrote:
> Which is exactly Sun's argument against relinquishing language control 
> by fully open-sourcing it.  With that control, they simply don't allow 
> people who don't port adequately to call their language "Java".  Whether 
> they've enforced that too strongly or weakly is a separate question.

Copyright != Trademark.
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ZYydnYMEgecKvfTfRVn-jg@giganews.com>
Sunnan wrote:
> Scott G. Miller wrote:
> 
>> Which is exactly Sun's argument against relinquishing language control 
>> by fully open-sourcing it.  With that control, they simply don't allow 
>> people who don't port adequately to call their language "Java".  
>> Whether they've enforced that too strongly or weakly is a separate 
>> question.
> 
> 
> Copyright != Trademark.

True.  I didn't say it was a good argument. :)
From: Anton van Straaten
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ek9ae.1492$iB1.635@newssvr19.news.prodigy.com>
Barry Margolin wrote:
> So that's why Java applications that run fine on Windows misbehave on my 
> Mac?

Misbehave how?  If you're talking about the GUI, then the problem is 
probably Java's relatively poor GUI support.  Java GUI apps can 
misbehave even on Windows, if you use non-standard font sizes etc.

In any case, I was mainly trying to explain what the portability claim 
does and doesn't apply to.  If you don't impose an unrealistic 
expectation of perfection, Java's claims of portability are perfectly 
justifiable.  The experience of most Java developers bears this claim 
out, particularly for non-GUI systems.

> And wasn't there this whole "Windows Foundation Class" brouhaha a few 
> years ago, where you could expect incompatible Java runtime libraries on 
> different operating systems?

Yes, but then Sun went to court and (essentially) forced Microsoft to 
kill its version of Java, thus demonstrating their commitment to 
portability.  ;)

Incidentally, I imagine that action also gave Microsoft extra incentive 
to work on C#.  A little twist in the epic battle of the mediocre COBOL 
successors.

> All these claims are only valid if the developers go to the trouble of 
> porting compatible JVMs and JREs to all the platforms.  If not, you get 
> the same problems as every other language.

Right.  The point is Sun actually did a good job for some Unixes and 
Windows, providing a degree of portability which wasn't available in 
other mainstream languages.  They provided a comprehensive standard, 
implemented it faithfully on major platforms, and packaged it in a 
business-friendly way.  All in all, it was quite an achievment for a 
company that wasn't previously a player in the mainstream language 
market (Tcl doesn't count).

Anton
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u1x92n3x0.fsf@STRIPCAPStelus.net>
Barry Margolin <······@alum.mit.edu> writes:
> All these claims are only valid if the developers go to the trouble of 
> porting compatible JVMs and JREs to all the platforms.  If not, you get 
> the same problems as every other language.

Technially this is true.

In practice however the problems are much less. The situation is much improved
as compared to other languages.

Although to be fair, the most serious ones I have encoutered were between Mac
and non-Mac behavioural differences.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <9hM9e.22420$d5.164431@newsb.telia.net>
Anton van Straaten wrote:
> Competing with that is tough, especially for a 
> quasi-proprietary language.

Then Sun should just ease up some on the quasi-proprietarianess.

Or maybe they shouldn't - maybe it's a good thing that I don't have a 
jvm easily available, because then people would write more java software 
that I would use, and my computer would appear even slower. It's already 
creaking from the weight of python and mono running most of the time 
(and the programs are fairly disk-intensive, too - tomboy, muine, 
bittornado). Not to mention the xul feasts Thunderbird and Firefox.

Having one vm running is fine. Having several becomes heavy.
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2KWdnWR6P-ZJW_rfRVn-sQ@giganews.com>
Sunnan wrote:
> Anton van Straaten wrote:
> 
>> Competing with that is tough, especially for a quasi-proprietary 
>> language.
> 
> 
> Then Sun should just ease up some on the quasi-proprietarianess.
> 
> Or maybe they shouldn't - maybe it's a good thing that I don't have a 
> jvm easily available, because then people would write more java software 
> that I would use, and my computer would appear even slower. It's already 
> creaking from the weight of python and mono running most of the time 
> (and the programs are fairly disk-intensive, too - tomboy, muine, 
> bittornado). Not to mention the xul feasts Thunderbird and Firefox.
> 
> Having one vm running is fine. Having several becomes heavy.

Ugh.  I can't believe you just brought up the Java performance myth.

   Scott
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cq8hqF6q665rU1@individual.net>
Scott G. Miller wrote:
> Sunnan wrote:
> 
>> Anton van Straaten wrote:
>>
>>> Competing with that is tough, especially for a quasi-proprietary 
>>> language.
>>
>>
>>
>> Then Sun should just ease up some on the quasi-proprietarianess.
>>
>> Or maybe they shouldn't - maybe it's a good thing that I don't have a 
>> jvm easily available, because then people would write more java 
>> software that I would use, and my computer would appear even slower. 
>> It's already creaking from the weight of python and mono running most 
>> of the time (and the programs are fairly disk-intensive, too - tomboy, 
>> muine, bittornado). Not to mention the xul feasts Thunderbird and 
>> Firefox.
>>
>> Having one vm running is fine. Having several becomes heavy.
> 
> 
> Ugh.  I can't believe you just brought up the Java performance myth.

I share that feeling.  I don't want more flamewar in this thread, 
either.

But what he mentioned is not the performance myth (that Java is or 
isn't faster than, say, C++ or code in general (whatever code in 
general is)).

He mentioned the VM performance experience, that I share: that all 
those heavy applications written on top of Mozilla XUL, the 
OpenOffice platform, Eclipse, or even just Java's JRE use much 
more CPU and memory than other programs with similar functionality.

I really wonder what a mail/news client like Thunderbird uses 
45,000,000 bytes for!  It can't be the messages, it can't be the 
data structures used to manage those messages.  I can't be the 
(rather simple) GUI...

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Scott G. Miller
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <isKdnUD0H4NMaPrfRVn-hQ@giganews.com>
Ulrich Hobelmann wrote:
> Scott G. Miller wrote:
> 
>> Sunnan wrote:
>>
>>> Anton van Straaten wrote:
>>>
>>>> Competing with that is tough, especially for a quasi-proprietary 
>>>> language.
>>>
>>>
>>>
>>>
>>> Then Sun should just ease up some on the quasi-proprietarianess.
>>>
>>> Or maybe they shouldn't - maybe it's a good thing that I don't have a 
>>> jvm easily available, because then people would write more java 
>>> software that I would use, and my computer would appear even slower. 
>>> It's already creaking from the weight of python and mono running most 
>>> of the time (and the programs are fairly disk-intensive, too - 
>>> tomboy, muine, bittornado). Not to mention the xul feasts Thunderbird 
>>> and Firefox.
>>>
>>> Having one vm running is fine. Having several becomes heavy.
>>
>>
>>
>> Ugh.  I can't believe you just brought up the Java performance myth.
> 
> 
> I share that feeling.  I don't want more flamewar in this thread, either.
> 
> But what he mentioned is not the performance myth (that Java is or isn't 
> faster than, say, C++ or code in general (whatever code in general is)).
> 
> He mentioned the VM performance experience, that I share: that all those 
> heavy applications written on top of Mozilla XUL, the OpenOffice 
> platform, Eclipse, or even just Java's JRE use much more CPU and memory 
> than other programs with similar functionality.
> 
> I really wonder what a mail/news client like Thunderbird uses 45,000,000 
> bytes for!  It can't be the messages, it can't be the data structures 
> used to manage those messages.  I can't be the (rather simple) GUI...
> 

Thats fair.   But I think what we're seeing is a trend towards 
application construction from flexible toolkits that hasn't shaken 
itself out yet, which is creating a resource intensive duplication of 
effort.

	Scott
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <6dX9e.135234$dP1.476502@newsc.telia.net>
Scott G. Miller wrote:
> Ugh.  I can't believe you just brought up the Java performance myth.
> 
>   Scott

I wouldn't know, because I've *never ran java on this machine*.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m264ypmtou.fsf@hanabi.local>
Ulrich Hobelmann <···········@web.de> writes:

> israel wrote:
>> The current DDJ ( at least the latest that our antipodean
>> newsstands have ) has an interesting interview with Guy Steele.
>> He contributed to Scheme, Lisp , Java and did the first port of Tex.
>
> I've never understood this.  How could anyone who knew Scheme and Lisp
> and even worked on Scheme standardization produce one of the WORST
> languages in the whole wide world?

If you think that Java is the worst language, you haven't seen many
languages.

> How much did they pay him to forget (?) what he knew?

Your comment reflects extremely poorly on you, not on Guy.

Matthias

PS: No, and I am absolutely NO fan of Java!
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7cftF6mdipsU1@individual.net>
Matthias Blume wrote:
> If you think that Java is the worst language, you haven't seen many
> languages.

Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
Unlambda, which aren't serious.  What other abominations are out 
there?

I know of at least twenty languages that are FAR better than Java, 
IMHO.

>>How much did they pay him to forget (?) what he knew?
> 
> 
> Your comment reflects extremely poorly on you, not on Guy.

I don't mean that personally, or as an attack.  It just seems that 
whatever he knows and did isn't reflected in Java, at all.  But in 
another post someone mentioned that he probably only arrived at 
Sun, when it was too late.  Oak had been created.  (I believe 
Gosling is to "blame")

> Matthias
> 
> PS: No, and I am absolutely NO fan of Java!

If you want to defend Java, please do.  Almost every single 
language I know doesn't have the braindead horridness of Java to 
it, so I think it could have been done differently, without any 
negative consequences.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: A.L.
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d76t51llssfv6gsbgm7kqvl2542llqg2oe@4ax.com>
On Thu, 14 Apr 2005 09:19:42 -0500, Ulrich Hobelmann
<···········@web.de> wrote:

>Matthias Blume wrote:
>> If you think that Java is the worst language, you haven't seen many
>> languages.
>
>Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
>Unlambda, which aren't serious.  What other abominations are out 
>there?
>
>I know of at least twenty languages that are FAR better than Java, 
>IMHO.

With respect to what criteria?...

A.L.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7v70F6ngrk4U1@individual.net>
A.L. wrote:
>>I know of at least twenty languages that are FAR better than Java, 
>>IMHO.
> 
> 
> With respect to what criteria?...

All those subjective annoyances I mentioned further up in the 
thread.  All other people I know who know both other $LANGUAGE-X 
and Java generally agree that Java sucks.

Your mileage may vary.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1k6n52ud5.fsf@tti5.uchicago.edu>
Ulrich Hobelmann <···········@web.de> writes:

> Matthias Blume wrote:
>> If you think that Java is the worst language, you haven't seen many
>> languages.
>
> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
> which aren't serious.  What other abominations are out there?

I once heard of languages called "C" and "C++", if that rings a bell...

> I know of at least twenty languages that are FAR better than Java,
> IMHO.

Well, you'd better be humble with your opinion.  Most languages are
incomparable, as most languages have certain aspects that are handled
better than in Java, and most have certain aspects that are handled
worse.

>>>How much did they pay him to forget (?) what he knew?
>> Your comment reflects extremely poorly on you, not on Guy.
>
> I don't mean that personally, or as an attack.  It just seems that
> whatever he knows and did isn't reflected in Java, at all.

Are you sure?  How much do _you_ know?  Or, in other words, who are
you to make this kind of judgment?  I find your attitude extremely
preposterous.

> If you want to defend Java, please do.  Almost every single language I
> know doesn't have the braindead horridness of Java to it,

Can you explain what you mean by "brain-dead horridness"?

Almost every language I know has at least one aspect that is at least
as brain-dead if not more so than it is in Java.  Of course, there are
several languages for which this is the exception, i.e., they are
almost uniformely better than Java in most regards.  But your blanket
statement above sounds uninformed at best.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7vnuF6k5396U1@individual.net>
Matthias Blume wrote:
> Ulrich Hobelmann <···········@web.de> writes:
> 
> 
>>Matthias Blume wrote:
>>
>>>If you think that Java is the worst language, you haven't seen many
>>>languages.
>>
>>Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
>>which aren't serious.  What other abominations are out there?
> 
> 
> I once heard of languages called "C" and "C++", if that rings a bell...

Not nearly as bad, at least plain C.  But again, this is my 
personal opinion.  There is no objective better/worse scale.

> 
>>I know of at least twenty languages that are FAR better than Java,
>>IMHO.
> 
> 
> Well, you'd better be humble with your opinion.  Most languages are
> incomparable, as most languages have certain aspects that are handled
> better than in Java, and most have certain aspects that are handled
> worse.

Again, my opinion; and all the people I know who know $LANGUAGE-X 
and Java agree that Java loses, for pretty much all languages.

>>>>How much did they pay him to forget (?) what he knew?
>>>
>>>Your comment reflects extremely poorly on you, not on Guy.
>>
>>I don't mean that personally, or as an attack.  It just seems that
>>whatever he knows and did isn't reflected in Java, at all.
> 
> 
> Are you sure?  How much do _you_ know?  Or, in other words, who are
> you to make this kind of judgment?  I find your attitude extremely
> preposterous.

My opinion.  Comparing Scheme and Java I see so many annoyances in 
Java, and on the Scheme side merely a lack of features (modules, 
standard structs, maybe something an OO system more like CLOS).

Again, I'm not attacking anyone, I simple wonder.  And in this 
context someone else's post that Guy Steele joined the Java group 
after most design had been done, makes perfect sense to me.

>>If you want to defend Java, please do.  Almost every single language I
>>know doesn't have the braindead horridness of Java to it,
> 
> 
> Can you explain what you mean by "brain-dead horridness"?

All those things that personally annoy me, further up in the thread.

> Almost every language I know has at least one aspect that is at least
> as brain-dead if not more so than it is in Java.  Of course, there are
> several languages for which this is the exception, i.e., they are
> almost uniformely better than Java in most regards.  But your blanket
> statement above sounds uninformed at best.

Wow.

Well, of course C has some disadvantages to Java, like being lower 
level.  OTOH it is less hassle for me to debug a C than a Java 
program and get it running.  Memory management issues usually 
don't even pop up or are cleaned up in a matter of minutes.  Most 
features that Java has don't buy me *anything*, personally.  The 
lack of varargs, pointers and stuff like that furthers hinders me 
from coding what I want done.

Most other languages that don't share C's low-level-ness and 
structure are just much easier to write in.  The huge blooming 
scripting language community seems to agree here.  Even the Java 
world embraced that and developed some languages, like Groovy (was 
it called?).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86sm1t9hvy.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

> Again, my opinion; and all the people I know who know $LANGUAGE-X
> and Java agree that Java loses, for pretty much all languages.

OTOH, all people I know who know "$LANGUAGE-X"' runtime library and
Java's runtime library agree that Java wins, for pretty much all
languages (except perhaps Perl and Python, when scripting suffices).

> and get it running.  Memory management issues usually don't even pop
> up or are cleaned up in a matter of minutes.  Most features that Java

Then you're a genius.  Everyone I know who's written C programs larger
than a couple thousand lines has spent hours with tools like DEC's 3rd
degree atom tools, Purify, or other essential lifesavers.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c86c7F6jhlm6U1@individual.net>
Matthias Buelow wrote:
>>and get it running.  Memory management issues usually don't even pop
>>up or are cleaned up in a matter of minutes.  Most features that Java
> 
> 
> Then you're a genius.  Everyone I know who's written C programs larger
> than a couple thousand lines has spent hours with tools like DEC's 3rd
> degree atom tools, Purify, or other essential lifesavers.

Maybe it's because everything I've written isn't more than a 
couple 1000 lines. ;)

Still, I claim that good structuring pretty much removes MM bugs. 
  If you use malloc() and free() all over the place, that *not* 
good structuring.

You might think of explicit MM as dynamic typing: the errors don't 
get caught be the machine; you have to plan and test carefully. 
In practice, most dynamic language programmers don't suffer much 
runtime type errors, I hear.  I don't suffer dangling pointers and 
stuff, which might in the right type system be considered a type 
error.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86fyxt9g95.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

> You might think of explicit MM as dynamic typing: the errors don't get

These two things do not compare.

mkb.
From: Thomas Gagne
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <HfmdnSsEwpZEtsLfRVn-pg@wideopenwest.com>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> writes:
<snip>
> 
> 
>>and get it running.  Memory management issues usually don't even pop
>>up or are cleaned up in a matter of minutes.  Most features that Java
> 
> 
> Then you're a genius.  Everyone I know who's written C programs larger
> than a couple thousand lines has spent hours with tools like DEC's 3rd
> degree atom tools, Purify, or other essential lifesavers.

You don't know enough C programmers.  I remember programming a LOT of C 
in the 80s and early 90s but can't remember memory allocation ever being 
a problem.  I was quite surprised, actually, to hear everyone else 
thought it was.
From: Pascal Bourguignon
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87zmw09w5x.fsf@thalassa.informatimago.com>
Thomas Gagne <······@wide-open-west.com> writes:

> Matthias Buelow wrote:
> > Ulrich Hobelmann <···········@web.de> writes:
> <snip>
> >
> >>and get it running.  Memory management issues usually don't even pop
> >>up or are cleaned up in a matter of minutes.  Most features that Java
> > Then you're a genius.  Everyone I know who's written C programs
> > larger
> > than a couple thousand lines has spent hours with tools like DEC's 3rd
> > degree atom tools, Purify, or other essential lifesavers.
> 
> You don't know enough C programmers.  I remember programming a LOT of
> C in the 80s and early 90s but can't remember memory allocation ever
> being a problem.  I was quite surprised, actually, to hear everyone
> else thought it was.

Memory allocation is no problem.  The problem is memory _deallocation_.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
Litter box not here.
You must have moved it again.
I'll poop in the sink. 
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c9tcaF6mbr82U1@individual.net>
Pascal Bourguignon wrote:
> Memory allocation is no problem.  The problem is memory _deallocation_.

I'm pretty sure that's what we meant.  I certainly did.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c9tt8F6kibk4U2@individual.net>
Ulrich Hobelmann wrote:
> Pascal Bourguignon wrote:
> 
>> Memory allocation is no problem.  The problem is memory _deallocation_.
> 
> 
> I'm pretty sure that's what we meant.  I certainly did.
> 

I guess I'm not quite awake yet.

I meant that deallocation isn't a problem either, at least so far 
I'm doing well with it.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1r7hc12co.fsf@tti5.uchicago.edu>
Ulrich Hobelmann <···········@web.de> writes:

> Ulrich Hobelmann wrote:
>> Pascal Bourguignon wrote:
>> 
>>> Memory allocation is no problem.  The problem is memory _deallocation_.
>> I'm pretty sure that's what we meant.  I certainly did.
>> 
>
> I guess I'm not quite awake yet.
>
> I meant that deallocation isn't a problem either, at least so far I'm
> doing well with it.

Ok, so there are always those superhero programmers like Ulrich and
Thomas who don't make mistakes.  But the rest of us isn't like that.

(Full disclosure: I have extensively programmed in C, and I also don't
remember having many actual problems with memory allocation in my code
-- although there have been some rather subtle episodes.
But I have basically stopped programming in C and started relying on
high-level languages only.  Occasionally, when I am forced to do some
C programming, I am always amazed what absolute PAIN IN THE A** it
was/is to deal with memory allocation and deallocation.  Yes, I still
get in right most of the time.  But I'd rather not worry about it in
the first place and spend my limited number of brain cycles on
something productive.)
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3caishF6nm4baU1@individual.net>
Matthias Blume wrote:
> (Full disclosure: I have extensively programmed in C, and I also don't
> remember having many actual problems with memory allocation in my code
> -- although there have been some rather subtle episodes.
> But I have basically stopped programming in C and started relying on
> high-level languages only.  Occasionally, when I am forced to do some
> C programming, I am always amazed what absolute PAIN IN THE A** it
> was/is to deal with memory allocation and deallocation.  Yes, I still
> get in right most of the time.  But I'd rather not worry about it in
> the first place and spend my limited number of brain cycles on
> something productive.)
> 

Ok, I agree there.  I think good program structure makes Memory 
Management non-hard (while still not 100% easy), but getting good 
program structure in C is a PITA.  The language is just too 
low-level for that, lacks useful macros to overcome its verbosity 
(and the typecasts you need to circumvent its type checking). 
That's also my motivation for looking into assembler,Forth&co on 
one hand and Lisp on the other.  Free yourself from constraints on 
the low end (C's limitations) and open up flexibility at the high 
end (Lisp + macros).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <864qe7rd8i.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

> Ok, I agree there.  I think good program structure makes Memory
> Management non-hard (while still not 100% easy), but getting good
> program structure in C is a PITA.  The language is just too low-level
> for that, lacks useful macros to overcome its verbosity (and the
> typecasts you need to circumvent its type checking). That's also my
> motivation for looking into assembler,Forth&co on one hand and Lisp on
> the other.  Free yourself from constraints on the low end (C's
> limitations) and open up flexibility at the high end (Lisp + macros).

I wonder if you have any experience in programming in those languages
that you so elaborately discuss?  Otherwise you probably wouldn't
mention assembler in this menagerie.  I mean, at a time when the "Lisp
hacker community" was still doing stuff in hand-coded assembler (ITS
and friends), Unix was already running full cylinders on C.  That's
hardly something to spit on and I strongly dislike those half-assed
attempts at language feud by comparing things where for the most part
it doesn't make any sense comparing them (assembler and C, C and
Lisp/ML/Haskell, etc.)  What comes next?  Assembler vs. Prolog?

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3carmeF6kps9bU1@individual.net>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> writes:
> 
> 
>>Ok, I agree there.  I think good program structure makes Memory
>>Management non-hard (while still not 100% easy), but getting good
>>program structure in C is a PITA.  The language is just too low-level
>>for that, lacks useful macros to overcome its verbosity (and the
>>typecasts you need to circumvent its type checking). That's also my
>>motivation for looking into assembler,Forth&co on one hand and Lisp on
>>the other.  Free yourself from constraints on the low end (C's
>>limitations) and open up flexibility at the high end (Lisp + macros).
> 
> 
> I wonder if you have any experience in programming in those languages
> that you so elaborately discuss?  Otherwise you probably wouldn't
> mention assembler in this menagerie.  I mean, at a time when the "Lisp
> hacker community" was still doing stuff in hand-coded assembler (ITS
> and friends), Unix was already running full cylinders on C.  That's
> hardly something to spit on and I strongly dislike those half-assed
> attempts at language feud by comparing things where for the most part
> it doesn't make any sense comparing them (assembler and C, C and
> Lisp/ML/Haskell, etc.)  What comes next?  Assembler vs. Prolog?

May I ask where I compared anything?  I was saying that I'm 
interested in low-level languages that don't share C's 
limitations.  I'm also interested in high-level languages that 
don't share the low-level ones' verbosity and inconvenience.

In fact I use C, because asm is too inconvenient (but I looked 
into how to translate C functions in x86 and PPC asm and optimize 
them by hand), but I might write a nicer-in-my-opinion portable 
(though not at first) assembler some day (in sexps, so it can use 
Lisp as a preprocessor), so I don't have to use C anymore.  For 
anything that's conveniently done in high-level languages (because 
high abstraction is needed, or because low-level bindings aren't 
important) I used to use some Scheme and then SML (unless forced 
to write C or Java for someone), but want to learn CL now (when 
that PCL book arrives... it already shipped :) ).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <9MO8e.22157$d5.162626@newsb.telia.net>
Ulrich Hobelmann wrote:
> I might write a nicer-in-my-opinion portable (though not at first) 
> assembler some day (in sexps, so it can use Lisp as a preprocessor), so 
> I don't have to use C anymore.

I'm longing for a gcc frontend that uses sexps, and has tail call 
optimization and continuations.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ci4n8F6h47lvU2@individual.net>
Sunnan wrote:
> Ulrich Hobelmann wrote:
> 
>> I might write a nicer-in-my-opinion portable (though not at first) 
>> assembler some day (in sexps, so it can use Lisp as a preprocessor), 
>> so I don't have to use C anymore.
> 
> 
> I'm longing for a gcc frontend that uses sexps, and has tail call 
> optimization and continuations.

Well, for the continuations it might need a switch to use heap 
allocation (or alternative stack disciplines), unless you only do 
non-escaping continuations (longjmp style).

Otherwise full ACK.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <khR8e.22171$d5.162518@newsb.telia.net>
Ulrich Hobelmann wrote:
> Sunnan wrote:
>> I'm longing for a gcc frontend that uses sexps, and has tail call 
>> optimization and continuations.
> 
> 
> Well, for the continuations it might need a switch to use heap 
> allocation (or alternative stack disciplines), unless you only do 
> non-escaping continuations (longjmp style).
> 
> Otherwise full ACK.
> 

This kind of low-level stuff isn't really my fort� (yet), but if you're 
working on this stuff anyway, I'd be happy if you took a look at GCC 
stuff. Maybe a lot of things are in place already.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u3btr91co.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:

> Ulrich Hobelmann <···········@web.de> writes:
> 
> > Ok, I agree there.  I think good program structure makes Memory
> > Management non-hard (while still not 100% easy), but getting good
> > program structure in C is a PITA.  The language is just too low-level
> > for that, lacks useful macros to overcome its verbosity (and the
> > typecasts you need to circumvent its type checking). That's also my
> > motivation for looking into assembler,Forth&co on one hand and Lisp on
> > the other.  Free yourself from constraints on the low end (C's
> > limitations) and open up flexibility at the high end (Lisp + macros).
> 
> I wonder if you have any experience in programming in those languages
> that you so elaborately discuss?  Otherwise you probably wouldn't
> mention assembler in this menagerie.  I mean, at a time when the "Lisp
> hacker community" was still doing stuff in hand-coded assembler (ITS
> and friends), Unix was already running full cylinders on C. 

I haven't really been following whatever stupid language flame war 
is going on here, but I am not sure why you are maligning ITS
programmers.  In any event, the history you give above is wrong.  
ITS was written in the early 1960s, before Unix was invented,
and well before C was invented.  (And ITS was in my opinion,
a much better system than Unix.)  Also, your statement that 
the Lisp hacker community was programming in assembler is
self-inconsistent with them being Lisp hackers.

I'm not interested in whatever war this is, especially if it's about C.
I just thought I ought to correct the history lesson.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86u0m7puos.fsf@drjekyll.mkbuelow.net>
······@news.dtpq.com (Christopher C. Stacy) writes:

> I haven't really been following whatever stupid language flame war 
> is going on here, but I am not sure why you are maligning ITS
> programmers.  In any event, the history you give above is wrong.  

I'm not maligning ITS programmers.  I'm criticising people (not the
ITS programmers but the one I responded to) who go by the attitude
that C is all crap, completely useless and that anything that is wrong
with it could be changed by repeatedly and very prominently
proclaiming the very crappiness of C on UseNet.  I mean, the deficits
of C are well known (as are its strengths).  Nothing said on Usenet
will make them go away.

> ITS was written in the early 1960s, before Unix was invented,
> and well before C was invented.  (And ITS was in my opinion,
> a much better system than Unix.)  Also, your statement that 

Hmm, now I've looked it up.  Wikipedia seems not to agree.  Of course,
Wikipedia might be wrong.  Wikipedia says "late 60ies", so I assume it
was still in use in the 70ies?

> the Lisp hacker community was programming in assembler is
> self-inconsistent with them being Lisp hackers.

I was under the impression that the then Lisp community and the
MIT/ITS community had a certain overlap.  Of course, not having been
there, that might be a wrong assumption.  The point is, that the
language so pleasurably and condescendingly despised by certain parts
of the Lisp community has been proven to be very useful and productive
indeed for what it was designed, while at the same time, the Lisp
community wrote one of their favourite systems in assembler.  That's
not Lisp's fault, as I see it, since I simply don't count Lisp (at
least in its form as it existed then) as a systems programming
language.  So, I was merely using ITS as an example because it popped
into my mind.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ubr8f4qnb.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:

> ······@news.dtpq.com (Christopher C. Stacy) writes:
> 
> > I haven't really been following whatever stupid language flame war 
> > is going on here, but I am not sure why you are maligning ITS
> > programmers.  In any event, the history you give above is wrong.  
> 
> I'm not maligning ITS programmers.  I'm criticising people (not the
> ITS programmers but the one I responded to) who go by the attitude
> that C is all crap, completely useless and that anything that is wrong
> with it could be changed by repeatedly and very prominently
> proclaiming the very crappiness of C on UseNet.  I mean, the deficits
> of C are well known (as are its strengths).  Nothing said on Usenet
> will make them go away.
> 
> > ITS was written in the early 1960s, before Unix was invented,
> > and well before C was invented.  (And ITS was in my opinion,
> > a much better system than Unix.)  Also, your statement that 
> 
> Hmm, now I've looked it up.  Wikipedia seems not to agree.  Of course,
> Wikipedia might be wrong.  Wikipedia says "late 60ies", so I assume it
> was still in use in the 70ies?

Wikipedia is often wrong, in my limited experience.
(And why would you trust Wikipedia over first-hand sources?)
Actually, ITS was still in limited use in the late 80s.

> > the Lisp hacker community was programming in assembler is
> > self-inconsistent with them being Lisp hackers.
> 
> I was under the impression that the then Lisp community
> and the MIT/ITS community had a certain overlap.

I don't get your point, neither what you mean by "overlap" 
in this context, nor how that works into your logic.  
Some of the same people who wrote programs in Lisp also 
wrote programs in a variety of other languages.  
(This is also true today.)

> The point is, that the language so pleasurably and condescendingly
> despised by certain parts of the Lisp community has been proven to
> be very useful and productive indeed for what it was designed, while
> at the same time, the Lisp community wrote one of their favourite
> systems in assembler.

Are you aware that Unix was not originally written in C?
Can you guess what language that was?
Here's a hint, in the form of a short program in that language:

  ------------
     lac djmp
     dac .-1
     oas cla
     cma
     tad d1
     dac t1
     sys open; dd; 0
  1:
     lac d2
     sys read; dir; 8
     sna
     sys exit
     lac dir
     sna
     jmp 1b
     isz t1
     jmp 1b

  wr:
     lac d1
     sys write; dir+1; 4
     lac d1
     sys write; o12; 1
     sys save
  do:
     sys unlink; dir+1
     sys exit

  d1: 1
  d2: 2
  o12: 012
  t1: 0
  djmp: jmp do
  dd: 056056; 040040; 040040; 040040
  dir: .=.+8
  ------------

Are you aware that Lisp has been heavily used as a systems 
programming language by the "Lisp hacker community"?

> I simply don't count Lisp (at least in its form as it existed then)
> as a systems programming language.

Without getting into a debate about what constitutes "systems programming", 
or exactly which timeframe you're talking about (seeing as how your
understanding of the timeline is rather confused), and other debatable issues...
Let us suppose for the sake of argument that Lisp was not a systems
programming language at some point.  I still don't quite understand
your point (either about Lisp or ITS).

> So, I was merely using ITS as an example because it popped into my mind.

An example of what?  Can you point to an example of an ITS programmer
who has made whatever statement you are disagreeing with, and explain
why ITS is relevent in that context?  If it had something to do with
Lisp, that would also be nice, of course.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86mzrzprss.fsf@drjekyll.mkbuelow.net>
······@news.dtpq.com (Christopher C. Stacy) writes:

> Are you aware that Unix was not originally written in C?
> Can you guess what language that was?

Unix was rewritten in C on the PDP-11 and has been in this form ever
since (and ported to dozens, if not hundreds, of different
architectures).  That the first primitive version was written in
assembler is hardly an argument here.  Has ITS been rewritten in Lisp?
Or C, or any other portable higher-levbel language?

> Are you aware that Lisp has been heavily used as a systems 
> programming language by the "Lisp hacker community"?

Well, the Lisp machines are a well known episode.

> Let us suppose for the sake of argument that Lisp was not a systems
> programming language at some point.  I still don't quite understand
> your point (either about Lisp or ITS).

It is about talking unfairly about the achievements of the inventors
of C and Unix while at the same time not having attempted to tackle
the same problems (producing a portable operating system that ran on
slow, small hardware).  It is easily said that C sucks (and I agree to
a certain point), it is hard to dismiss that it has been tremendously
successful.  While the same can't be quite said about ITS and PDP-10
assembler.  Thankfully Lisp (or rather Scheme, since I'm reading this
on c.l.scheme) runs very well on Unix and so the advantages of both
can be combined.

> > So, I was merely using ITS as an example because it popped into my mind.
> An example of what?  Can you point to an example of an ITS programmer
> who has made whatever statement you are disagreeing with, and explain
> why ITS is relevent in that context?  If it had something to do with
> Lisp, that would also be nice, of course.

Well, maybe I shouldn't have summoned the ITS daemon.. it is not
really significant to my argument anyways.  Little point in digging up
old graves.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cb4f7F6kdd0eU1@individual.net>
Matthias Buelow wrote:
> It is about talking unfairly about the achievements of the inventors
> of C and Unix while at the same time not having attempted to tackle
> the same problems (producing a portable operating system that ran on
> slow, small hardware).  It is easily said that C sucks (and I agree to
> a certain point), it is hard to dismiss that it has been tremendously
> successful.  While the same can't be quite said about ITS and PDP-10
> assembler.  Thankfully Lisp (or rather Scheme, since I'm reading this
> on c.l.scheme) runs very well on Unix and so the advantages of both
> can be combined.

I'm not talking unfairly about C and Unix.  I like Unix, but I 
also exercise my right to state the shortcomings of it and C.

Interestingly *nothing* that I criticize about C has anything to 
do with efficiency, so an enhanced C without those problems could 
just as well deliver a portable Unix, maybe even in smaller, 
because better abstraction facilities and removed barriers allow 
some things to be coded more succinctly.

Thankfully there are mainstream Unices out there, and thankfully 
lots of Lisp and Scheme implementations run on these :)

I'm thankful for all the software C has brought me, and in the 70s 
C might have been up to the task, but this doesn't keep me from 
stating the shortcomings.  The posts that made me do this in here 
were Matthias Blume saying (indirectly) that C is as bad as (or 
worse) than Java and Fernando Rodriguez replying that C is a good 
low-level language and so on about portable assemblers.  If you 
consider this unfair, don't read this thread.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86ll7jv7a6.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

> I'm not talking unfairly about C and Unix.

Very well, then I propose to let this branch of the thread die.  It
has strayed far from the OP's topic anyways.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uoecfgx7m.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:

> ······@news.dtpq.com (Christopher C. Stacy) writes:
> 
> > Are you aware that Unix was not originally written in C?
> > Can you guess what language that was?

> Unix was rewritten in C on the PDP-11 and has been in this form ever
> since (and ported to dozens, if not hundreds, of different
> architectures).  That the first primitive version was written in
> assembler is hardly an argument here.  

Unix was written in assembly language, well after the time
when ITS was written in assembly language.  As I indicated,
It was you who juxtaposed ITS, assembler, and C for 
comparison in this way.

> Has ITS been rewritten in Lisp?
> Or C, or any other portable higher-levbel language?

No, because ITS represented technology of the 1960s, even
though it was better technology than the Unix of the 1970s.

By the time Unix started making any progress (such as the feature 
of allowing the user to run more than one program -- which was put 
in there by an ITS hacker who was forced to use Unix one summer), 
the "Lisp hackers" crowd that you refer to had moved on.

Rather than rewrite ITS,  an even better operating system
was written, in Lisp (of course).  This was in the mid 1970s,
with work proceeding into the late 1980s.

Unix today is still fundamentally based on pre-1964 computing
concepts, although it has progressed to the point of having a
few dribs and drabs of things that were common in the 1970s.

Unix is a throwback.  You seem to have shifted into an argument
about "success".  Is that what you mean by "success"?

> It is about talking unfairly about the achievements
> of the inventors of C and Unix

Who said something unfair, and what did they say?

What I saw is that someone suggested that Lisp was a more 
futuristic language than C, said that C had limitations, 
and that C was a "low level" language.  Your response was 
to imply that you had better knowledge and understanding 
of those languages (they also mentioned Forth):

> I wonder if you have any experience in programming in
> those languages that you so elaborately discuss?

You offered nothing to back up your claims or innuendo, 
But then went on to make ad-hominem attacks about "Lisp hackers" 
and the programmers who developed ITS:

> I mean, at a time when the "Lisp hacker community" was still doing
> stuff in hand-coded assembler (ITS and friends), Unix was already
> running full cylinders on C.  

Now you have been informed that you were entirely 
factually wrong about all of that.

Now you have introduced the idea of "success":

> while at the same time not having attempted to tackle the
> same problems (producing a portable operating system that
> ran on slow, small hardware).  It is easily said that C
> sucks (and I agree to a certain point), it is hard to
> dismiss that it has been tremendously successful.
> While the same can't be quite said about ITS and PDP-10
> assembler.

ITS was entirely successful (and of course, so was PDP-10 assembler),
in terms of meeting its design goals and proving to be an most
excellent service platform.  It did what Unix could never do.

You haven't really defined "successful" up until now.  
But you seem to be talking about portable operating systems,
and  have just added "slow, small, hardware" as a criteria 
for your systems programming language.  That's not really the
kind of hardware that Lisp software was mostly targeted for.
That certainly doesn't mean it could not be done, but it's 
hardly relevant in the face of today's platforms.

I still don't quite know what point you're trying to make.  
It rather sounds like you might be equating "successful" 
with "widespread popularity", and perhaps with technical
quality in terms of sophistication, elegance, utility,
and tendancy towards (lack of) bugs.

If you think "popular" means "good", then we're just coming 
from different worlds and will find no agreement.
If you think that that C and Unix have been "successful"
in terms of the technical attributes, I also disagree.

Or maybe, was it simply your contention that Lisp is not 
a good systems programming language?

Or if you're point was just that "C has sometimes good for 
something in the past, at least", did anyone dispute that?
However, I think some people may have said that there are now 
(and may have even been in the past) better languages for what
they wanted to do (including writing operating systems).

Since you dragged Unix into this, do you think that C will
continue to be a good approach for writing operating systems
in the future? Is this because it is well-suited to the kind 
of hardware that we have today, and the kind of software that
we want?  If so, could you elaborate on that?
What about other languages besides C and Lisp?

By the way, have you heard of Movitz?  
I had asked if you knew about the system programming in Lisp done 
in the past, and it appears that you didn't.  So I've mentioned 
just a little bit about just some of the stuff that was done 
decades ago.  It might interest you to know that very recently,
people are playing around with new work in this area.

Here's my take on operating system software written in Lisp.
ANSI Common Lisp lacks any kind of standard interface to certain
low-level functionality.  (Actually, C doesn't have that, either.)  
But since that's trivial to add to any given implementation, 
I don't see that as any impediment, especially since it's already
been done before.  The only significant thing that's hard or tricky,
language-wise, is writing a good Lisp compiler. That's been done, too.
So I think the time is again ripening for work in that area. 

> Well, maybe I shouldn't have summoned the ITS daemon.. 
> it is not really significant to my argument anyways.

I agree.  It appears to have been ad-hominem attack that you
"popped in there" to bolster your argument, which contained
no discernable logic based on facts, and which was cbock 
full of confusion about the history of computers, 
and which contained no insights.

It would be more interesting and productive to discuss technical
issues, then rant about some perceived insults to your honor.
Since you didn't invent C or Unix, I'm not even sure why you
would be upset with critiques of them, regardless of content.
Do you have anything technical to say?  Preferably about Lisp?
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86pswuyiv6.fsf@drjekyll.mkbuelow.net>
······@news.dtpq.com (Christopher C. Stacy) writes:

I do not insist on keeping this branch of the thread going, but
here're a few answers:

> Rather than rewrite ITS,  an even better operating system
> was written, in Lisp (of course).  This was in the mid 1970s,
> with work proceeding into the late 1980s.

And in 2005, it's gone.  Hardly anyone even remembers that mythical OS
(what was it, anyways, Genera?)

> Unix is a throwback.  You seem to have shifted into an argument
> about "success".  Is that what you mean by "success"?

My posting with the naming of "ITS" (which I now come to regret, not
having anticipated that I would get such a reaction) was in response
to Ulrich Hobelmann's declaration that C is just "too low level" and
that he's looking into assembler (and forth).  Which prompted me to
say that, in contrast to certain other developments of its time (let's
take MS-DOS, for the gods' sake, if you don't like the other OS being
mentioned), Unix, being written in a portable high-level language, was
rather progressive indeed, and that considering assembler today as an
alternative would be the real throwback.

> ITS was entirely successful (and of course, so was PDP-10 assembler),
> in terms of meeting its design goals and proving to be an most
> excellent service platform.  It did what Unix could never do.

Go extinct?

> I still don't quite know what point you're trying to make.  
> It rather sounds like you might be equating "successful" 
> with "widespread popularity", and perhaps with technical
> quality in terms of sophistication, elegance, utility,
> and tendancy towards (lack of) bugs.

Successful in that it has survived 35 years and its popularity is
still rising (if you count the free systems such as Gnu/Linux and *BSD
aswell as MacOS X as "Unix").  And it probably will be around for
another 35.  Of course, by that measure, Windows NT is also
successful, which I do not dispute.

> Since you dragged Unix into this, do you think that C will
> continue to be a good approach for writing operating systems
> in the future? Is this because it is well-suited to the kind 
> of hardware that we have today, and the kind of software that
> we want?  If so, could you elaborate on that?

The largest part of the OS kernel are device drivers, for which C does
the job.  I also don't think that operating systems are particularly
interesting anymore in terms of research or developing new strategies.
Not until our computer architectures change significantly.  At the
moment we do not have a dearth of useful operating systems.  The "OS
problem" is solved today.

> By the way, have you heard of Movitz?  

No.

> Here's my take on operating system software written in Lisp.
> ANSI Common Lisp lacks any kind of standard interface to certain
> low-level functionality.  (Actually, C doesn't have that, either.)  
> But since that's trivial to add to any given implementation, 
> I don't see that as any impediment, especially since it's already
> been done before.  The only significant thing that's hard or tricky,
> language-wise, is writing a good Lisp compiler. That's been done, too.
> So I think the time is again ripening for work in that area. 

I think it's too heavy-weight for that.  IMHO, a systems language
should be simple and clean.  Scheme, modified for hardware stuff and
hardware types, might do the job quite well.  From looking at the
Movitz site, it looks like they do not want to write an OS in Common
Lisp but rather want to turn Common Lisp into an OS.  Common Lisp is a
large toolbox of sometimes ill-matched tools and a lot of ballast from
pre-Common Lisps, probably included to ease porting of existing
applications.  That's ok for an applications programming system (where
you might want to have the choice), but as an operating system?!
Plus, designing an OS for the "bare metal" today is a rather good
route to failure.  What one does first is develop the OS for a virtual
machine, which can be hosted on existing systems (I'm not talking
about running it in an x86 emulator, as they do on the site).
The interface to the VM could then be ported to the "bare metal", if
the need arises (see Lucent's Inferno for reference).  With today's
myriads of devices and hence the necessity for many, many device
drivers, I'm not so sure that one would want to do that anyways.  But
well, good luck to the Movitz people.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ccuvnF6n5h68U1@individual.net>
Matthias Buelow wrote:
> The largest part of the OS kernel are device drivers, for which C does
> the job.  I also don't think that operating systems are particularly
> interesting anymore in terms of research or developing new strategies.
> Not until our computer architectures change significantly.  At the
> moment we do not have a dearth of useful operating systems.  The "OS
> problem" is solved today.

Looking at Plan9: yes, decent system architectures exist (although 
Unix works well enough).  I just wish they were mainstream...

> I think it's too heavy-weight for that.  IMHO, a systems language
> should be simple and clean.  Scheme, modified for hardware stuff and
> hardware types, might do the job quite well.

This makes me think of PreScheme (the Scheme used to write the 
Scheme48 VM).  I think I only read one paper about it once, but 
didn't find much other documentation.  It might make a decent C 
replacement (that -- funnily enough -- compiles to C).

Does anyone have docu on how to use PreScheme as a standalone 
tool, or how to rip it out of Scheme48?

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uwtr28zr9.fsf@news.dtpq.com>
Quality == Popularity.
Okay, and than you for playing our game.
From: Adam Connor
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <qoj361thdi43ag2ba74bt3b1telh1ve5r8@4ax.com>
On Sat, 16 Apr 2005 16:14:51 GMT, ······@news.dtpq.com (Christopher C.
Stacy) wrote:

>Quality == Popularity.
>Okay, and than you for playing our game.

I'm only an interested reader, but I thought what he said was more
along the lines of Success == Popularity. In a Darwinian sense, he is
correct. Your point seems to be that Popularity != Quality. I grant
this, but I don't think it invalidates the other interpretation. The
best system available to me may be technically inferior to one that
died long ago, but... at least it's available. Survival is not to be
despised.
--
adamnospamaustin.rr.com
s/nospam/c\./
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u1x9adnqs.fsf@news.dtpq.com>
Adam Connor <···@nospam.com> writes:
> The best system available to me may be technically inferior to one
> that died long ago, but... at least it's available.

His point (if there was one) was that Lisp is inappropriate 
as a systems programming language, but he apparently doesn't 
know anything about either Lisp, systems programming, or the
history of any of the systems that he was trying to argue about.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cf7reF6lqs2qU1@news.dfncis.de>
In comp.lang.scheme Christopher C. Stacy <······@news.dtpq.com> wrote:

>His point (if there was one) was that Lisp is inappropriate 
>as a systems programming language, but he apparently doesn't 

Nonsense, I never said that.  It's perhaps what you would want to
read but it isn't my conviction and I for sure won't give people
like you such a hook for diving into a flamewar.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uwtr2c93f.fsf@news.dtpq.com>
Adam Connor <···@nospam.com> writes:
> I'm only an interested reader, but I thought what he said was more
> along the lines of Success == Popularity. 

I suppose we should add that he considers "the operating system
problem" to have "already been solved".   Really, he didn't have
any point that I could see.   He was angry that someone, somewhere,
made some vague claim that "Lisp is better than C".
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cf7stF6lqs2qU2@news.dfncis.de>
In comp.lang.scheme Christopher C. Stacy <······@news.dtpq.com> wrote:

>any point that I could see.   He was angry that someone, somewhere,
>made some vague claim that "Lisp is better than C".

No.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <usm1pzed5.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:
> In comp.lang.scheme Christopher C. Stacy <······@news.dtpq.com> wrote:
> >any point that I could see.   He was [...] 
> 
> No.

I think the relevent messages would be the one where you
started the sub-thread on Apr 15, 1:34 PM, and the subsequent
half-dozen or so messages from you, me and perhaps Ulrich Hobelmann, 
up through your message on Apr 16, 6:02 AM (or maybe the one at 10:05 AM).

(In my opinion, a fairly related sub-thread, which occured earlier,
was the message from me on Apr 15, 10:22 AM, your response at 10:56 AM,
and mine at 12:02 PM.)

People can simply read the posts using Google, get the context, 
see your original point and all the followups, and draw their 
own conclusions.

I'm not really intersted in any further disucssion with you.
From: Joe Marshall
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <sm1my0w4.fsf@ccs.neu.edu>
Matthias Buelow <···@incubus.de> writes:

> The largest part of the OS kernel are device drivers, for which C does
> the job.  I also don't think that operating systems are particularly
> interesting anymore in terms of research or developing new strategies.
> Not until our computer architectures change significantly.  At the
> moment we do not have a dearth of useful operating systems.  The "OS
> problem" is solved today.

This is absurd.
From: Frode Vatvedt Fjeld
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2hwtqq54r4.fsf@vserver.cs.uit.no>
Matthias Buelow <···@incubus.de> writes:

> The largest part of the OS kernel are device drivers, for which C
> does the job.

C "does the job" for word processors and web browsers also. Personally
I believe the job can be done much better.

> I also don't think that operating systems are particularly
> interesting anymore in terms of research or developing new
> strategies.  Not until our computer architectures change
> significantly.  At the moment we do not have a dearth of useful
> operating systems.  The "OS problem" is solved today.

I disagree strongly with this. I believe that the current mainstream
OS architecture/design is the root cause of a substantial portion of
the endless number of day-to-day problems with computers. There's a
massive lack of infrastructure for information flow and
user-customizable automation ("pliantness", perhaps, in the words of
www.pliant.org). The big change in computer architecture has already
happened, as a continuous process across the nineties: the
thousandfolds increase of CPU speed an memory. The 64-bit CPUs dot the
i.

> I think it's too heavy-weight for that.  IMHO, a systems language
> should be simple and clean.  Scheme, modified for hardware stuff and
> hardware types, might do the job quite well.

Having "heavy-weight" Common Lisp mechanisms such as the setf
machinery, objects with slots with :after methods, unwind-protect,
macrolet and with-foo macros, conditions signaling, etc. etc available
when writing device drivers makes for some quite beautiful programming
and massively improved readability, and I believe improve greatly the
chances of the resulting system actually working reliably. I'm really
puzzled why many people seem to think that removing such things from a
programming language makes it more suitable for solving the sometimes
quite complicated problems that device-drivers must do (and they must
do it in concert with the rest of the system).

> From looking at the Movitz site, it looks like they do not want to
> write an OS in Common Lisp but rather want to turn Common Lisp into
> an OS.

As "the Movitz guy", I don't think this is quite correct. Movitz is an
attempt at a CL implementation with only the bare minimum of
"architecture" and associated policy-decisions embedded in it, making
it able to serve e.g. as the infrastructure (compiler, basic run-time,
libraries) for OS kernels of many shapes and colors.

> Plus, designing an OS for the "bare metal" today is a rather good
> route to failure.  What one does first is develop the OS for a
> virtual machine, which can be hosted on existing systems (I'm not
> talking about running it in an x86 emulator, as they do on the
> site).

But this is in fact what has been done. The thing is, the "virtual
machine" targeted by Movitz happens to match exactly the x86
CPU. Virtual machines of this kind exist in abundance, in the form of
linux or even win32 "processes". Movitz could easily target these, it
would just be a matter of exchanging the bootloader for an ELF header
etc.

-- 
Frode Vatvedt Fjeld
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <sptbe.135655$dP1.478531@newsc.telia.net>
Frode Vatvedt Fjeld wrote:
> Having "heavy-weight" Common Lisp mechanisms such as the setf
> machinery, objects with slots with :after methods, unwind-protect,
> macrolet and with-foo macros, conditions signaling, etc. etc available
> when writing device drivers makes for some quite beautiful programming
> and massively improved readability, and I believe improve greatly the
> chances of the resulting system actually working reliably. I'm really
> puzzled why many people seem to think that removing such things from a
> programming language makes it more suitable for solving the sometimes
> quite complicated problems that device-drivers must do (and they must
> do it in concert with the rest of the system).

Generalized set! and with-foo macros are available with Scheme.
I don't quite see why you'd want unwind-protect when you can have 
dynamic-wind, but maybe some other guru will correct this.
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7f64F6snesmU1@individual.net>
Sunnan wrote:
> Frode Vatvedt Fjeld wrote:
> 
>> Having "heavy-weight" Common Lisp mechanisms such as the setf
>> machinery, objects with slots with :after methods, unwind-protect,
>> macrolet and with-foo macros, conditions signaling, etc. etc available
>> when writing device drivers makes for some quite beautiful programming
>> and massively improved readability, and I believe improve greatly the
>> chances of the resulting system actually working reliably. I'm really
>> puzzled why many people seem to think that removing such things from a
>> programming language makes it more suitable for solving the sometimes
>> quite complicated problems that device-drivers must do (and they must
>> do it in concert with the rest of the system).
> 
> Generalized set! and with-foo macros are available with Scheme.
> I don't quite see why you'd want unwind-protect when you can have 
> dynamic-wind, but maybe some other guru will correct this.

I don't think that you can implement Common Lisp's setf in R5RS Scheme. 
The Swindle library uses syntax-case to implement it.

The problem with dynamic-wind is that it doesn't distinguish between 
escaping continuations and full continuations - you may not want to run 
the after thunk for full continuations. Building an abstraction that's 
aware of that difference may lead to interoperability problems with 
other libraries if not done right. (Essentially, there should be a 
consensus across libraries how to distinguish between escaping and full 
continuations.)

If full continuations were added to Common Lisp, unwind-protect would 
(hopefully) not be triggered by invocation of full continuations, so you 
don't get those problems here.


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Jens Axel Søgaard
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <426e8ce4$0$250$edfadb0f@dread12.news.tele.dk>
Pascal Costanza wrote:

> Sunnan wrote:

>> Generalized set! and with-foo macros are available with Scheme.
>> I don't quite see why you'd want unwind-protect when you can have 
>> dynamic-wind, but maybe some other guru will correct this.
> 
> I don't think that you can implement Common Lisp's setf in R5RS Scheme. 
> The Swindle library uses syntax-case to implement it.

Generalized set! is srfi-17:

     <http://srfi.schemers.org/srfi-17/srfi-17.html>

The reference implementation uses syntax-rules:

     <http://srfi.schemers.org/srfi-17/srfi-17-twobit.scm>

If syntax-case is used, then it is possible to improve
the error messages, when the construct is incorrectly used.

-- 
Jens Axel Søgaard
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7ikuF6qtbsaU1@individual.net>
Jens Axel S�gaard wrote:
> Pascal Costanza wrote:
> 
>> Sunnan wrote:
> 
>>> Generalized set! and with-foo macros are available with Scheme.
>>> I don't quite see why you'd want unwind-protect when you can have 
>>> dynamic-wind, but maybe some other guru will correct this.
>>
>>
>> I don't think that you can implement Common Lisp's setf in R5RS 
>> Scheme. The Swindle library uses syntax-case to implement it.
> 
> Generalized set! is srfi-17:
> 
>     <http://srfi.schemers.org/srfi-17/srfi-17.html>
> 
> The reference implementation uses syntax-rules:
> 
>     <http://srfi.schemers.org/srfi-17/srfi-17-twobit.scm>
> 
> If syntax-case is used, then it is possible to improve
> the error messages, when the construct is incorrectly used.

OK, does this also work with macros? What about the other forms listed 
in http://www.lispworks.com/documentation/HyperSpec/Body/05_ab.htm ?

Maybe this can indeed all be implemented with syntax-rules, but I would 
be surprised.


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Jens Axel Søgaard
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <426e9c92$0$274$edfadb0f@dread12.news.tele.dk>
Pascal Costanza wrote:
> Jens Axel Søgaard wrote: 
>> Pascal Costanza wrote:
>>> Sunnan wrote:

>>>> Generalized set! and with-foo macros are available with Scheme.
>>>> I don't quite see why you'd want unwind-protect when you can have 
>>>> dynamic-wind, but maybe some other guru will correct this.
>>>
>>> I don't think that you can implement Common Lisp's setf in R5RS 
>>> Scheme. The Swindle library uses syntax-case to implement it.
>>
>> Generalized set! is srfi-17:
>>
>>     <http://srfi.schemers.org/srfi-17/srfi-17.html>
>>
>> The reference implementation uses syntax-rules:
>>
>>     <http://srfi.schemers.org/srfi-17/srfi-17-twobit.scm>

 > OK, does this also work with macros? What about the other forms listed in
 > http://www.lispworks.com/documentation/HyperSpec/Body/05_ab.htm ?

 > Maybe this can indeed all be implemented with syntax-rules, but I
 > would be surprised.

The srfi-17 version of generalized is not as general as the CL one.
Here is an excerpt from srfi:

      Many programming languages have the concept of an lvalue. that is
   an "expression" that "evaluates" to a location, and which can appear
   on the left-hand-side of an assignment. Common Lisp has a related concept
   of "generalized variables" which can be used in setf and some other special
   forms. However, the Common Lisp concept is based on the idea of compile-time
   recognition of special "location-producing" functions; this does not seem to
   be in the "spirit of Scheme".

   This SRFI proposes an extension of set! so that it provides similar
   functionality as Common Lisp's setf, except that the updater is associated
   with a procedure value, rather than a name.

As soon as we need computation at compile-time syntax-rules isn't enough,
and syntax-case or define-macro is needed.

-- 
Jens Axel Søgaard
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1czbe.135681$dP1.478521@newsc.telia.net>
Pascal Costanza wrote:
> If full continuations were added to Common Lisp, unwind-protect would 
> (hopefully) not be triggered by invocation of full continuations, so you 
> don't get those problems here.

This sounds weird, but I'll buy your argument.
I'll just trust that you've already read all this stuff:
http://www.nhplace.com/kent/PFAQ/unwind-protect-vs-continuations.html

Especially Dorai's text.
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7v42F6skaqaU1@individual.net>
Sunnan wrote:
> Pascal Costanza wrote:
> 
>> If full continuations were added to Common Lisp, unwind-protect would 
>> (hopefully) not be triggered by invocation of full continuations, so 
>> you don't get those problems here.
> 
> This sounds weird, but I'll buy your argument.
> I'll just trust that you've already read all this stuff:
> http://www.nhplace.com/kent/PFAQ/unwind-protect-vs-continuations.html
> 
> Especially Dorai's text.

Yep, both of them. There was recently a discussion in comp.lang.lisp 
about this issue that starts with 
http://groups-beta.google.com/group/comp.lang.lisp/msg/476272a1e7530268

My first summary in that thread is incorrect.



Pascal


-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <kMzbe.135685$dP1.478656@newsc.telia.net>
Pascal Costanza wrote:
> Yep, both of them. There was recently a discussion in comp.lang.lisp 
> about this issue that starts with 
> http://groups-beta.google.com/group/comp.lang.lisp/msg/476272a1e7530268
> 
> My first summary in that thread is incorrect.

Thanks for the pointer. I'm reading it now.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86d5sh1wcz.fsf@drjekyll.mkbuelow.net>
Frode Vatvedt Fjeld <······@cs.uit.no> writes:

>chances of the resulting system actually working reliably. I'm really
>puzzled why many people seem to think that removing such things from a
>programming language makes it more suitable for solving the sometimes
>quite complicated problems that device-drivers must do (and they must
>do it in concert with the rest of the system).

Because complexity is the enemy of correctness.  Ah well, we'll see
how it'll work out with you.  Perhaps you're right and it isn't that
bad.  I'm quite convinced that you open a whole container ship full of
headache problems when you use a baroque language for the system that
does too many things "behind the scenes".

mkb.
From: jayessay
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m3is29e7wa.fsf@rigel.goldenthreadtech.com>
Matthias Buelow <···@incubus.de> writes:

> Frode Vatvedt Fjeld <······@cs.uit.no> writes:
> 
> >chances of the resulting system actually working reliably. I'm really
> >puzzled why many people seem to think that removing such things from a
> >programming language makes it more suitable for solving the sometimes
> >quite complicated problems that device-drivers must do (and they must
> >do it in concert with the rest of the system).
> 
> Because complexity is the enemy of correctness.

Exactly.  Which is also precisely why you _want_ as high a level
language as you can get to help you.  The complexity is there no
matter what, it's how you are able (or not able) to _manage and
control_ the complexity that counts.  That is why a typical stripped
down "systems programming language" is such a giant pain to use to get
this stuff right.  You, joe/jane programmer, have to _manually_ manage
all the complexity yourself and, from experience and extent systems,
it's clear that doesn't work so well.


/Jon

-- 
'j' - a n t h o n y at romeo/charley/november com
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7h3vF6qhi5rU1@news.dfncis.de>
In comp.lang.lisp jayessay <······@foo.com> wrote:

>> Because complexity is the enemy of correctness.
>Exactly.  Which is also precisely why you _want_ as high a level
>language as you can get to help you.  The complexity is there no
>matter what, it's how you are able (or not able) to _manage and
>control_ the complexity that counts.  That is why a typical stripped
>down "systems programming language" is such a giant pain to use to get
>this stuff right.  You, joe/jane programmer, have to _manually_ manage
>all the complexity yourself and, from experience and extent systems,
>it's clear that doesn't work so well.

I was talking about language "complexity" (in the sense of many
different, often redundant, and very complex language features).

In what way would:

 * a complicated programmable read-macro expander with readtables,
 * the programmable pretty printer,
 * a resident compiler inside the kernel image,
 * logical pathnames that "support" multiple OS naming conventions,
 * basically text-oriented CL streams (must be fun with read-byte,
   write-byte),
 * generalized set (setf),
 * complex numbers,
 * the multitude of highly inconsistent and oddly named utility
   functions, included in the standard for backwards compatibility,
 * the excessive FORMAT,
 * the infamous "defined-by-example" LOOP facility (arrrgh...),
 * the hefty, very complete CLOS (nice as it may be for large
   application suites)

aid in reducing the "complexity" of managing devices, and controlling
a couple resources like processes, memory mappings and filesystems?

Especially when coupled with the absence of:

 * synchronizing features integrated in the language for use with
   threads or processes (you'd most likely have to explicitly use
   spinlocks written in assembler, with relatively coarse locking,
   like it is done in most of today's C kernels),
 * the complete lack of hardware abstractions like easy mapping of
   memory address regions (for device i/o),
 * real-time features needed for timely servicing of hardware
   interrupts,
 * applicability of the many Lisp utility functions to zero-copying
   network buffers, multiply-mapped user process memory, mapped bus
   device memory, fixed-address bounce buffers, etc.,
 * (most likely CMUCL) a garbage collector that exhibits certain
   real-time properties, and can be controlled much finer-grained
   than needed for ordinary application software, and is safe in a
   multiprogramming environment (concurrent kernel threads, user
   processes in kernel mode), and integrates well with the kernel's
   virtual memory management (what if memory mapped from a user
   process temporarily references a kernel structure, and the GC
   runs?  User mapped memory is out of the kernel GC's jurisdiction,
   etc.  And that's just over-simplifying already.)

I can't see any use for any of the above mentioned Common Lisp
features that would help here (except of deliberately cluttering
up the kernel), and you'd have to separately implement all the
missing features, like in most other languages.  So no real advantage
here.  Besides, you don't have to use a low-level programming
language.  Nobody said that.  Just take a sufficiently high-level
language and remove all the cruft which only gets in the way.  Or
alternatively, and that is the better choice, imho, start with a
minimalistic language and carefully and consistently add the features
you really need.  Maybe you don't see it that way that Common Lisp
is not a language cleanly designed from scratch.  It is a huge
compromise, agreed upon by comittee, to basically have a superset
of the features of diverse previous Lisp dialects in order to support
as many legacy applications with as little modification as possible.
It is really a large, heterogenous, internally redundant programming
toolbox, not a clean, lean systems language.

Besides, you assume the language system (in this case, CMUCL) works
correctly.  I however, prefer to be conservative and assume that
it is full of bugs which have to be identified, besides bugs related
to the complex interaction between the multiprocessing kernel and
hardware (often marginal hardware for which no proper documentation
is available) that exists in any kernel programming, no matter what
language.

mkb.
From: Frode Vatvedt Fjeld
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2hoec15ms9.fsf@vserver.cs.uit.no>
Matthias Buelow <···@incubus.de> writes:

> In what way would: [...] aid in reducing the "complexity" of
> managing devices, and controlling a couple resources like processes,
> memory mappings and filesystems?

>  * a complicated programmable read-macro expander with readtables,
>  * the programmable pretty printer,

Exactly as in any other application domain, these allow for
convenience in interactive and exploratory programming.

>  * a resident compiler inside the kernel image,

..ditto, and implementing minimal compilation is really no big deal.

>  * logical pathnames that "support" multiple OS naming conventions,

this is completely orthogonal to this particular application domain.

>  * basically text-oriented CL streams (must be fun with read-byte,
>    write-byte),

Pretty much as fun as it would be to add fread and fwrite inside the
linux kernel.

>  * generalized set (setf),
>  * complex numbers,
>  * the multitude of highly inconsistent and oddly named utility
>    functions, included in the standard for backwards compatibility,
>  * the excessive FORMAT,
>  * the infamous "defined-by-example" LOOP facility (arrrgh...),
>  * the hefty, very complete CLOS (nice as it may be for large
>    application suites)

It seems to me you are arguing against Common Lisp, and not against
using Common Lisp for device drivers. Personally, I know of nothing
superior to the hefty CLOS, the infamous loop, the excessive format,
etc.

> Especially when coupled with the absence of:
>
>  * synchronizing features integrated in the language for use with
>    threads or processes (you'd most likely have to explicitly use
>    spinlocks written in assembler, with relatively coarse locking,
>    like it is done in most of today's C kernels),

I believe this is one area where CL can do much better than C. It so
happens I've written down some thoughts on just this:
http://www.cs.uit.no/forskning/rapporter/Reports/200346.pdf

>  * the complete lack of hardware abstractions like easy mapping of
>    memory address regions (for device i/o),

A programming language is infrastructure for building and using
abstractions. Building an abtraction such as this is really quite
trivial.

>  * real-time features needed for timely servicing of hardware
>    interrupts,

I don't know of any language that this is. And I don't know of
anything that C provides that fits this description.

>  * applicability of the many Lisp utility functions to zero-copying
>    network buffers, multiply-mapped user process memory, mapped bus
>    device memory, fixed-address bounce buffers, etc.,

this is too vague for me to comment on.

>  * (most likely CMUCL) a garbage collector that exhibits certain
>    real-time properties, and can be controlled much finer-grained
>    than needed for ordinary application software, and is safe in a
>    multiprogramming environment (concurrent kernel threads, user
>    processes in kernel mode), and integrates well with the kernel's
>    virtual memory management (what if memory mapped from a user
>    process temporarily references a kernel structure, and the GC
>    runs?  User mapped memory is out of the kernel GC's jurisdiction,
>    etc.  And that's just over-simplifying already.)

I've worked quite a bit on this--that is, not "a garbage collector",
but how to have GC support in the run-time. "Support" in the sense
that the application architecture (such as your kernel) can implement
its GC according to whatever requirements, memory architecture, etc,
it pleases.

-- 
Frode Vatvedt Fjeld
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7p1bF6pmd3eU1@news.dfncis.de>
In comp.lang.lisp Frode Vatvedt Fjeld <······@cs.uit.no> wrote:

>It seems to me you are arguing against Common Lisp, and not against
>using Common Lisp for device drivers. Personally, I know of nothing
>superior to the hefty CLOS, the infamous loop, the excessive format,
>etc.

No.  I'm just wondering what advantages to using Common Lisp in the
kernel programming you see, compared to a much smaller language
like Scheme, the implementation of which then has been designed
for, and augmented with functionality useful especially in a kernel
programming context.  I can't see any so far.  In fact, I only see
disadvantages of using any ordinary complete CL implementation.
That's what I wanted to express.  For userland applications, other
design priorities hold and userland applications are much more
diverse.

>>  * applicability of the many Lisp utility functions to zero-copying
>>    network buffers, multiply-mapped user process memory, mapped bus
>>    device memory, fixed-address bounce buffers, etc.,
>this is too vague for me to comment on.

I guess that, if you have Common Lisp available, then you would
also want to use the many features, and utility functions, of Common
Lisp.  Sequence functions, arrays, etc.  However, kernel programming
is special in that you often have certain constraints on such
structures.  For example, they may have to reside at certain
addresses.  Perhaps there should be no copying involved when
transferring data from one kernel layer to another, or to a user
program (some OSes, like for example NetBSD, have a zero-copy TCP/IP
stack; that's increasingly important for achieving top networking
performance today.)  Some hardware (x86 I think) usually needs
bounce-buffers, because DMA can only be done to below 16MB or so,
and so on.  Which means, there would be a lot of special cases where
you'd have to use special-purpose functions for copying, filtering,
accumulating from sequences, because the memory they normally operate
on has certain constraints that simply do not exist in a Lisp
userland process.  And it is the very nature of the kernel to manage
those "special" cases (like mapped device memory, networking, VM
mappings) so that the userland doesn't have to.  So most likely you
cannot exploit the many Lisp utility functions in a way you would
in an ordinary application because they are unsuitable in many
cases, thus reducing the justification of their existence in the
kernel Lisp image.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u8y35jkn1.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:

> In comp.lang.lisp Frode Vatvedt Fjeld <······@cs.uit.no> wrote:
> 
> >It seems to me you are arguing against Common Lisp, and not against
> >using Common Lisp for device drivers. Personally, I know of nothing
> >superior to the hefty CLOS, the infamous loop, the excessive format,
> >etc.
> 
> No.  I'm just wondering what advantages to using Common Lisp in the
> kernel programming you see, compared to a much smaller language like
> Scheme, the implementation of which then has been designed for, and
> augmented with functionality useful especially in a kernel
> programming context.  I can't see any so far.  In fact, I only see
> disadvantages of using any ordinary complete CL implementation.
> That's what I wanted to express.  For userland applications, other
> design priorities hold and userland applications are much more
> diverse.

ANSI Common Lisp is not desiged to be an on-the-metal operating
systems programming language, and lacks a few features that are
necessary.  It is only a subset of an even larger language that
was designed, and successfully used, for that purpose.   If you
want to do that again, you'll have to put the other stuff back
in as extensions.   It's not very hard to do that.

The "Lisp big bad" versus "Scheme small good" argument is blatant
troll nonsense.  Anyone who doesn't understand that should do 
some reading; I'm not going to bother expounding upon it here.

Come back when you've implemented some operating systems.
From: Frode Vatvedt Fjeld
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2hk6mp5axq.fsf@vserver.cs.uit.no>
Matthias Buelow <···@incubus.de> writes:

> I guess that, if you have Common Lisp available, then you would also
> want to use the many features, and utility functions, of Common
> Lisp.  Sequence functions, arrays, etc.  However, kernel programming
> is special in that you often have certain constraints on such
> structures.  For example, they may have to reside at certain
> addresses.  Perhaps there should be no copying involved when
> transferring data from one kernel layer to another, or to a user
> program (some OSes, like for example NetBSD, have a zero-copy TCP/IP
> stack; that's increasingly important for achieving top networking
> performance today.)

Current standard kernel architectures have grown in symbiosis with the
C programming language, and I think it would be rather pointless to
re-implement e.g. a unix-ish kernel just using CL rather than C. The
whole concept of zero-copy network stacks is a result of the
kernel/user-space dichotomy that came about because a C based system
is unbearable without it. So while I'm unsure of whether a zero-copy
stack as found in e.g. linux is feasible in CL, I'm even more unsure
(i.e. I'm hoping and expecting) it won't be an issue in the OS
designs I'd be interested in building with CL.

> Some hardware (x86 I think) usually needs bounce-buffers, because
> DMA can only be done to below 16MB or so, and so on.

This particular issue is no more, for reasonably current PCs, and
certainly not for any device for which performance can be considered
an issue.

> Which means, there would be a lot of special cases where you'd have
> to use special-purpose functions for copying, filtering,
> accumulating from sequences, because the memory they normally
> operate on has certain constraints that simply do not exist in a
> Lisp userland process.  And it is the very nature of the kernel to
> manage those "special" cases (like mapped device memory, networking,
> VM mappings) so that the userland doesn't have to.  So most likely
> you cannot exploit the many Lisp utility functions in a way you
> would in an ordinary application because they are unsuitable in many
> cases, thus reducing the justification of their existence in the
> kernel Lisp image.

Well, I think you are much too quick to jump to this "most likely"
conclusion, but clearly I have some more work to do on Movitz before I
have concrete evidence to point too.


Btw, I've just now implemented the basics for threads under
Movitz.. flipping interactively (keying in "(yield <thread>)" at the
REPL) between two threads works surprisingly well. It's quite
fascinating, really :-)

-- 
Frode Vatvedt Fjeld
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <I6zbe.135680$dP1.478635@newsc.telia.net>
Frode Vatvedt Fjeld wrote:

> Personally, I know of nothing superior to [...] the infamous loop

This is a somewhat strong statement.
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3d7v8jF6nonkbU1@individual.net>
Sunnan wrote:
> Frode Vatvedt Fjeld wrote:
> 
>> Personally, I know of nothing superior to [...] the infamous loop
> 
> This is a somewhat strong statement.

iterate seems to be better, but I still have to learn it.

See http://common-lisp.net/project/iterate/


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Espen Vestre
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <kwpswgk5cj.fsf@merced.netfonds.no>
Frode Vatvedt Fjeld <······@cs.uit.no> writes:

> using Common Lisp for device drivers. Personally, I know of nothing
> superior to the hefty CLOS, the infamous loop, the excessive format,
> etc.

I thought I was a real loopologist until I looked through some
old code the other day and discovered that I couldn't read my
own IF-clauses. I'm now considering to stop using IF, but on
the other hand I don't like to move conditional stuff to a
large DO-block either, because I want to e.g. put a COLLECT
inside an IF-branch.

LOOP is cool, but I keep watching out for better alternatives.
I really liked Sven-Olof Nystr�ms talk in Oslo last june
("Generalized comprehensions for Common Lisp"), but haven't
looked enough into it to be fully able to judge if it could
be a real LOOP replacement.

>>  * real-time features needed for timely servicing of hardware
>>    interrupts,
>
> I don't know of any language that this is. And I don't know of
> anything that C provides that fits this description.

Lisp /can/ be "hard" real time :-)

(see the Takeuchis paper with that title on 
 http://jp.franz.com/jlug/en/jlugm2000/index.html)
-- 
  (espen)
From: jayessay
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m3ekcuekg3.fsf@rigel.goldenthreadtech.com>
Matthias Buelow <···@incubus.de> writes:

> In comp.lang.lisp jayessay <······@foo.com> wrote:
> 
> >> Because complexity is the enemy of correctness.
> >Exactly.  Which is also precisely why you _want_ as high a level
> >language as you can get to help you.  The complexity is there no
> >matter what, it's how you are able (or not able) to _manage and
> >control_ the complexity that counts.  That is why a typical stripped
> >down "systems programming language" is such a giant pain to use to get
> >this stuff right.  You, joe/jane programmer, have to _manually_ manage
> >all the complexity yourself and, from experience and extent systems,
> >it's clear that doesn't work so well.
> 
> I was talking about language "complexity" (in the sense of many
> different, often redundant, and very complex language features).

Language complexity comes not from many features, but from an
explosion of weird often ill defined set of interactions among the
features that are available.  See C++ for the prototypical example.
Common Lisp is pretty much the antithesis of this.  Having a boatload
of sensibly and predictably interacting features (in particular those
that interact only when you request such) is nothing but _good_ for
the user.  This greatly _reduces_ the complexity that _matters_: that
of the _application space_.  I'm not sure why this isn't just
_blazingly_ obvious, but I know a lot of people are completely
confused on this count.  Many of them are even "advanced software
developers".  Go figure.


/Jon

-- 
'j' - a n t h o n y at romeo/charley/november com
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86hdhqlkz5.fsf@drjekyll.mkbuelow.net>
jayessay <······@foo.com> writes:

>Language complexity comes not from many features, but from an
>explosion of weird often ill defined set of interactions among the
>features that are available.  See C++ for the prototypical example.

Yes, exactly.

>Common Lisp is pretty much the antithesis of this.  Having a boatload

Yes, of course.  Common Lisp, the lean, clean, consistently designed
language.  As everyone knows.  And freedom is slavery, war is peace.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3dd1t0F6ss3ogU2@individual.net>
Matthias Buelow wrote:
> jayessay <······@foo.com> writes:
> 
> 
>>Language complexity comes not from many features, but from an
>>explosion of weird often ill defined set of interactions among the
>>features that are available.  See C++ for the prototypical example.
> 
> 
> Yes, exactly.
> 
> 
>>Common Lisp is pretty much the antithesis of this.  Having a boatload
> 
> 
> Yes, of course.  Common Lisp, the lean, clean, consistently designed
> language.  As everyone knows.  And freedom is slavery, war is peace.

At least it's much more orthogonal than C semanticwise, and has a 
much more uniform syntax, instead of *arbitrary* (accidental) 
complexity.  What you find in Lisp (or maybe rather Scheme) is 
mostly *inherent* complexity, the kind that can't be removed, ever.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86d5selgmt.fsf@drjekyll.mkbuelow.net>
Ulrich Hobelmann <···········@web.de> writes:

>>>Common Lisp is pretty much the antithesis of this.  Having a boatload
>> Yes, of course.  Common Lisp, the lean, clean, consistently designed
>> language.  As everyone knows.  And freedom is slavery, war is peace.
>At least it's much more orthogonal than C semanticwise, and has a much
>more uniform syntax, instead of *arbitrary* (accidental) complexity.
>What you find in Lisp (or maybe rather Scheme) is mostly *inherent*
>complexity, the kind that can't be removed, ever.

That wasn't what I meant.  I was referring to the historically grown
set of utility functions in ANSI CL, that in other libraries would
constitute a "standard library".  And this subthread was in the
context of kernel programming, not general applications stuff
(although I had already finished with that discussion.)

mkb.
From: Hartmann Schaffer
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <Khece.163$pi1.1257@newscontent-01.sprint.ca>
Matthias Buelow wrote:
> 
> That wasn't what I meant.  I was referring to the historically grown
> set of utility functions in ANSI CL, that in other libraries would
> constitute a "standard library".

if you look at the ANSI C standard, you will notice that the "standard 
library" is also part of the standard, so is no different from ANSI CL 
except for the extra ink used in stating that those parts of the 
standard constitute the standard library

> And this subthread was in the
> context of kernel programming, not general applications stuff
> (although I had already finished with that discussion.)

well, the kernel is written in a subset of standard C, i.e. not using 
some of the standard functions (those that rely on OS support).  what 
would stop you from writing a kernel in an equivalent subset of CL?

hs
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86ll72jwx2.fsf@drjekyll.mkbuelow.net>
Hartmann Schaffer <··@hartmann.schaffernet> writes:

>Matthias Buelow wrote:
>> That wasn't what I meant.  I was referring to the historically grown
>> set of utility functions in ANSI CL, that in other libraries would
>> constitute a "standard library".
>
>if you look at the ANSI C standard, you will notice that the "standard
>library" is also part of the standard, so is no different from ANSI CL
>except for the extra ink used in stating that those parts of the
>standard constitute the standard library

I wasn't talking about C, and exactly the same critique is well known
of C's stdlib aswell.

A more valid comparison between the two concepts might be comparing
the Basis library of Standard ML, which was designed, with ANSI CL, or
the ISO C stdlib.  The C++ STL, despite probably not being very
popular here, is also considered to be relatively well designed.

The issue is really holistic design vs. a historically grown
assortment of utilities.

>well, the kernel is written in a subset of standard C, i.e. not using
>some of the standard functions (those that rely on OS support).  what
>would stop you from writing a kernel in an equivalent subset of CL?

That's what I've been talking about.  `Subset' is the key here.

mkb.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <jegce.135830$dP1.479352@newsc.telia.net>
Hartmann Schaffer wrote:
> if you look at the ANSI C standard, you will notice that the "standard 
> library" is also part of the standard, so is no different from ANSI CL 
> except for the extra ink used in stating that those parts of the 
> standard constitute the standard library

For some reason, that little difference means a lot to me.
From: Lars Brinkhoff
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <85mzri3uev.fsf@junk.nocrew.org>
Sunnan <······@handgranat.org> writes:
> Hartmann Schaffer wrote:
> > if you look at the ANSI C standard, you will notice that the
> > "standard library" is also part of the standard, so is no different
> > from ANSI CL except for the extra ink used in stating that those
> > parts of the standard constitute the standard library
> For some reason, that little difference means a lot to me.

Note that there is a tighter integration between the language and the
standard library than many people (not necessarily anyone participating
in this discussion) think.  From the viewpoint of a compiler, e.g. the
+ operator doesn't enjoy a more elevated status than e.g. sprintf.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <s7pce.135862$dP1.479568@newsc.telia.net>
Lars Brinkhoff wrote:
> Note that there is a tighter integration between the language and the
> standard library than many people (not necessarily anyone participating
> in this discussion) think.  From the viewpoint of a compiler, e.g. the
> + operator doesn't enjoy a more elevated status than e.g. sprintf.

That's true in the case of C, but doesn't have to be that way in all 
languages. (You more or less ought to have an addition primitive, though 
- church numerals can be slow.)
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <abgce.135829$dP1.479416@newsc.telia.net>
Matthias Buelow wrote:
> Common Lisp, the lean, clean, consistently designed
> language.  As everyone knows.  And freedom is slavery, war is peace.

Huh? You might well argue that CL has got some kinks.
And slavery isn't freedom, and war isn't peace.
So I disagree with all of your statements. They kind of sound like 
something that would come out of the "Ministry of Truth". There's also 
"Ignorance is strength".
From: jayessay
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m3acnheetr.fsf@rigel.goldenthreadtech.com>
Matthias Buelow <···@incubus.de> writes:

> jayessay <······@foo.com> writes:
> 
> >Language complexity comes not from many features, but from an
> >explosion of weird often ill defined set of interactions among the
> >features that are available.  See C++ for the prototypical example.
> 
> Yes, exactly.
> 
> >Common Lisp is pretty much the antithesis of this.  Having a boatload
> 
> Yes, of course.  Common Lisp, the lean, clean, consistently designed
> language.  As everyone knows.  And freedom is slavery, war is peace.

Ah, yes.  Nothing like putting words in someone's mouth.  Demagoguery
reigns supreme!

/Jon

-- 
'j' - a n t h o n y at romeo/charley/november com
From: Frode Vatvedt Fjeld
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <2hsm1d61y6.fsf@vserver.cs.uit.no>
> Frode Vatvedt Fjeld <······@cs.uit.no> writes:

>>chances of the resulting system actually working reliably. I'm really
>>puzzled why many people seem to think that removing such things from a
>>programming language makes it more suitable for solving the sometimes
>>quite complicated problems that device-drivers must do (and they must
>>do it in concert with the rest of the system).

Matthias Buelow <···@incubus.de> writes:

> Because complexity is the enemy of correctness.

But this is precisely the reason why you want the programming features
I listed! "Complexity" is not the distance in abstraction from the
programmer to the machine level, or else all the most reliable
software whould be written in machine code. Complexity is a soft
measure of how well the program text corresponds to programmers
expectations and understanding of what the program should do, divided
by the effort the programmer has to spend in the process.

If you read the source of e.g. some linux device-driver, you'll
probably see code that has to observe probably tens of implicit
protocols ("above protocols" implied by the callers, such as
data-structure locking, scheduling, user-space vs. kernel pointers,
etc, and "below protocols" such as driving the hardware device,
serialization of requests, etc) that has no principled manifestation
in the program text, for the benefit of the programmer, compiler, or
run-time system. The result is a molasses of "remember to free this
lock here if that bit is zero in case whathaveyou situation occured in
some subroutine a while back". This is the complexity that is the
enemy of correctness, and which is what you need a strong programming
language and run-time to deal with.

> Ah well, we'll see how it'll work out with you.  Perhaps you're
> right and it isn't that bad.  I'm quite convinced that you open a
> whole container ship full of headache problems when you use a
> baroque language for the system that does too many things "behind
> the scenes".

There is no reason that I can see that there are any problems that
should crop up in e.g. device-driver programming that shouldn't have
cropped up in any other use of this baroque programming language. And
I don't know what those problems would be.

-- 
Frode Vatvedt Fjeld
From: Christian Lynbech
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87is271npx.fsf@chateau.defun.dk>
>>>>> "Frode" == Frode Vatvedt Fjeld <······@cs.uit.no> writes:

>> Because complexity is the enemy of correctness.

Frode> But this is precisely the reason why you want the programming features
Frode> I listed! "Complexity" is not the distance in abstraction from the
Frode> programmer to the machine level, or else all the most reliable
Frode> software whould be written in machine code. Complexity is a soft
Frode> measure of how well the program text corresponds to programmers
Frode> expectations and understanding of what the program should do, divided
Frode> by the effort the programmer has to spend in the process.

Hear, hear.

It has too long been assumed that complex problems by magic becomes
less complex if attacked with simpler tools. But a problem is like a
pile of dirt, complex problems like a BIG pile of dirt, and the size
of this does not depend on whether you try to move it with a shovel or
a bulldozer, allthough the shovel is undeniably simpler to understand
and operate.

This kind of thinking really flourished during the IT bubble, becase
the dominant concern was not the complexity of the programs but rather
to staff the projects, in which case dumbing down the toolset makes
perfect sense. However, the rising complexity of software constructing
has won over the economical mechanics of the IT bubble.


------------------------+-----------------------------------------------------
Christian Lynbech       | christian ··@ defun #\. dk
------------------------+-----------------------------------------------------
Hit the philistines three times over the head with the Elisp reference manual.
                                        - ·······@hal.com (Michael A. Petonic)
 
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3dd1pmF6ss3ogU1@individual.net>
Christian Lynbech wrote:
> It has too long been assumed that complex problems by magic becomes
> less complex if attacked with simpler tools. But a problem is like a
> pile of dirt, complex problems like a BIG pile of dirt, and the size
> of this does not depend on whether you try to move it with a shovel or
> a bulldozer, allthough the shovel is undeniably simpler to understand
> and operate.

The bulldozer might have a learning curve, but it shovels the dirt 
away more quickly.  Likewise simpler tools (Lisp instead of 
Assembly or C) gets stuff done faster.  Don't you think so?

> This kind of thinking really flourished during the IT bubble, becase
> the dominant concern was not the complexity of the programs but rather
> to staff the projects, in which case dumbing down the toolset makes
> perfect sense. However, the rising complexity of software constructing
> has won over the economical mechanics of the IT bubble.

If you remove all power from the tools, obviously they don't help 
anymore.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3dc9p5F6s55imU1@news.dfncis.de>
Christian Lynbech wrote:

> It has too long been assumed that complex problems by magic becomes
> less complex if attacked with simpler tools. But a problem is like a
> pile of dirt, complex problems like a BIG pile of dirt, and the size
> of this does not depend on whether you try to move it with a shovel or
> a bulldozer, allthough the shovel is undeniably simpler to understand
> and operate.

Well.  If your problem is moving a pile of dirt, then surely your
reasoning works.

mkb.
From: Thomas Gagne
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <K8idnb65jKlcyfzfRVn-1Q@wideopenwest.com>
Pascal Bourguignon wrote:
<snip>
>>
>>You don't know enough C programmers.  I remember programming a LOT of
>>C in the 80s and early 90s but can't remember memory allocation ever
>>being a problem.  I was quite surprised, actually, to hear everyone
>>else thought it was.
> 
> 
> Memory allocation is no problem.  The problem is memory _deallocation_.
> 
I remain surprised.  Perhaps it's easier to handle inside transaction 
processing than it is in other applications.  Anything allocated during 
the transactions is easily added to a list of things to be deallocated 
at the end of the transaction.
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <bpft5119l9uqjo15r83im0r30emlldugj4@4ax.com>
On Thu, 14 Apr 2005 11:31:02 -0500, Matthias Blume
<····@my.address.elsewhere> wrote:


>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
>> which aren't serious.  What other abominations are out there?
>
>I once heard of languages called "C" and "C++", if that rings a bell...

C is NOT an abomination. It's a good low-level langauge.
From: Joe Marshall
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <mzs19n0n.fsf@ccs.neu.edu>
Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:

> On Thu, 14 Apr 2005 11:31:02 -0500, Matthias Blume
> <····@my.address.elsewhere> wrote:
>
>
>>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
>>> which aren't serious.  What other abominations are out there?
>>
>>I once heard of languages called "C" and "C++", if that rings a bell...
>
> C is NOT an abomination. It's a good low-level langauge.

Brain-dead macros.
No tail recursion.
No closures.
Completely broken type system.
Pointless distinction between `statements' and `expressions'.
Bizarre syntax.
Vague semantics.

What is it good for?
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7v9oF6ngrk4U2@individual.net>
Joe Marshall wrote:
>>>>Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
>>>>which aren't serious.  What other abominations are out there?
>>>
>>>I once heard of languages called "C" and "C++", if that rings a bell...
>>
>>C is NOT an abomination. It's a good low-level langauge.
> 
> 
> Brain-dead macros.
> No tail recursion.
> No closures.
> Completely broken type system.
> Pointless distinction between `statements' and `expressions'.
> Bizarre syntax.
> Vague semantics.
> 
> What is it good for?

Despite all these I prefer it to Java by a good margin.


-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87k6n4k1rz.fsf@kafka.homenet>
Ulrich Hobelmann <···········@web.de> writes:

> Despite all these I prefer it to Java by a good margin.


http://lambda-the-ultimate.org/node/view/627#comment-5392
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <dcht5192o61oiuq0ougm2jtucj78cuq0mv@4ax.com>
On Thu, 14 Apr 2005 15:27:52 -0400, Joe Marshall <···@ccs.neu.edu>
wrote:


>> C is NOT an abomination. It's a good low-level langauge.
>
>Brain-dead macros.

I think this is unavoidable without a Lisp-like syntax. 

>No tail recursion.
>No closures.
>Completely broken type system.
>Pointless distinction between `statements' and `expressions'.
>Bizarre syntax.
>Vague semantics.
>
>What is it good for?

Keeping you away from asm. ;-) It's a good language for recoding
bottlenecks. 

Actually, I would have included 'lack of gc' at the top of the list,
but it's not a highlevel langauge, and never pretended to be one. I
think this is like bashing a hammer for not being able to cut wood.
It's just a different tool (that has been misused, but that's another
story).
From: Raymond Toy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <sxdaco16obd.fsf@rtp.ericsson.se>
>>>>> "Fernando" == Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:

    Fernando> On Thu, 14 Apr 2005 15:27:52 -0400, Joe Marshall <···@ccs.neu.edu>
    Fernando> wrote:


    >>> C is NOT an abomination. It's a good low-level langauge.
    >> 
    >> Brain-dead macros.

    Fernando> I think this is unavoidable without a Lisp-like syntax. 

    >> No tail recursion.
    >> No closures.
    >> Completely broken type system.
    >> Pointless distinction between `statements' and `expressions'.
    >> Bizarre syntax.
    >> Vague semantics.
    >> 
    >> What is it good for?

    Fernando> Keeping you away from asm. ;-) It's a good language for recoding
    Fernando> bottlenecks. 

No it's not.  I still have to code in assembly for my bottlenecks
sometimes.

Ray
From: Thomas F. Burdick
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <xcv1x9cbhbo.fsf@conquest.OCF.Berkeley.EDU>
Raymond Toy <···········@ericsson.com> writes:

> >>>>> "Fernando" == Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:
> 
>     Fernando> On Thu, 14 Apr 2005 15:27:52 -0400, Joe Marshall <···@ccs.neu.edu>
>     Fernando> wrote:
> 
> 
>     >>> C is NOT an abomination. It's a good low-level langauge.
>     >> 
>     >> Brain-dead macros.
> 
>     Fernando> I think this is unavoidable without a Lisp-like syntax. 
> 
>     >> No tail recursion.
>     >> No closures.
>     >> Completely broken type system.
>     >> Pointless distinction between `statements' and `expressions'.
>     >> Bizarre syntax.
>     >> Vague semantics.
>     >> 
>     >> What is it good for?
> 
>     Fernando> Keeping you away from asm. ;-) It's a good language for recoding
>     Fernando> bottlenecks. 
> 
> No it's not.  I still have to code in assembly for my bottlenecks
> sometimes.

Me too.  In fact, I'd replace the "sometimes" with a "usually", since
I work with a good native CL compiler.  As for "keeping you away from
asm", why is that a good thing?  I don't find x86 assembly
particularly worse than C, but I do find C much worse than SPARC and
PPC assembly.
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87fyxqcnqu.fsf@kafka.homenet>
Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:

> I think this is unavoidable without a Lisp-like syntax. 

Dylan is a counter-example.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86y8bl9iml.fsf@drjekyll.mkbuelow.net>
Joe Marshall <···@ccs.neu.edu> writes:

> > C is NOT an abomination. It's a good low-level langauge.
> What is it good for?

Portable assembler.

mkb.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m18y3l2gmd.fsf@tti5.uchicago.edu>
Matthias Buelow <···@incubus.de> writes:

> Joe Marshall <···@ccs.neu.edu> writes:
>
>> > C is NOT an abomination. It's a good low-level langauge.
>> What is it good for?
>
> Portable assembler.

Actually, it is not even really that good for that.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c860bF6gv79rU2@individual.net>
Matthias Blume wrote:
>>>>C is NOT an abomination. It's a good low-level langauge.
>>>
>>>What is it good for?
>>
>>Portable assembler.
> 
> 
> Actually, it is not even really that good for that.

Exactly.  If it were a decent portable assembler I never would 
have learnt assembly language.  My plans are to build my own 
simple backend eventually, so I can have *efficient* code with 
non-wasteful calling conventions.  In effect, a C replacement. 
The only good thing about C is that it's reasonably low-level and 
runs *everywhere*.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1zmw111na.fsf@tti5.uchicago.edu>
Ulrich Hobelmann <···········@web.de> writes:

> Matthias Blume wrote:
>>>>>C is NOT an abomination. It's a good low-level langauge.
>>>>
>>>>What is it good for?
>>>
>>>Portable assembler.
>> Actually, it is not even really that good for that.
>
> Exactly.  If it were a decent portable assembler I never would have
> learnt assembly language.  My plans are to build my own simple backend
> eventually, so I can have *efficient* code with non-wasteful calling
> conventions.  In effect, a C replacement. The only good thing about C
> is that it's reasonably low-level and runs *everywhere*.

I guess what you are looking for is C--.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c86jnF6ar9q6U1@individual.net>
Matthias Blume wrote:
>>Exactly.  If it were a decent portable assembler I never would have
>>learnt assembly language.  My plans are to build my own simple backend
>>eventually, so I can have *efficient* code with non-wasteful calling
>>conventions.  In effect, a C replacement. The only good thing about C
>>is that it's reasonably low-level and runs *everywhere*.
> 
> 
> I guess what you are looking for is C--.
> 

Last I looked it didn't seem very alive.  Now actually the website 
dates Nov 2004 :)

Still, for portability I'm thinking of just building a simple VM 
instead.  Speed was never my problem.  Coding convenience is.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <gtot51p8rpu5b45oh0tmiajnqgdfu1qrrj@4ax.com>
On Thu, 14 Apr 2005 16:27:54 -0500, Matthias Blume
<····@my.address.elsewhere> wrote:

>Matthias Buelow <···@incubus.de> writes:
>
>> Joe Marshall <···@ccs.neu.edu> writes:
>>
>>> > C is NOT an abomination. It's a good low-level langauge.
>>> What is it good for?
>>
>> Portable assembler.
>
>Actually, it is not even really that good for that.

As someone said: 'Aging is not that bad if you consider the
alternatives'. 

What are the alternatives to C as a portable asm?

PS It's not a rhetoric question, I'm interested.
From: André Thieme
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3mot7$ir$2@ulric.tng.de>
Fernando Rodriguez schrieb:

> As someone said: 'Aging is not that bad if you consider the
> alternatives'. 

Okay, it is way offtopic, but about what alternatives are you talking 
about? Not aging? Well, that sounds like a *great* alternative and I 
hope science will allow us this alternative in 2-3 decades.


Andr�
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u8y3lc8ic.fsf@STRIPCAPStelus.net>
Andr� Thieme <······························@justmail.de> writes:
> Fernando Rodriguez schrieb:
> 
> > As someone said: 'Aging is not that bad if you consider the
> > alternatives'.
> 
> Okay, it is way offtopic, but about what alternatives are you talking about?
> Not aging? Well, that sounds like a *great* alternative and I hope science
> will allow us this alternative in 2-3 decades.

Time for my favourite birthday joke.

 Damn! I'm turning 40.

 Oh, so what would you rather be? Not turning 40? But that means you're dead.
 Ah. You mean you want to be 40 with a 25 year old's body.

Me, I would like to get as old as possible. The plan is not to stop.

Now being old and *healthy* -- that's the trick.

Not aging means that time as stopped. I seem to recall a scifi story somewhere
where one wanted to stay 25 or so, so they literally repeated that exact year
again and again forever.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: André Thieme
Subject: OT (was: Re: Guy Steele interview in DDJ)
Date: 
Message-ID: <d3mrh2$31s$1@ulric.tng.de>
Ray Blaak schrieb:
> Andr� Thieme <······························@justmail.de> writes:
> 
>>Fernando Rodriguez schrieb:
>>
>>
>>>As someone said: 'Aging is not that bad if you consider the
>>>alternatives'.
>>
>>Okay, it is way offtopic, but about what alternatives are you talking about?
>>Not aging? Well, that sounds like a *great* alternative and I hope science
>>will allow us this alternative in 2-3 decades.
> 
> 
> Me, I would like to get as old as possible. The plan is not to stop.
> 
> Now being old and *healthy* -- that's the trick.

Yes exactly, I agree!

> 
> Not aging means that time as stopped. I seem to recall a scifi story somewhere
> where one wanted to stay 25 or so, so they literally repeated that exact year
> again and again forever.

When I said "not aging" I meant staying in a body that is around 25 
years old. We would rejuvenation therapies for that.

http://news.bbc.co.uk/1/hi/uk/4003063.stm


Andr�
--
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <vlqt51dslfnkhce6iq8uevhegsh94ouhtn@4ax.com>
On Fri, 15 Apr 2005 00:01:30 +0200, Andr� Thieme
<······························@justmail.de> wrote:

>Fernando Rodriguez schrieb:
>
>> As someone said: 'Aging is not that bad if you consider the
>> alternatives'. 
>
>Okay, it is way offtopic, but about what alternatives are you talking 
>about? 

Besides dying? ;-)
From: Stefan Nobis
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87aco0qvmk.fsf@snobis.de>
Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:

> What are the alternatives to C as a portable asm?

What about Ada?

-- 
Stefan.
From: Karel Miklav
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3o2te02t7@enews3.newsguy.com>
Stefan Nobis wrote:
> Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:
>> What are the alternatives to C as a portable asm?
> What about Ada?

This isn't funny so it's probably not a joke? There are only a couple of
Ada compiles for certain platforms and it's a huge language that's hard
to port so I don't see how either Ada compilers or programms could be
portable.

Have fun.
From: Ray Blaak
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <u4qe89ept.fsf@STRIPCAPStelus.net>
Karel Miklav <·····@inetis.spppambait.com> writes:
> Stefan Nobis wrote:
> > Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:
> >> What are the alternatives to C as a portable asm?
> > What about Ada?
> 
> This isn't funny so it's probably not a joke? There are only a couple of
> Ada compiles for certain platforms and it's a huge language that's hard
> to port so I don't see how either Ada compilers or programms could be
> portable.

GNAT is the Gnu Ada system, and should work wherever gcc does.

Its no larger than C++, and is regularity makes it actually simpler to
understand.

While I used to be an Ada freak, I now prefer Java over Ada, mainly because of
garbage collection and Java's obj.method(arg) syntax for OO stuff as opposed
to Ada's method(obj, arg) style.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
········@STRIPCAPStelus.net                    The Rhythm has my soul.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uaco00xc0.fsf@news.dtpq.com>
Ray Blaak <········@STRIPCAPStelus.net> writes:

> Karel Miklav <·····@inetis.spppambait.com> writes:
> > Stefan Nobis wrote:
> > > Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:
> > >> What are the alternatives to C as a portable asm?
> > > What about Ada?
> > 
> > This isn't funny so it's probably not a joke? There are only a couple of
> > Ada compiles for certain platforms and it's a huge language that's hard
> > to port so I don't see how either Ada compilers or programms could be
> > portable.
> 
> GNAT is the Gnu Ada system, and should work wherever gcc does.
> 
> Its no larger than C++, and is regularity makes it actually simpler to understand.

I don't know much about ADA, but just to give another example of the
language being portable to various architectures: ADA was also one of
the primary and most well-supported languages on the Symbolics ("Lisp") machine.  
(And ADA programmers loved having that development environment!)
This was around 1986, if I recall correctly.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86hdi7rkjm.fsf@drjekyll.mkbuelow.net>
······@news.dtpq.com (Christopher C. Stacy) writes:

> I don't know much about ADA, but just to give another example of the
> language being portable to various architectures: ADA was also one of
> the primary and most well-supported languages on the Symbolics ("Lisp") machine.  
> (And ADA programmers loved having that development environment!)
> This was around 1986, if I recall correctly.

That was most likely not because of some likeness in mind between Ada
and Lisp developers but because the lisp machine vendors, overpriced
as they were, peddled to the US government, who were pushing Ada at
that time.

mkb.
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <umzrzzwwo.fsf@news.dtpq.com>
Matthias Buelow <···@incubus.de> writes:

> ······@news.dtpq.com (Christopher C. Stacy) writes:
> 
> > I don't know much about ADA, but just to give another example of the
> > language being portable to various architectures: ADA was also one of
> > the primary and most well-supported languages on the Symbolics ("Lisp") machine.  
> > (And ADA programmers loved having that development environment!)
> > This was around 1986, if I recall correctly.
>
> That was most likely not because of some likeness in mind between
> Ada and Lisp developers but because the lisp machine vendors,
> overpriced as they were, peddled to the US government, who were
> pushing Ada at that time.

Ada programmers don't like advanced development environments, 
where the editor syntax checks your code as you type it, you can
incrementally compile your program, where errors are trapped at
runtime, you can interrupt the program at any point to investigate,
and its state and continue, and so on?  Cuz from the user feedback
that we got, they sure as shit loved that stuff!
From: Kristof Bastiaensen
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.21.33.52.23082@vleeuwen.org>
On Thu, 14 Apr 2005 15:27:52 -0400, Joe Marshall wrote:

> Fernando Rodriguez <···@THOU_SHALL_NOT_SPAMeasyjob.net> writes:
> 
>> On Thu, 14 Apr 2005 11:31:02 -0500, Matthias Blume
>> <····@my.address.elsewhere> wrote:
>>
>>
>>>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and Unlambda,
>>>> which aren't serious.  What other abominations are out there?
>>>
>>>I once heard of languages called "C" and "C++", if that rings a bell...
>>
>> C is NOT an abomination. It's a good low-level langauge.
> 
> Brain-dead macros.
> No tail recursion.
> No closures.
> Completely broken type system.
> Pointless distinction between `statements' and `expressions'.
> Bizarre syntax.
> Vague semantics.

You forgot the worst design decision ever:
null-terminated strings.  They are inefficient, insecure,
hard to program with, there is no reason at all any language should
have them (even a low level one).

> 
> What is it good for?
From: Thomas Gagne
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <HfmdnSoEwpbpscLfRVn-pg@wideopenwest.com>
Kristof Bastiaensen wrote:
> On Thu, 14 Apr 2005 15:27:52 -0400, Joe Marshall wrote:

> 
> You forgot the worst design decision ever:
> null-terminated strings.  They are inefficient, insecure,
> hard to program with, there is no reason at all any language should
> have them (even a low level one).
> 
You don't have to use them.  You can specify the length of 
variable-length character arrays.  Besides, null-terminated strings are 
supported in some instruction sets and used inside BIOS.  It doesn't get 
too lower-level than that.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86oech9hdz.fsf@drjekyll.mkbuelow.net>
Kristof Bastiaensen <·······@vleeuwen.org> writes:

> You forgot the worst design decision ever:
> null-terminated strings.  They are inefficient, insecure,
> hard to program with, there is no reason at all any language should
> have them (even a low level one).

Well, C does not have strings.  I agree that it would have been nice
if C actually had strings.

mkb.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m14qe92ghp.fsf@tti5.uchicago.edu>
Matthias Buelow <···@incubus.de> writes:

> Kristof Bastiaensen <·······@vleeuwen.org> writes:
>
>> You forgot the worst design decision ever:
>> null-terminated strings.  They are inefficient, insecure,
>> hard to program with, there is no reason at all any language should
>> have them (even a low level one).
>
> Well, C does not have strings.  I agree that it would have been nice
> if C actually had strings.

C has string literals, which translate to 0-terminated arrays of char.
That's what Kristof was talking about.
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <86k6n59gea.fsf@drjekyll.mkbuelow.net>
I wrote:

> Well, C does not have strings.  I agree that it would have been nice
> if C actually had strings.

OTOH, I'm not so sure about that anymore.  Given the environment early
C was used in (slow, low-memory systems such as the PDP-11 and early
68K and 8086 machines), it was probably easier to deal with arrays
(i.e., blocks) of characters.  Just read in a block from some file
with low-level i/o, put a '\0' at the end, and that was it.  With a
string datatype, how would one go about?  Let the OS write data into a
character array first, then convert it to a string (possibly invoking
copying, a performance and space killer)?  Or not make strings an
opaque datatype but expose their implementation, i.e. for example, "a
string is an int followed by a sequence of chars"?  Then how large is
the int?  2 bytes, as on 16-bit machines, 32, or something in between?
What about small-/middle-/large endian issues?  The string would have
to be converted when serialized (written to disk or network).  How
would one assign or define such a string?  Would it create two
variables, one for the length, the other for the character array
itself?  Just so that one still has the array adress for the OS to
write into?  A _lot_ of problems pop up if you assume a Unix-style (or
DOS) environment on 30 years old small, underpowered machines.
Zero-terminated character arrays can still be used with UTF-8 in 2005.
What about an opaque string datatype that has been designed in 1970?
Would it still be usable?  The key to C's survival lies in its
simplicity and its usefulness for low level programming, it does not
limit the programmer, foreclose design decisions, or assume opaqueness
in datatypes that would hinder low level jobs.  It is intended for
distinctly different purposes than higher level languages.  It's not
C's fault that people write large applications in it.  Of course the
syntax and semantics could be better but even C's inventors
acknowledge that.

mkb.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <LkN8e.22152$d5.162778@newsb.telia.net>
Joe Marshall wrote:
> Brain-dead macros.

C doesn't have macros. Most people use cpp for simple, brain-dead macros 
but other preprocessors are imaginable, some slightly less brain-dead.

> No tail recursion.

But tail recursive langagues can be compiled to (less than readable) C, 
which is one use for a low-level language.

Agree about the other stuff, especially the bizarre syntax.
From: Steven Shaw
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <42652516_1@news.iprimus.com.au>
Joe Marshall wrote:
> Brain-dead macros.
> No tail recursion.
> No closures.
> Completely broken type system.
> Pointless distinction between `statements' and `expressions'.
> Bizarre syntax.
> Vague semantics.
> 
> What is it good for?

Systems programming. Definitely *not* applications programming. I don't 
think that's in question these days.

If you include closures into C, don't you need GC (at least in the 
general case)? This is problematic for a systems programming language 
AFAIK. At least in some code you need to be sure that there is no 
allocation and therefore chance to block/suspend because of an out of 
memory condition. For instance, there is a limited set of kernel 
functions callable in Linux for interrupt context (as I recall, I'm no 
expert) to avoid such things as allocation.

I'm not unaware of Lisp operating systems, I just don't know exactly how 
they solved these problems. I seem to recall that you could program 
microcode on a Lisp machine. That's non-portable machine code. If you 
wrote that in C - it'd be portable :). Perhaps there are ways to solved 
these problems on common/x86 hardware? Movitz?

Seems that a language like C is also useful for small embedded systems 
with limitations that make implementation of higher level language 
difficult. Like PIC. Although I did see a Smalltalk on PIC on day but I 
think it was not real Smalltalk and avoided GC.

Regards,
Steve.
From: Joe Marshall
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <wtqyy10c.fsf@ccs.neu.edu>
Steven Shaw <···········@iprimus.com.au> writes:

> Joe Marshall wrote:
>> Brain-dead macros.
>> No tail recursion.
>> No closures.
>> Completely broken type system.
>> Pointless distinction between `statements' and `expressions'.
>> Bizarre syntax.
>> Vague semantics.
>> What is it good for?
>
> Systems programming. Definitely *not* applications programming. I
> don't think that's in question these days.
>
> If you include closures into C, don't you need GC (at least in the
> general case)? This is problematic for a systems programming language
> AFAIK. At least in some code you need to be sure that there is no
> allocation and therefore chance to block/suspend because of an out of
> memory condition. For instance, there is a limited set of kernel
> functions callable in Linux for interrupt context (as I recall, I'm no
> expert) to avoid such things as allocation.

By pre-allocating sufficient storage, you can ensure that the GC won't
be triggered at embarrassing moments.
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87u0m8k8dh.fsf@kafka.homenet>
Matthias Blume <····@my.address.elsewhere> writes:

> Almost every language I know has at least one aspect that is at least
> as brain-dead if not more so than it is in Java.

I am curious about that statement.
Care to list candidates for brain-deadness in Scheme, SML and Haskell ?

Just asking because of curiosity, not challenging or doubting you

 I would have nominated monads for haskell, but I am reliably
informed that they replaced an even worse previous IO system.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m2y8bklmgn.fsf@hanabi.local>
israel <······@bigpond.net.au> writes:

> Matthias Blume <····@my.address.elsewhere> writes:
>
>> Almost every language I know has at least one aspect that is at least
>> as brain-dead if not more so than it is in Java.
>
> I am curious about that statement.
> Care to list candidates for brain-deadness in Scheme, SML and Haskell ?

Scheme:  see the many flamewars I have been involved in
SML:     see Appel's critique
Haskell: well, not sure here; it's probably closest to "perfect" for
         some definition of "perfect";  but it is probably completely
         unsuitable for the "average" programmer, as sad as that may be.

> Just asking because of curiosity, not challenging or doubting you
>
>  I would have nominated monads for haskell, but I am reliably
> informed that they replaced an even worse previous IO system.

IMO, the worst part about monads is that they are called "monads",
which always draws puzzled looks -- which don't get any less puzzled
when the explanation "it's something from category theory" is put
forward.

But this is not a problem with the language but mainly a problem with
how it is presented.  Monads aren't scary at all -- every "average"
programmer uses a (very restricted version of Haskell's IO) monad on a
daily basis.  They call it "imperative programming", and it isn't
scary at all (to them).
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c90qhF6ldefbU1@individual.net>
Matthias Blume wrote:
> But this is not a problem with the language but mainly a problem with
> how it is presented.  Monads aren't scary at all -- every "average"
> programmer uses a (very restricted version of Haskell's IO) monad on a
> daily basis.  They call it "imperative programming", and it isn't
> scary at all (to them).

Not really.  In imperative programming every function has some 
kind of IO type (if I understand Haskell correctly there).  The 
problem is that in Haskell you don't want everything to be IO.  As 
soon as you need a side effect in one place, all functions 
dependent on it also have to get an IO type, just like in Java all 
functions have to throw an Exception if you add one to the code.

This can get really inconvenient for code that changes a lot. 
OTOH I never understood Haskell monads enough to write programs 
with it; I pretty much dumped it for SML ;)

So maybe in "real" programming monads aren't an issue at all, once 
you understand them.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: mbstevens
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3rH7e.6697$An2.4517@newsread2.news.pas.earthlink.net>
> IMO, the worst part about monads is that they are called
> "monads", which always draws puzzled looks -- which
> don't get any less puzzled when the explanation "it's
> something from category theory" is put forward.

...which term may be, in turn, based on Leibniz'
"Monadology" and "Discourse on Metaphysics".  Most of us
remember Leibniz as the independent inventor of calculus, 
but he also had some bizarre metaphysical ideas.  The
monads were simple and unextended elements that had no
direct contact with each other, but seemed to have
because they were synchronized in his clockwork universe.   
It was also Leibniz' metaphysical views that Voltare
lambasted in his novel "Candide," in the person of the
character Dr. Pangloss, who kept reminding the
unfortunate Candide that she lived in the best of all
*possible* worlds.
-- 
mbstevens    http://www.mbstevens.com
From: Matthew D Swank
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.15.14.21.22.144894@c.net>
On Thu, 14 Apr 2005 22:59:04 -0500, Matthias Blume wrote:

> israel <······@bigpond.net.au> writes:
> 
>> Matthias Blume <····@my.address.elsewhere> writes:
>>
>>> Almost every language I know has at least one aspect that is at least
>>> as brain-dead if not more so than it is in Java.
>>
>> I am curious about that statement.
>> Care to list candidates for brain-deadness in Scheme, SML and Haskell ?

> Haskell: well, not sure here; it's probably closest to "perfect" for
>          some definition of "perfect";  but it is probably completely
>          unsuitable for the "average" programmer, as sad as that may be.
> 

Except it's being used in an implementation of the _full_ perl6 
language spec: http://pugscode.org/.  Autrijus has made a huge 
amount of progress in just two months.

It is my understanding that he was a novice in Haskell until he 
started pugs (though an accomplished perl programmer).

Exposing Haskell to the perl community in such a significant
way will change "unsuitable for the 'average' programmer" viewpoint 
to a certain extent.

Matt


-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <J9Q8e.134895$dP1.473546@newsc.telia.net>
Matthias Blume wrote:
> Scheme:  see the many flamewars I have been involved in

Many of these have been about Scheme compared to ML variants, and/or 
otherwise not directly relevant to Java.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1is2jsxqm.fsf@tti5.uchicago.edu>
Sunnan <······@handgranat.org> writes:

> Matthias Blume wrote:
>> Scheme:  see the many flamewars I have been involved in
>
> Many of these have been about Scheme compared to ML variants,

This is false.

> and/or otherwise not directly relevant to Java.

That is probably true.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <kyU8e.134933$dP1.473774@newsc.telia.net>
Matthias Blume wrote:
> Sunnan <······@handgranat.org> writes:
> 
> 
>>Matthias Blume wrote:
>>
>>>Scheme:  see the many flamewars I have been involved in
>>
>>Many of these have been about Scheme compared to ML variants,
> 
> 
> This is false.

At least one. Or am I misinterpreting what you refer to as a flamewar?

>>and/or otherwise not directly relevant to Java.
> 
> 
> That is probably true.
> 

Which makes the and/or composition true.

But I'm not trying to dis you, I'm just pointing out that I'm still 
curious about to what extent Java is better than Scheme.

Followup set.
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1d5srssdt.fsf@tti5.uchicago.edu>
Sunnan <······@handgranat.org> writes:

> Matthias Blume wrote:
>> Sunnan <······@handgranat.org> writes:
>> 
>>>Matthias Blume wrote:
>>>
>>>>Scheme:  see the many flamewars I have been involved in
>>>
>>>Many of these have been about Scheme compared to ML variants,
>> This is false.
>
> At least one. Or am I misinterpreting what you refer to as a flamewar?

My point is that I never criticize languages in comparison to other
languages, even if some might see what I say that way.

> But I'm not trying to dis you, I'm just pointing out that I'm still
> curious about to what extent Java is better than Scheme.

Here is one: Java is a complete language (plus libraries) which (as
defined) lets you do real work.  There are Scheme /implementations/
that let you do the same, but they significantly go beyond what's
mandated by the language report.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uJV8e.134941$dP1.473643@newsc.telia.net>
Matthias Blume wrote:
> Here is one: Java is a complete language (plus libraries) which (as
> defined) lets you do real work.

I thought the Java specification was non-free (or at least Swing was). 
I've lost touch with the Java world since the early '00s.

 > There are Scheme /implementations/
> that let you do the same, but they significantly go beyond what's
> mandated by the language report.

I usually count the final srfi:s. I think they're a great way to grow a 
language. I find it extra cool that many of them can be implemented 
using what's already in R5RS.

Not to knock those free implementations that do go beyond the srfi:s, 
too - most do.

I just spent the last five weeks doing a real project (my first finished 
real project! Yay!), doing real work with R5RS + srfi:s - and the srfi:s 
I  used were srfi-1, srfi-13 and srfi-42, all of which are implementable 
using just R5RS, and none of which were *really* needed for my project, 
they were just convenience.
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7kj6F6mqnbbU1@individual.net>
Ulrich Hobelmann wrote:

[about Guy Steele's involvement in Java]

> I don't mean that personally, or as an attack.  It just seems that 
> whatever he knows and did isn't reflected in Java, at all.  But in 
> another post someone mentioned that he probably only arrived at Sun, 
> when it was too late.  Oak had been created.  (I believe Gosling is to 
> "blame")

 From what can be reconstructed from public statements by both Steele 
and Gosling, the following happened:

- Sun was itself surprised by Java's very early success. [1] In order to 
take advantage of its momentum, they started to rush things.

- Guy Steele was involved in writing down the specification of the Java 
language because he has a track record of writing excellent 
specifications. He has stated that he tried to fix as many important 
conceptual problems as possible in a short amount of time. In other 
words, things could have been worse.

- It's especially interesting to read the Oak specification at 
http://today.java.net/jag/old/green/ (Oak was the original name for 
Java). There are lots of comments in that spec about things that need to 
be changed but that were not changed in Java, and are like that still.

- Most of the things that are kept as is are kept because of 
compatibility (whatever that means in the Java world ;).

- One interesting tidbit by Guy Steele is that he stated that they had a 
full working implementation of inner classes that close not only over 
the final variables of the surrounding environment, but over any 
variables. This was voted down due to "efficiency" issues - variable 
bindings had to be allocated on the heap instead of the stack. Closing 
over final variables doesn't impose an implicit heap allocation. (Don't 
make fun of this! Such compromises always happen when more than one 
person is involved in specifying a language. The really bad thing about 
Java is that there is no easy way to fix such deficiencies at the user 
level.)




Pascal



[1] BTW, it was only then that they poured a lot of money into Java. 
Java's success has to be measured against the fact that it seemed like 
C++ had won and Smalltalk had lost. For many, Java was a compromise they 
could live with, especially because it was not a too bad language back 
then, and some of the restrictions weren't that obvious at first. Please 
also recall that Java didn't even have inner classes at first, so it 
looked like a good basis to start from.

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Matthew D Swank
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.21.29.14.730979@c.net>
On Thu, 14 Apr 2005 18:37:58 +0200, Pascal Costanza wrote:

> Ulrich Hobelmann wrote:
> 
> [about Guy Steele's involvement in Java]
> 
>> I don't mean that personally, or as an attack.  It just seems that 
>> whatever he knows and did isn't reflected in Java, at all.  But in 
>> another post someone mentioned that he probably only arrived at Sun, 
>> when it was too late.  Oak had been created.  (I believe Gosling is to 
>> "blame")
> 
>  From what can be reconstructed from public statements by both Steele 
> and Gosling, the following happened:
> 
> - Sun was itself surprised by Java's very early success. [1] In order to 
> take advantage of its momentum, they started to rush things.
> 
> - Guy Steele was involved in writing down the specification of the Java 
> language because he has a track record of writing excellent 
> specifications. He has stated that he tried to fix as many important 
> conceptual problems as possible in a short amount of time. In other 
> words, things could have been worse.
> 

There are lots of good reasons why Guy Steele Jr. is at Sun, but perhaps
it still stings a bit that such a talented person in the LISP community is
associated with such a mediocre language, especially since Java bashing is
such venerable pastime around here.

Matt

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87wtr31ojd.fsf@kafka.homenet>
Matthew D Swank <·······································@c.net> writes:

> it still stings a bit that such a talented person in the LISP community is
> associated with such a mediocre language

I guess that like everyone, he has to have money to pay the bills.

And let us face it, in the world of the average dullard, association with Java
is going to get Guy Steele more kudos than his association with Scheme and Lisp.
From: Ray Dillinger
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <k418e.14899$m31.141698@typhoon.sonic.net>
israel wrote:
> Matthew D Swank <·······································@c.net> writes:
> 
> 
>>it still stings a bit that such a talented person in the LISP community is
>>associated with such a mediocre language
> 
> 
> I guess that like everyone, he has to have money to pay the bills.
> 
> And let us face it, in the world of the average dullard, association with Java
> is going to get Guy Steele more kudos than his association with Scheme and Lisp.

Different languages, different audiences, different missions.

He took people who would reject anything other than a C'ish
syntax and control structures, and got them using Garbage
Collection and a secure VM.  That's a hell of an achievement,
actually.

Those of us who like lisps are a tiny minority of programmers,
and -- well -- we already have lisp.  There's really not much
language design left to be done for us beyond fiddling details.

What happened with Java though, is it strikes directly at the
heart of the mainstream programmer culture that has been crippled
by memory management and security bugs and resistance to linguistic
change, with a language that, even though not seeming very much
like a big change, makes memory management and reasonable security
easy.

In short, there's not much left that he can do for the Lisp
crewe. But he has undertaken, and in large part succeeded,
in doing a great service for the rest of humanity.  He wasn't
going to get all those C hackers to switch to Lisp -- it's
too alien, and most of them are too scared of it.  But Java
was a sneaky way of getting a lot of the benefits of lispy
languages into that community without scaring them all off.

It was better enough to matter, and not so different that
it got rejected.  A fine balancing act, if you ask me. Sure,
it could have been better, in an absolute sense.  But if
it were, then nobody would be using it because of the
fear and resistance to change.

And now that most of them are comfortable in Java, the barriers
to their learning lispy styles of doing things are lower....
and the odds of them adopting a Lisp eventually are considerably
higher.

				Bear
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ccuf3F6n9jmoU1@individual.net>
Ray Dillinger wrote:
> Different languages, different audiences, different missions.
> 
> He took people who would reject anything other than a C'ish
> syntax and control structures, and got them using Garbage
> Collection and a secure VM.  That's a hell of an achievement,
		  ^
		almost (AFAIK)
> actually.
> 
> Those of us who like lisps are a tiny minority of programmers,
> and -- well -- we already have lisp.  There's really not much
> language design left to be done for us beyond fiddling details.
> 
> What happened with Java though, is it strikes directly at the
> heart of the mainstream programmer culture that has been crippled
> by memory management and security bugs and resistance to linguistic
> change, with a language that, even though not seeming very much
> like a big change, makes memory management and reasonable security
> easy.

Ok

> In short, there's not much left that he can do for the Lisp
> crewe. But he has undertaken, and in large part succeeded,
> in doing a great service for the rest of humanity.  He wasn't
> going to get all those C hackers to switch to Lisp -- it's
> too alien, and most of them are too scared of it.  But Java
> was a sneaky way of getting a lot of the benefits of lispy
> languages into that community without scaring them all off.

The problem is that in the process the non-Unix community (that 
is, the bigger part of the world: Windows and portable devices) 
rejected C for Java.  For cellphones there is a standard Java 
platform (with many incompatible multimedia APIs :D), but no 
standard open C API.  I guess I have to hope for Linux phones for 
that.

Writing decent code on a VM on top of Java (instead of asm) is 
horribly inefficient and wasteful of memory.  With a C interface 
that means we could have all kinds of languages (even Lisp) on a 
phone.  With Java we only have a non-tailrecursive, weird, JVM.

That's why I actually blame Java, even if I don't have to use it 
myself.

> It was better enough to matter, and not so different that
> it got rejected.  A fine balancing act, if you ask me. Sure,
> it could have been better, in an absolute sense.  But if
> it were, then nobody would be using it because of the
> fear and resistance to change.

Again, I don't believe a better Java would be much different. 
It's the details that it gets wrong.  But I really don't want to 
argue about this anymore ;)

> And now that most of them are comfortable in Java, the barriers
> to their learning lispy styles of doing things are lower....
> and the odds of them adopting a Lisp eventually are considerably
> higher.

I wish, but I don't believe that.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: =?utf-8?b?R2lzbGUgU8ODwqZsZW5zbWk=?= =?utf-8?b?bmRl?=
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <0n8y3gbatu.fsf@kaktus.ii.uib.no>
> The problem is that in the process the non-Unix community (that is,
> the bigger part of the world: Windows and portable devices) rejected C
> for Java.  For cellphones there is a standard Java platform (with many
> incompatible multimedia APIs :D), but no standard open C API.  I guess
> I have to hope for Linux phones for that.

There is a reason for that. For the cellphones to be accepted by 
telecommunication authorities, there must be absolutly no way for the 
non-builtin software to access the hardware directly, so they can change the 
frequences or allow them to send non-conforming data on the air. That
means that they must have some sort of sandboxing in any case, and
then Java would be a convenient solution for the vendors. A Linux 
phone will not change that.

-- 
Gisle Sælensminde, Phd student, Scientific programmer
Computational biology unit, University of Bergen, Norway
Email: ·····@cbu.uib.no | Complicated is easy, simple is hard.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ci4r5F6h47lvU3@individual.net>
Gisle Sælensminde wrote:
>>The problem is that in the process the non-Unix community (that is,
>>the bigger part of the world: Windows and portable devices) rejected C
>>for Java.  For cellphones there is a standard Java platform (with many
>>incompatible multimedia APIs :D), but no standard open C API.  I guess
>>I have to hope for Linux phones for that.
> 
> 
> There is a reason for that. For the cellphones to be accepted by 
> telecommunication authorities, there must be absolutly no way for the 
> non-builtin software to access the hardware directly, so they can change the 
> frequences or allow them to send non-conforming data on the air. That
> means that they must have some sort of sandboxing in any case, and
> then Java would be a convenient solution for the vendors. A Linux 
> phone will not change that.
> 

An MMU, which is a prerequisite for Linux to run, will.

How come the programs on your Unix or Windows box can't access 
hardware directly, even if they're written in C?

C on an MMU is still MUCH faster than Java (and I think most ARMs 
and similar CPUs start having (or have?) MMUs).

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Matthias Buelow
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3ci6ufF6o51n3U1@news.dfncis.de>
Ulrich Hobelmann <···········@web.de> wrote:

>An MMU, which is a prerequisite for Linux to run, will.
>How come the programs on your Unix or Windows box can't access 
>hardware directly, even if they're written in C?

Of course they can, see iopl(2), ioperm(2).

And even if it would not work, in the case of an open-source system
on your phone, you could just rebuild a new system onto it, that
has been modified to allow the illegal radio frequency changes.

mkb.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cib6hF6otserU2@individual.net>
Matthias Buelow wrote:
> Ulrich Hobelmann <···········@web.de> wrote:
> 
> 
>>An MMU, which is a prerequisite for Linux to run, will.
>>How come the programs on your Unix or Windows box can't access 
>>hardware directly, even if they're written in C?
> 
> 
> Of course they can, see iopl(2), ioperm(2).

I suspect that those calls check your user privileges first, so 
you can't just write code that accesses arbitrary hardware.  A 
cellphone vendor could also make sure in firmware/hardware that 
only legal frequencies are sent.  Otherwise, YOU are breaking the 
law, if you patch your Linux kernel to do illegal stuff with it.

> And even if it would not work, in the case of an open-source system
> on your phone, you could just rebuild a new system onto it, that
> has been modified to allow the illegal radio frequency changes.

That's not the problem of the phone company.  And how would a Java 
API prevent this any better than a C API?

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Christopher C. Stacy
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uu0m3gbik.fsf@news.dtpq.com>
Ulrich Hobelmann <···········@web.de> writes:

> Matthias Buelow wrote:
> > Ulrich Hobelmann <···········@web.de> wrote:
> >
> >>An MMU, which is a prerequisite for Linux to run, will.
> >> How come the programs on your Unix or Windows box can't access
> >> hardware directly, even if they're written in C?
> > Of course they can, see iopl(2), ioperm(2).
> 
> I suspect that those calls check your user privileges first, so you
> can't just write code that accesses arbitrary hardware.  A cellphone
> vendor could also make sure in firmware/hardware that only legal
> frequencies are sent.  Otherwise, YOU are breaking the law, if you
> patch your Linux kernel to do illegal stuff with it.

I hope that you are only breaking the law if you are transmitting
illegally.  (The other possibility would be that it's criminal
o create a device which might be capable of breaking a law,
regardless of intent or anything that actually happened.)

> That's not the problem of the phone company.
> And how would a Java API prevent this any better than a C API?

It doesn't have to do with the API (except insomuch as Java APIs 
do not accept machine pointers).  Third-party Java applications are
restricted by the JVM, but to restrict actual machine code requires
hardware that can trap inappropriate references and instructions 
(and an operating system to handle them).  Java represents a small,
portable, protected OS, which doesn't require sophisticated hardware,
and which is also a language that has lots of software market share.

I don't see any advantage to supporting C on phones; Java seems
preferable in all respects.  There's enough memory and CPU power, 
and you don't need protected mode CPUs and an OS.  It's not clear 
that the kind of applications envisioned running on phones would 
greatly benefit from being written in Lisp, particularly, either.  
What is important are standard libraries for piping around certain
kinds of data, doing encryption, and pretty simple user interface
libraries.

In the near term, I think phones are just going to be terminsls,
and any really interesting programs would be on network servers.
Some phones are also PDAs, and there might be more sophisticated
applications involved.  For those devices, it might make sense to
run an operating system that supports more than just Java.
But again, most people consider Java at least adequate for even
those applications, so a conservative business decision would
suggest that the platform does not need to be upgraded.

Lisp, even for small and simple applications, is a nice way of
expressing programs and having them be maintainable and evolvable.
But it shines when applied to less well-defined, more evolutionary
programs.  I'd like to be able to use it on phones, but it would 
be more appropriate and desirable on the server-side of things.

Besides, one could write most Lisp programs in a way that 
would make them ammenable to translation into Java.
I don't know how good the JVM targetted Lisp compilers are.
It would be nice if the condition system was usable,
if there wasn't too much overhead on all kinds of
things (for example, multiple values, closures, etc.),
and maybe even if multiple inheritance code was automatically
translated into single-inheritence patterns.
Or you could just limit yourself to simpler Lisp programs.
You would still get macros and many features.
And then both your server and client code would be in Lisp.
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cigu9F6mncfeU1@individual.net>
Christopher C. Stacy wrote:
> I hope that you are only breaking the law if you are transmitting
> illegally.  (The other possibility would be that it's criminal
> o create a device which might be capable of breaking a law,
> regardless of intent or anything that actually happened.)

It's called Induce Act, if I'm right.  Probably Europe will get 
similar laws in the future, which means I will have to move to 
South America later (Brazil? they seem to like open source).

> It doesn't have to do with the API (except insomuch as Java APIs 
> do not accept machine pointers).  Third-party Java applications are
> restricted by the JVM, but to restrict actual machine code requires
> hardware that can trap inappropriate references and instructions 
> (and an operating system to handle them).  Java represents a small,
> portable, protected OS, which doesn't require sophisticated hardware,
> and which is also a language that has lots of software market share.

SMALL?  I think a decent C kernel is MUCH smaller than anything in 
Java, especially in RAM usage.  L4 takes 40k, others not that much 
more.  Linux is bloated, ok.

> I don't see any advantage to supporting C on phones; Java seems
> preferable in all respects.  There's enough memory and CPU power, 
> and you don't need protected mode CPUs and an OS.  It's not clear 
> that the kind of applications envisioned running on phones would 
> greatly benefit from being written in Lisp, particularly, either.  
> What is important are standard libraries for piping around certain
> kinds of data, doing encryption, and pretty simple user interface
> libraries.

Why use programming language that takes up whopping megabytes of 
memory?  I think an MMU is much cheaper than adding another 32MB 
to your device so that even basic apps run fine.  It's also easier 
  than adding a huge battery because the 400+MHz required to run 
Java decently drain so much energy.

I once read on how to develop Java games for phones.  It said 
"avoid garbage collection", "use static methods" and other 
glorious workarounds.  No thanks, I'd rather be able to compile 
*whatever I want* to assembly language!

And if you have ever seen those Java games compared to what even 
the Gameboy Advance can do with 32? MHz (and 15h on battery), you 
wouldn't find it so cool.  Coding in C where others use Java puts 
in a competitive advantage.

> Besides, one could write most Lisp programs in a way that 
> would make them ammenable to translation into Java.

You can translate Lisp to ARM code, without being forced to use 
the JVM machine model, its slow GC system, its 
typecasts-with-checks-at-runtime.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <wWO8e.22158$d5.162732@newsb.telia.net>
Bear wrote:
> Those of us who like lisps are a tiny minority of programmers,

I don't think that it's carved in stone that it must be so.
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <878y3lyrdx.fsf@qrnik.zagroda>
Pascal Costanza <··@p-cos.net> writes:

> - One interesting tidbit by Guy Steele is that he stated that they had
> a full working implementation of inner classes that close not only
> over the final variables of the surrounding environment, but over any
> variables. This was voted down due to "efficiency" issues - variable
> bindings had to be allocated on the heap instead of the stack. Closing
> over final variables doesn't impose an implicit heap allocation.

What about autoboxing introduced in Java 5? It does implicit heap
allocation!

-- 
   __("<         Marcin Kowalczyk
   \__/       ······@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c8d42F6lesi5U1@individual.net>
Marcin 'Qrczak' Kowalczyk wrote:

> Pascal Costanza <··@p-cos.net> writes:
> 
>>- One interesting tidbit by Guy Steele is that he stated that they had
>>a full working implementation of inner classes that close not only
>>over the final variables of the surrounding environment, but over any
>>variables. This was voted down due to "efficiency" issues - variable
>>bindings had to be allocated on the heap instead of the stack. Closing
>>over final variables doesn't impose an implicit heap allocation.
> 
> What about autoboxing introduced in Java 5? It does implicit heap
> allocation!

Why do you expect consistency in their decisions?

The story about implicit heap allocation of closed-over variables was 
told by Guy Steele in some mailing list some time ago. (I think it was 
ll-discuss.)


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87d5swjxnk.fsf@qrnik.zagroda>
Pascal Costanza <··@p-cos.net> writes:

>>>Closing over final variables doesn't impose an implicit heap allocation.
>> What about autoboxing introduced in Java 5? It does implicit heap
>> allocation!
>
> Why do you expect consistency in their decisions?
>
> The story about implicit heap allocation of closed-over variables was
> told by Guy Steele in some mailing list some time ago. (I think it was
> ll-discuss.)

I've heard this explanation too.

Variable arity methods, also introduced in Java 5 to match C# by
features, do implicit heap allocation too.

Since C# 2.0 introduced true closures, with the ability to rebind
outer variables, shouldn't Java start supporting this again? :-)

-- 
   __("<         Marcin Kowalczyk
   \__/       ······@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
From: Steven Shaw
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <42652915_1@news.iprimus.com.au>
Marcin 'Qrczak' Kowalczyk wrote:
> Since C# 2.0 introduced true closures, with the ability to rebind
> outer variables, shouldn't Java start supporting this again? :-)

The fact that C# 2.0 will support true closures seems to be a 
misunderstanding. As I understand it, it's more like Java's anonymous 
classes.

 From "Chat With C# team":
  http://msdn.microsoft.com/chats/transcripts/vstudio/vstudio_011603.aspx
===========================================================================
Q: Will anonymous methods be true closures over local variables?

A: Yes, for all intents and purposes. Each scope entry which has locals 
which are captured by an anonymous delegate creates its own set of those 
locals which live as long as the delegate.
==========================================================================

ie. "Yes but no". The key thing is "its own set". As I understand it, 
this is different to  Scheme/Lisp/Smalltalk. Maybe the C# 2.0 team have 
changed their minds on that since?

Cheers,
Steve.
From: Matthew D Swank
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.19.17.41.38.347361@c.net>
On Wed, 20 Apr 2005 01:49:30 +1000, Steven Shaw wrote:

> The fact that C# 2.0 will support true closures seems to be a 
> misunderstanding. As I understand it, it's more like Java's anonymous 
> classes.
> 
>  From "Chat With C# team":
>   http://msdn.microsoft.com/chats/transcripts/vstudio/vstudio_011603.aspx
> ===========================================================================
> Q: Will anonymous methods be true closures over local variables?
> 
> A: Yes, for all intents and purposes. Each scope entry which has locals 
> which are captured by an anonymous delegate creates its own set of those 
> locals which live as long as the delegate.
> ==========================================================================
> 
> ie. "Yes but no". The key thing is "its own set". As I understand it, 
> this is different to  Scheme/Lisp/Smalltalk. Maybe the C# 2.0 team have 
> changed their minds on that since?
> 
> Cheers,
> Steve.

Could you explain, (or give an example) of what the difference is?


Thanks,

Matt

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Joe Marshall
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <oecay0o8.fsf@ccs.neu.edu>
Steven Shaw <···········@iprimus.com.au> writes:

>  From "Chat With C# team":
>   http://msdn.microsoft.com/chats/transcripts/vstudio/vstudio_011603.aspx
> ===========================================================================
> Q: Will anonymous methods be true closures over local variables?
>
> A: Yes, for all intents and purposes. Each scope entry which has
> locals which are captured by an anonymous delegate creates its own set
> of those locals which live as long as the delegate.
> ==========================================================================
>
> ie. "Yes but no". The key thing is "its own set". As I understand it,
> this is different to  Scheme/Lisp/Smalltalk. Maybe the C# 2.0 team
> have changed their minds on that since?

They work like closures.  The implementation ensures that the
appropriate sharing still occurs.
From: André Thieme
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3mol9$ir$1@ulric.tng.de>
Pascal Costanza schrieb:

> - One interesting tidbit by Guy Steele is that he stated that they had a 
> full working implementation of inner classes that close not only over 
> the final variables of the surrounding environment, but over any  variables.

Could you please describe what the disadvantages of the current state of 
Javas "closures" are? In what situations do you want to close over 
non-final vars?


Andr�
--
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c8dcaF6nioilU1@individual.net>
Andr� Thieme wrote:

> Pascal Costanza schrieb:
> 
>> - One interesting tidbit by Guy Steele is that he stated that they had 
>> a full working implementation of inner classes that close not only 
>> over the final variables of the surrounding environment, but over any  
>> variables.
> 
> Could you please describe what the disadvantages of the current state of 
> Javas "closures" are? In what situations do you want to close over 
> non-final vars?

That's not the right question.

Do you know what Java programmers simulate when they write something 
like this:

final int[] i = new int[1]; i[0] = ...;

...

new SomeInterface() {
   ...
   i[0] = ...;
   ...
}


? ;)


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: André Thieme
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3torp$vjg$1@ulric.tng.de>
Pascal Costanza schrieb:
> Andr� Thieme wrote:
> 
>> Pascal Costanza schrieb:
>>
>>> - One interesting tidbit by Guy Steele is that he stated that they 
>>> had a full working implementation of inner classes that close not 
>>> only over the final variables of the surrounding environment, but 
>>> over any  variables.
>>
>>
>> Could you please describe what the disadvantages of the current state 
>> of Javas "closures" are? In what situations do you want to close over 
>> non-final vars?
> 
> 
> That's not the right question.
> 
> Do you know what Java programmers simulate when they write something 
> like this:
> 
> final int[] i = new int[1]; i[0] = ...;
> 
> ...
> 
> new SomeInterface() {
>   ...
>   i[0] = ...;
>   ...
> }
> 
> 
> ? ;)

No. What do they simulate?


Andr�
--
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3cfc5rF6gu99lU1@individual.net>
Andr� Thieme wrote:
> Pascal Costanza schrieb:
> 
>> Andr� Thieme wrote:
>>
>>> Pascal Costanza schrieb:
>>>
>>>> - One interesting tidbit by Guy Steele is that he stated that they 
>>>> had a full working implementation of inner classes that close not 
>>>> only over the final variables of the surrounding environment, but 
>>>> over any  variables.
>>>
>>> Could you please describe what the disadvantages of the current state 
>>> of Javas "closures" are? In what situations do you want to close over 
>>> non-final vars?
>>
>> That's not the right question.
>>
>> Do you know what Java programmers simulate when they write something 
>> like this:
>>
>> final int[] i = new int[1]; i[0] = ...;
>>
>> ...
>>
>> new SomeInterface() {
>>   ...
>>   i[0] = ...;
>>   ...
>> }
>>
>>
>> ? ;)
> 
> No. What do they simulate?

Closures over non-final variables. If Java had them, you could write the 
following:

int i = ...;
...

new SomeInterface() {
   ...

   i = ...;

   ...
}


The important detail here is the assignment to i. Java cannot deal with 
this. Therefore, you have to "box" such variables, as showed above.


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Per Bothner
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <kIZ7e.2808$t85.2437@newssvr21.news.prodigy.com>
Pascal Costanza wrote:
> - One interesting tidbit by Guy Steele is that he stated that they had a 
> full working implementation of inner classes that close not only over 
> the final variables of the surrounding environment, but over any 
> variables. This was voted down due to "efficiency" issues - variable 
> bindings had to be allocated on the heap instead of the stack. Closing 
> over final variables doesn't impose an implicit heap allocation.

Closes over non-final variables doesn't require any *extra* heap
allocation, either.  You do have to convert all references to a
local variable to references to a field in the closure.  This is
the same field you'd have to use for refernces from within the
inner classes for the final variables; the difference is that
for non-final variables, you also have to access the same field
when referencing it from outside the inner class.

This trick is/was used in Kawa:
http://www.gnu.org/software/kawa/internals/procedures.html#first-class-functions
From: Christopher Koppler
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.19.15.22.695354@chello.at>
On Thu, 14 Apr 2005 09:19:42 -0500, Ulrich Hobelmann wrote:

> Matthias Blume wrote:
>> If you think that Java is the worst language, you haven't seen many
>> languages.
> 
> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
> Unlambda, which aren't serious.  What other abominations are out 
> there?
> 

(Visual) Basic!

-- 
Christopher
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <n6ht51dr1pkrdgmtfoj7floch9rlduja3l@4ax.com>
On Thu, 14 Apr 2005 19:19:23 GMT, Christopher Koppler
<········@chello.at> wrote:

>On Thu, 14 Apr 2005 09:19:42 -0500, Ulrich Hobelmann wrote:
>
>> Matthias Blume wrote:
>>> If you think that Java is the worst language, you haven't seen many
>>> languages.
>> 
>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
>> Unlambda, which aren't serious.  What other abominations are out 
>> there?
>> 
>
>(Visual) Basic!

I wonder why no one mentioned Perl yet...
From: Christopher Koppler
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.14.19.38.38.832764@chello.at>
On Thu, 14 Apr 2005 21:31:23 +0200, Fernando Rodriguez wrote:

> On Thu, 14 Apr 2005 19:19:23 GMT, Christopher Koppler
> <········@chello.at> wrote:
> 
>>On Thu, 14 Apr 2005 09:19:42 -0500, Ulrich Hobelmann wrote:
>>
>>> Matthias Blume wrote:
>>>> If you think that Java is the worst language, you haven't seen many
>>>> languages.
>>> 
>>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
>>> Unlambda, which aren't serious.  What other abominations are out 
>>> there?
>>> 
>>
>>(Visual) Basic!
> 
> I wonder why no one mentioned Perl yet...

Hey, Perl is nearly as cool for one-liners as APL!

-- 
Christopher
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <i1pt51harmf4snripl5tcribo83bo1e0kd@4ax.com>
On Thu, 14 Apr 2005 19:42:41 GMT, Christopher Koppler
<········@chello.at> wrote:


>>>> Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
>>>> Unlambda, which aren't serious.  What other abominations are out 
>>>> there?
>>>> 
>>>
>>>(Visual) Basic!
>> 
>> I wonder why no one mentioned Perl yet...
>
>Hey, Perl is nearly as cool for one-liners as APL!

And nearly as cryptic... ;-) 

Actually, I do like APL and its baroque beauty.
From: Antoun Kanawati
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <28qdnVcUgKh8s8LfRVn-vg@comcast.com>
Fernando Rodriguez wrote:
> On Thu, 14 Apr 2005 19:19:23 GMT, Christopher Koppler
> <········@chello.at> wrote:
> 
>>On Thu, 14 Apr 2005 09:19:42 -0500, Ulrich Hobelmann wrote:
>>
>>
>>>Matthias Blume wrote:
>>>
>>>>If you think that Java is the worst language, you haven't seen many
>>>>languages.
>>>
>>>Hm, maybe Fortran, Cobol.  Maybe stuff like Brainf*** and 
>>>Unlambda, which aren't serious.  What other abominations are out 
>>>there?
>>>
>>
>>(Visual) Basic!
> 
> I wonder why no one mentioned Perl yet...

Because it is not an abomination.  Advanced programming in perl is a
mind altering experience.  Try creating a new class, at runtime, for
example, or a new named variable in some namespace/package; also, look
at perl's goto.

-- 
A. Kanawati
···············@comcast.net
From: Joe Marshall
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <8y3kdvpd.fsf@ccs.neu.edu>
Antoun Kanawati <·······@comcast.net> writes:

> Advanced programming in perl is a mind altering experience.

As is transorbital lobotomy, but I don't recommend it.
From: Antoun Kanawati
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <UY-dnesyWsIPVcLfRVn-hQ@comcast.com>
Joe Marshall wrote:
> Antoun Kanawati <·······@comcast.net> writes:
> 
>>Advanced programming in perl is a mind altering experience.
>
> As is transorbital lobotomy, but I don't recommend it.

I was thinking along more positive lines; like, I don't feel the
same level of frustration as I would with C++ or Java.
-- 
A. Kanawati
···············@comcast.net
From: Matthias Blume
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m1mzs0129q.fsf@tti5.uchicago.edu>
Antoun Kanawati <·······@comcast.net> writes:

> Joe Marshall wrote:
>> Antoun Kanawati <·······@comcast.net> writes:
>> 
>>>Advanced programming in perl is a mind altering experience.
>>
>> As is transorbital lobotomy, but I don't recommend it.
>
> I was thinking along more positive lines; like, I don't feel the
> same level of frustration as I would with C++ or Java.

Oh, so you were /serious/?  I guess that's the worst aspect of Perl:
many people actually /like/ it (or at least think they do).
From: Antoun Kanawati
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <y9udnUg8lfpxC_3fRVn-3A@comcast.com>
Matthias Blume wrote:
> Antoun Kanawati <·······@comcast.net> writes:
>>Joe Marshall wrote:
>>>Antoun Kanawati <·······@comcast.net> writes:
>>>
>>>>Advanced programming in perl is a mind altering experience.
>>>
>>>As is transorbital lobotomy, but I don't recommend it.
>>
>>I was thinking along more positive lines; like, I don't feel the
>>same level of frustration as I would with C++ or Java.
> 
> Oh, so you were /serious/?  I guess that's the worst aspect of Perl:
> many people actually /like/ it (or at least think they do).

Well, it offers a vast number of opportunities to write inscrutable
code, and flex muscle :)

But, really, it works very well in certain problem spaces; and,
ultimately, that's what counts: the right tool for the right job.
-- 
A. Kanawati
···············@comcast.net
From: Fernando Rodriguez
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pasu51torhg9s563nf68hpjg3ar4e7mtdb@4ax.com>
On Thu, 14 Apr 2005 20:03:11 -0700, Antoun Kanawati
<·······@comcast.net> wrote:


>> I wonder why no one mentioned Perl yet...
>
>Because it is not an abomination.  Advanced programming in perl is a
>mind altering experience.  Try creating a new class, at runtime, for

I had a very short exposure to Perl several years ago (immediately
after learning scheme) and the design seemed a mess to me.  Maybe
things have changed. At least the new VM for Perl looks interesting.

Do you know of any quick intro to the new cool aspects of perl, for
experienced programmers? 

>example, or a new named variable in some namespace/package; also, look
>at perl's goto.

goto? Hmm...
From: Rob Warnock
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <68SdnRH-8brDD8LfRVn-rQ@speakeasy.net>
Fernando Rodriguez  <···@THOU_SHALL_NOT_SPAMeasyjob.net> wrote:
+---------------
| Do you know of any quick intro to the new cool aspects of perl,
| for experienced programmers? 
+---------------

"Advanced Perl Programming", by Sriram Srinivasan
<http://www.oreilly.com/catalog/advperl/>. It was there that I
first found out that Perl "glob"s are really very much like CL
symbols, that is, a data structure with several slots -- except
that Perl has chosen a particular reader macro character (or case)
as an explicit indicator of each slot:

    $              for the scalar value binding, e.g., $foo
    @              for the array value binding
    %              for the associative-array value binding
    Capitalization for the I/O stream binding, e.g., FOO
    *              for "the symbol itself" (a.k.a. the "glob"), which
                   gives access to *all* of the bindings (and which
                   is the only way, AFAIK, to pass an I/O stream as
                   a parameter).

(And maybe "&" for the function binding? I forget...)


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Antoun Kanawati
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <l66dnYC6dZNLXsLfRVn-uQ@comcast.com>
Fernando Rodriguez wrote:
> On Thu, 14 Apr 2005 20:03:11 -0700, Antoun Kanawati
> <·······@comcast.net> wrote:
> 
>>>I wonder why no one mentioned Perl yet...
>>
>>Because it is not an abomination.  Advanced programming in perl is a
>>mind altering experience.  Try creating a new class, at runtime, for
> 
> I had a very short exposure to Perl several years ago (immediately
> after learning scheme) and the design seemed a mess to me.  Maybe
> things have changed. At least the new VM for Perl looks interesting.
> 
> Do you know of any quick intro to the new cool aspects of perl, for
> experienced programmers?

I've used the O'Reilly books, including the "Advanced Perl Programming"
one.

Some very useful doc is already packaged with perl.  Active State perl
builds a nice HTML index of all the docs; makes it a lot easier to
browse.

>>example, or a new named variable in some namespace/package; also, look
>>at perl's goto.
> 
> goto? Hmm...

Yeah, goto subroutine(args...);


-- 
A. Kanawati
···············@comcast.net
From: Matthew D Swank
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <pan.2005.04.15.14.26.41.973299@c.net>
On Fri, 15 Apr 2005 09:50:27 +0200, Fernando Rodriguez wrote:


> Do you know of any quick intro to the new cool aspects of perl, for
> experienced programmers? 
> 

http://dev.perl.org/perl6/doc/synopsis.html

-- 
"You do not really understand something unless you can
 explain it to your grandmother." — Albert Einstein.
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <iGN8e.134869$dP1.473661@newsc.telia.net>
Fernando Rodriguez wrote:
> I wonder why no one mentioned Perl yet...

How is Java a better language than Perl?

Perl is a kludge, but it was designed to be one. What's Java's excuse?

Perl was never meant to be the next smalltalk or scheme.

My personal favourite language is Scheme but I think it's very 
interesting that the Perl community chose to go in the complete opposite 
direction. Perl is an important experiment in what a programming 
language can be.

Most languages I look at, I go "Hmm, and what exactly is the win of 
using this over a lisp variant?" and come up with nothing, and go away 
annoyed.

With Perl, I go "Hmm... that's... er.. interesting". Even if I'm not 
completely non-disgusted, I do prefer that reaction than the reaction I 
have to Java, which is just "why, oh, why?"

Java throws away my beloved sexp syntax for vague promises of 
"familiarity with C-like languages". Perl ups the ante by also striving 
for familiarity with sh, sed, awk, and the kitchen sink. I may scoff at 
the former approach but I can't help admiring the latter.

CL chooses to separate functions and value cells for various reasons, 
including the ability to use the same identifier in different contexts. 
For example, (list list), where list is first seen in the car position, 
a context which is interpreted as a function call, and then it's seen in 
argument position, where it's interpreted as a value.
CL allows the use of a reader macro #' to explicitly select which cell 
you want, function or value.
Perl takes this to extremes by separating into functions and different 
types of datastructures (scalars, sequences and associative arrays) and 
providing separate contexts for each, sometimes with (totally weird) 
automatic conversions. It uses prefixes like $, % and @ to explicitly 
select a cell (so that $foo can be totally different from the subroutine 
foo, for example).

Perl is a language of deliciously disgusting extremes. (And I wouldn't 
touch the stuff voluntarily - but I admire it from a safe distance.)
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <ldT8e.134921$dP1.473549@newsc.telia.net>
Stefan Ram wrote:
>   I enjoyed reading this for its ingenious style.
> 
Thanks, that made my day.
From: A.L.
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <g66t51he1o2svg3c7nttbgqi94iek3cvpd@4ax.com>
On Thu, 14 Apr 2005 07:25:21 -0500, Matthias Blume
<····@my.address.elsewhere> wrote:

>Ulrich Hobelmann <···········@web.de> writes:
>
>> israel wrote:
>>> The current DDJ ( at least the latest that our antipodean
>>> newsstands have ) has an interesting interview with Guy Steele.
>>> He contributed to Scheme, Lisp , Java and did the first port of Tex.
>>
>> I've never understood this.  How could anyone who knew Scheme and Lisp
>> and even worked on Scheme standardization produce one of the WORST
>> languages in the whole wide world?
>
>If you think that Java is the worst language, you haven't seen many
>languages.

Such as C++...

A.L.
From: Fernando
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <qm3t5155qhll06d98n9ipoaagkgkmelkp9@4ax.com>
On Thu, 14 Apr 2005 07:25:21 -0500, Matthias Blume
<····@my.address.elsewhere> wrote:


>> I've never understood this.  How could anyone who knew Scheme and Lisp
>> and even worked on Scheme standardization produce one of the WORST
>> languages in the whole wide world?
>
>If you think that Java is the worst language, you haven't seen many
>languages.

Good for him. I wish Java had been the worst language I've had to deal
with.

However, I really don't understand how on Earth Java managed to rise
having alternatives as Smalltalk or CL.
From: Frank Buss
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3m4h1$ls$1@newsreader3.netcologne.de>
Fernando  <···@easyjob.net> wrote:

> However, I really don't understand how on Earth Java managed to rise
> having alternatives as Smalltalk or CL.

Sun has a good marketing and the syntax and the very dynamic concept of 
Smalltalk and CL looks too weird for someone who knows C or Basic and 
doesn't want to learn something new.

-- 
Frank Bu�, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
From: Adam Connor
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <vie561tmaorhhfibab0eiifbepr4ev8g6i@4ax.com>
On Thu, 14 Apr 2005 16:08:01 +0000 (UTC), Frank Buss
<··@frank-buss.de> wrote:

>Fernando  <···@easyjob.net> wrote:
>
>> However, I really don't understand how on Earth Java managed to rise
>> having alternatives as Smalltalk or CL.
>
>Sun has a good marketing and the syntax and the very dynamic concept of 
>Smalltalk and CL looks too weird for someone who knows C or Basic and 
>doesn't want to learn something new.

Java looked a heck of a lot like C++, which made it easy for those
programmers to adopt it. And the whole "applet" thing came at the
right time and place to interest programmers. (It didn't pan out, but
it was an effective marketing hook.)

Javascript isn't that great, so I think there is still room in that
space, but nobody seems to want to compete in it.
--
adamnospamaustin.rr.com
s/nospam/c\./
From: israel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <871x9cln48.fsf@kafka.homenet>
Matthias Blume <····@my.address.elsewhere> writes:

> If you think that Java is the worst language, you haven't seen many
> languages.

Well, you must admit that it was a step backwards from 
ML, Miranda, Smalltalk,Prolog, Simula or any one of many far better
languages that existed at that time.

However, as a language for the "average programmer" it was an improvement
on C++ the then dominant language.
From: Hrvoje Blazevic
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <d3l95l$1sb$1@ss405.t-com.hr>
Ulrich Hobelmann wrote:
> israel wrote:
> 
>> The current DDJ ( at least the latest that our antipodean
>> newsstands have ) has an interesting interview with Guy Steele.
>>
>> He contributed to Scheme, Lisp , Java and did the first port of Tex.
> 
> 
> I've never understood this.  How could anyone who knew Scheme and Lisp 
> and even worked on Scheme standardization produce one of the WORST 
> languages in the whole wide world?
> 
> How much did they pay him to forget (?) what he knew?
> 

I often wondered about this myself.
However the statement above is not really strong enough. He did work on 
Scheme standardization, but that was only after he and Sussman invented 
it! He did work on standardization of CL, though.

As for Java, as far as I understand, he got into the game when Java was 
already developed. His influence can probably be seen in generics and 
stuff like that. (Anyway I should not say too much about Java, cause I 
actually do not know much--have read just one Java book).

-- Hrvoje
From: Pascal Costanza
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c727jF6jhledU2@individual.net>
Ulrich Hobelmann wrote:
> israel wrote:
> 
>> The current DDJ ( at least the latest that our antipodean
>> newsstands have ) has an interesting interview with Guy Steele.
>>
>> He contributed to Scheme, Lisp , Java and did the first port of Tex.
> 
> I've never understood this.  How could anyone who knew Scheme and Lisp 
> and even worked on Scheme standardization produce one of the WORST 
> languages in the whole wide world?
> 
> How much did they pay him to forget (?) what he knew?

He talks a little about his involvement in Java at the last panel at 
http://www.ai.mit.edu/projects/dynlangs/wizards-panels.html


Pascal

-- 
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7aq0F6m5gtnU2@individual.net>
Pascal Costanza wrote:
> He talks a little about his involvement in Java at the last panel at 
> http://www.ai.mit.edu/projects/dynlangs/wizards-panels.html

Thanks for that link.  I remember watching the first one last 
year, but I must have lost the link...

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: alex goldman
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1168988.yOxHoHJQfH@yahoo.com>
Ulrich Hobelmann wrote:

> No man is good enough to govern another man without that other's
> consent. -- Abraham Lincoln

I wonder if the South consented to being governed by him...
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c925nF6ju3k4U1@individual.net>
alex goldman wrote:
>>No man is good enough to govern another man without that other's
>>consent. -- Abraham Lincoln
> 
> 
> I wonder if the South consented to being governed by him...

I don't know that much about the civil war, being European, but 
apart from fighting about slavery, did he force the south to be 
part of the union?

Certainly he was elected by a majority.  But you're right -- 
democracy is usually the majority forcing things upon the 
minority(s), and I can't say I always agree with it.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Russell McManus
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87mzs0xnvi.fsf@cl-user.org>
Ulrich Hobelmann <···········@web.de> writes:

> Certainly he was elected by a majority.

Certainly not.  Lincoln won ~40% of the vote in 1860.

-russ
From: Pascal Bourguignon
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <87vf6o9w0u.fsf@thalassa.informatimago.com>
Ulrich Hobelmann <···········@web.de> writes:

> alex goldman wrote:
> >>No man is good enough to govern another man without that other's
> >>consent. -- Abraham Lincoln
> > I wonder if the South consented to being governed by him...
> 
> I don't know that much about the civil war, being European, but apart
> from fighting about slavery, did he force the south to be part of the
> union?

:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) 

Civil War was as much about fighting slavery as Irak War II is about
finding weapons of mass destruction!


> Certainly he was elected by a majority.  But you're right -- 
> democracy is usually the majority forcing things upon the minority(s),
> and I can't say I always agree with it.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
Litter box not here.
You must have moved it again.
I'll poop in the sink. 
From: http://public.xdi.org/=pf
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <m2sm1sfoo9.fsf@mycroft.actrix.gen.nz>
On Fri, 15 Apr 2005 00:35:54 -0500, Ulrich Hobelmann wrote:

> alex goldman wrote:
>>> No man is good enough to govern another man without that other's
>>> consent. -- Abraham Lincoln
>> I wonder if the South consented to being governed by him...

> I don't know that much about the civil war, being European, but 
> apart from fighting about slavery, did he force the south to be 
> part of the union?

http://www.amazon.com/exec/obidos/ASIN/0761526463

> Certainly he was elected by a majority.  But you're right -- 
> democracy is usually the majority forcing things upon the 
> minority(s), and I can't say I always agree with it.

http://www.amazon.com/exec/obidos/ASIN/0765808684

-- 
If that makes any sense to you, you have a big problem.
                                      -- C. Durance, Computer Science 234
(setq reply-to
  (concatenate 'string "Paul Foley " "<mycroft" '(··@) "actrix.gen.nz>"))
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c9th1F6mbr82U2@individual.net>
Paul Foley (http://public.xdi.org/=pf) wrote:
> On Fri, 15 Apr 2005 00:35:54 -0500, Ulrich Hobelmann wrote:
> 
> 
>>alex goldman wrote:
>>
>>>>No man is good enough to govern another man without that other's
>>>>consent. -- Abraham Lincoln
>>>
>>>I wonder if the South consented to being governed by him...
> 
> 
>>I don't know that much about the civil war, being European, but 
>>apart from fighting about slavery, did he force the south to be 
>>part of the union?
> 
> 
> http://www.amazon.com/exec/obidos/ASIN/0761526463

Ok, I looked the guy up at Wikipedia and admit that he wasn't as 
cool as public perception of him.

I still agree with my sig's content, however.

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Sashank Varma
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <1114142036.520963.167180@o13g2000cwo.googlegroups.com>
alex goldman wrote:

> Ulrich Hobelmann wrote:
>
> > No man is good enough to govern another man without that other's
> > consent. -- Abraham Lincoln
>
> I wonder if the South consented to being governed by him...

You can't troll a dead man.
From: Bruce O'Neel
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <w9l7jj5ikqs.fsf@obs.unige.ch>
He gave a nice Keynote at OOPSLA '98 (it's easy to remember
conferences when you don't go to many :-( ) where the whole keynote
assumed that you knew the definition of all English words 4 letters or
less and he could only use known words.  New words could be defined
only only from existing words.  It was quite cute.  He declined to
follow these rules for the question and answer session afterwords
though.  That said, some of the questions did follow this rule.

It cleverly pointed out one difficulty with Scheme.  

My now vague recollection from the keynote itself is that a
lispy/schemy syntax wouldn't fly, ergo we got {}, the distinction
between Integer and int was for speed (remember, systems were slower
in '95), and that Java had grown way more than anticipated.

cheers

bruce

-- 
Reality is 80m polygons - Alvy Ray Smith
Bruce O'Neel - ··········@siggraph.org
http://edoneel.chaosnet.org
From: Ulrich Hobelmann
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <3c7b36F6lje9gU1@individual.net>
Bruce O'Neel wrote:
> My now vague recollection from the keynote itself is that a
> lispy/schemy syntax wouldn't fly, ergo we got {}, the distinction
> between Integer and int was for speed (remember, systems were slower
> in '95), and that Java had grown way more than anticipated.

I still don't get the integer/Integer thing.  What prevents the 
compiler to use the 32bits for an integer instead for in Int 
pointer (to store directly in Lists)?  What prevents it from 
making this optimization transparent, so that every Integer.bla() 
method just used the direct value, not the pointer?

In '95, machines didn't even have much memory and speed, still 
Java wasted tons of resources on runtime checks (get elements out 
of a list -> typecast+check) and space on integers.

Does any functional language BOX 32bit integer values?

-- 
No man is good enough to govern another man without that other's 
consent. -- Abraham Lincoln
From: Kalle Olavi Niemitalo
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <8764yp72or.fsf@Astalo.kon.iki.fi>
Ulrich Hobelmann <···········@web.de> writes:

> I still don't get the integer/Integer thing.  What prevents the
> compiler to use the 32bits for an integer instead for in Int pointer
> (to store directly in Lists)?

Because the Integer pointer might be null, you cannot encode every
possible value in 32 bits.

Unlike the numbers and characters of CL, Java's Integer objects
have a reliable identity that can be compared: new Integer(0) !=
new Integer(0).  So you'd still have to store the pointer along
with the value.
From: Jorgen Schaefer
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <877jj3fyxs.fsf@forcix.kollektiv-hamburg.de>
Kalle Olavi Niemitalo <···@iki.fi> writes:

> Unlike the numbers and characters of CL, Java's Integer objects
> have a reliable identity that can be compared: new Integer(0) !=
> new Integer(0).  So you'd still have to store the pointer along
> with the value.

I'm completely lost on this one - could you give an example where
it wouldn't be cleaner to use two different subclasses of Integer?

Greetings,
        -- Jorgen

-- 
((email . ·······@forcix.cx") (www . "http://www.forcix.cx/")
 (gpg   . "1024D/028AF63C")   (irc . "nick forcer on IRCnet"))
From: Christoph Breitkopf
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <wraaco11nih.fsf@eddie.magrathea.local>
Bruce O'Neel <···········@obs.unige.ch> writes:

> He gave a nice Keynote at OOPSLA '98 (it's easy to remember
> conferences when you don't go to many :-( ) where the whole keynote
> assumed that you knew the definition of all English words 4 letters or
> less and he could only use known words.  New words could be defined
> only only from existing words.  It was quite cute.  He declined to
> follow these rules for the question and answer session afterwords
> though.  That said, some of the questions did follow this rule.
> 
> It cleverly pointed out one difficulty with Scheme.  
> 
> My now vague recollection from the keynote itself is that a
> lispy/schemy syntax wouldn't fly, ergo we got {}, the distinction
> between Integer and int was for speed (remember, systems were slower
> in '95), and that Java had grown way more than anticipated.

Here's the PDF:
http://homepages.inf.ed.ac.uk/wadler/steele-oopsla98.pdf

Regards,
Chris
From: Sunnan
Subject: Re: Guy Steele interview in DDJ
Date: 
Message-ID: <uVM8e.134867$dP1.473579@newsc.telia.net>
Bruce O'Neel wrote:
> He gave a nice Keynote at OOPSLA '98 (it's easy to remember
> conferences when you don't go to many :-( ) where the whole keynote
> assumed that you knew the definition of all English words 4 letters or
> less and he could only use known words.  New words could be defined
> only only from existing words.  It was quite cute.  He declined to
> follow these rules for the question and answer session afterwords
> though.  That said, some of the questions did follow this rule.
> 
> It cleverly pointed out one difficulty with Scheme.  

I read the pdf a while ago, and I interpreted that as a difficulty with 
languages without macros (since that'll let you "define new words from 
existing words", which isn't a bad thing, it's a good thing). Scheme has 
macros, Java hadn't at the time (and I haven't kept up, it probably 
still hasn't).