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.
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?
·········@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.
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
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 ***
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.
> 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/
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
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�
--
> 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.
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.
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/
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
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
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
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.
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
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.
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.
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
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?
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.
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.
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.
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
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
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
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
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 ***
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
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----------
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...
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/
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----------
"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.
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.
"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
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.
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
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.
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
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?
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.
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.
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
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
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.
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.
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
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.
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
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
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.
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.
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
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".
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
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
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).
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!)
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
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.
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
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.
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
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.
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.
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
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.
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! ;)
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?
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
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.
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
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.
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
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.
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
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.
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
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.
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
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.
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
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.
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
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.
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.
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
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.
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).
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
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
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.
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.
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.
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
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 ***
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.
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
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?
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.
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
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.
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.
"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
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.
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!
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.
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
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.
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.
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.
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
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.
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
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.
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
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
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
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
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
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
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.
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
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.
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
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.
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
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.
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...)
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
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
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
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
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
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/
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.
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 ***
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
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
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.
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.
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.
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.
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. :)
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
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.
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.
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
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
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
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*.
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!
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
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.
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
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.
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
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.
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
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.
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.
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.
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
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
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.)
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
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.
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
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.
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
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.
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.
······@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.
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.
······@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.
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
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.
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?
······@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.
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
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\./
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.
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.
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".
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.
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.
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
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.
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/
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
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/
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
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.
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/
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.
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.
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
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.
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
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.
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.
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
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/
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)
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
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.
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
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.
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
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.
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.
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.
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.)
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".
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
> 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
>>>>> "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)
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
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.
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.
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?
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
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
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).
>>>>> "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
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.
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.
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
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--.
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
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�
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�
--
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.
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.
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.
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.
······@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.
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!
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?
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.
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.
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.
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.
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.
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.
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.
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).
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
> 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
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.
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.
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.
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.
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.
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.
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/
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.
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.
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
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.
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
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.
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
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.
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
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/
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/
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.
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�
--
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/
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�
--
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/
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
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
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...
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
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.
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.
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
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).
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
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...
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
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
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.
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.)
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.
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.
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
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\./
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.
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
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/
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
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...
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
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.
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>"))
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
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.
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
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
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.
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"))
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
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).