Linux-Advocacy Digest #271, Volume #29           Sat, 23 Sep 00 01:13:04 EDT

Contents:
  programming languages and design (Richard)
  Re: Id Software developer prefers OS X to Linux, NT (Bryant Brandon)
  Re: Because programmers hate users (Re: Why are Linux UIs so crappy?) (Richard)
  Re: hypocritical Unix apologists (Richard)
  Re: hypocritical Unix apologists (Richard)
  Re: hypocritical Unix apologists (da duck)
  Re: Because programmers hate users (Re: Why are Linux UIs so crappy?) (Donovan 
Rebbechi)
  Re: Because programmers hate users (Re: Why are Linux UIs so crappy?) (Richard)
  Re: Because programmers hate users (Re: Why are Linux UIs so crappy?) (Richard)
  Re: programming languages and design (Donovan Rebbechi)
  Re: Because programmers hate users (Re: Why are Linux UIs so crappy?) (Richard)

----------------------------------------------------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: programming languages and design
Date: Sat, 23 Sep 2000 03:46:02 GMT

Donovan Rebbechi wrote:
> Any proficient programmer knows how a language is "meant" to be used, that
> is, they have a sense of what is considered "good style" in that language.
> For example, "good style" in perl would mean preferring foreach to
> for (...). In C++, it means using OO all the time.

"I invented the term Object-Oriented, and I can tell you I did not
have C++ in mind."  � Alan Kay

"The main problem for the C++ community today is to use Standard C++
in the way it was intended rather than as a glorified C or a poor
man's Smalltalk." � Bjarne Stroustrup (inventor of C++),
                    "Getting From The Past To The Future" ,
                    p. 23 C++ Report, SIGS Nov/Dec 1999 Vol1 No.10 

Kay referred to Smalltalk when he coined OO. And since the styles
of programmers in C++ and Smalltalk differ so radically, I can't
see how you can claim C++ style to be OO (except that you are
following the propaganda).

> I don't get your point. The OO design follows from the architecture.

Oh boy. Like hell it does!

> You'll have a hard time designing anything moderately complex with that
> approach. Even a head as big as yours can only hold so much (-;

Which gives me added incentive to keep things simple. Writing things
down is difficult until the architecture has stabilized some. And it
helps to compartmentalize and work on only a small part at a time.
And to document stuff correctly, I need someone to tell me what needs
explaining; I've been thinking about this so long that I don't even
know what I know anymore.

> > I wouldn't be able to do that in a language that didn't
> >take a lot of the load off my shoulders.
> 
> Whatever. If you're saying that everyone should program small talk
> I doubt that would solve the worlds problems. More static languages
> have the advantage of being less ( not more ) error prone, because errors
> get caught at compile time.

Yeah, that's the traditional explanation for strong typing. Run-time
errors are not a big deal in Smalltalk though and static typing
*creates* a class of errors that wouldn't exist otherwise.

And I'm not saying that everyone should do like I do: I'm saying that
everyone should *not* use C++ and *not* use Unix.

> [ design example snipped ]
> 
> THat was unclear, because you didn't clearly propose any object heirarchy or
> isa / hasa relationships. Anyway, suffice it to say that if that's your
> idea of "OO design", most C++ programmers are miles ahead of you.

<rolleyes> You don't need to know the details since they're beyond
the scope of my argument; that design is necessary at the method and
object level, and that this is *not* what I am talking about when I
talk about architectural design. Architecture is higher level than
mere OO design.

And the fact that most Smalltalk programmers are light-years ahead of
me is a lot more relevant to me than what people do using C++.

> I don't get your point. I didn't say that you don't need OO at all. My
> point is that OO is not the only programming paradigm ( contrary to
> what the java designers might have thought ) and sometimes, generic or
> functional programming solutions are superior.

I like ML and Lisp but none of that changes that functional programming
is deeply unnatural to the human mind; in fact, the chief reason I think
functional programming is neat is because it requires a different way of
thinking. And except for formal verification, there is little you can do
in a functional language that you can't do in an OO one (assuming it has
full closures).

I know what you meant; I'm claiming that you should never ever use an
imperative language unless someone has a gun to your head, and even then
don't automatically accept it. :-)

> For example, compare STL with java's container classes ( or for that matter,
> container classes in most other languages )

Compare them to Smalltalk Blocks (assuming we're talking about abstractions
over code that provide for delayed evaluation -- I carefully try to not-think
about Java and C++ whenever possible). In some dialects, Blocks are full
closures and you can do with them everything you can in a functional language.
And they're easy to write too;

aSortedCollection sortBy:
        [:firstElement :secondElement | firstElement rounded > secondElement]


"Claiming Java is easier than C++ is like saying that K2 is shorter than
Everest." 
� Larry O'Brien (editor, Software Development)

------------------------------

From: Bryant Brandon <[EMAIL PROTECTED]>
Crossposted-To: comp.sys.mac.advocacy,comp.os.ms-windows.nt.advocacy
Subject: Re: Id Software developer prefers OS X to Linux, NT
Date: Fri, 22 Sep 2000 23:02:58 -0500

In article <8qg3om$9mh$[EMAIL PROTECTED]>, "Stuart Fox" 
<[EMAIL PROTECTED]> wrote:

@"Bryant Brandon" <[EMAIL PROTECTED]> wrote in message
@news:[EMAIL PROTECTED]...
@> In article
@> <[EMAIL PROTECTED]>, dc
@> <[EMAIL PROTECTED]> wrote:
@>
@>
@>    Obviously, except that the C: drive is hidden.  We can only save
@> files to a couple of network volumes, storing the physical data on a
@> server, or we can save to a floppy.  The only thing that can touch the
@> C: drive is W2K, which seems to have a habit of slowly chewing up the
@> disk.
@
@With what exactly?  Presumably if it's filling up the drive you can find 
@out
@what it is?

   Nope, W2K hides it.  I cna't get to it at all.  I just get a disk 
full error message when i try to log in.

-- 
B.B.        --I am not a goat!           http://web2.airmail.net/dbrandon

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: Because programmers hate users (Re: Why are Linux UIs so crappy?)
Date: Sat, 23 Sep 2000 04:11:44 GMT

Donovan Rebbechi wrote:
> On Fri, 22 Sep 2000 19:44:54 GMT, Richard wrote:
> >You just provided an example. "advocacy" is about channeling
> >user anger instead of dealing with it.
>
> Not really. It can be about a whole lot of different things.

Like? And keep in mind that it's in the context of programmers
telling angry users what they should do in HOWTOs.

> >And exploiting other people's fuckups instead of repairing
> >them is a common theme; academics that exploit the destruction
> >wreaked by the education system instead of fixing it, despite
> >all of their moaning about the very damage they're exploiting.
> 
> I don't understand this remark. What destruction, and exploited how ?

The psychological destruction inherent in blind obediance to
authority. The school system indoctrinates it and the academics
exploit it when it comes time to forcing students to stop
questioning the assumptions and contradictions in their given
field. When a student brings up a fundamental contradiction
in physics, the physicists are used to telling them to "study
the math and in 5 years time you'll understand". Which is BS;
in 5 years time, the only thing that will have changed is the
student's mind has dulled and they've increased their invest-
ment in physics astronomically.

> No, I'm not. Design is part of programming. Get advanced programming
> book and a lot of it will be about design ( for example, "Design Patterns".
> Hell, it's even got the word in the title ! )

A lot of design patterns are very low level, only a few of them
are high level. There are no books on creating new architectures
for complex systems; you'd need something like 'On the Nature of
Order' for that.

> > Are hackers good programmers? And
> 
> I don't know what you mean by "hackers"

The common definition of the word will suffice.

> >yet, they don't seem able to design.
> 
> So they're not good programmers.


> But that's only the tip of the iceberg. If you use any APIs ( outside
> what the language provides ) the user needs to get the bindings.

No, he doesn't; *you* do. And Smalltalk makes this relatively easy;
it *is* an interpreted environment after all, so you can automagically
initialize all your classes as you file in their code.

> Well I can't say I know them terribly well. But most languages do not
> come with portable GUI and network APIs for starters ( I guess this
> is the one exceptional feature about java )

ROTFL. Graphical input and pointer input are part of the Smalltalk
language specification. And that's only been so for maybe two decades
before Java ever saw the light of day.

> >That's inevitable when you want to run apps written in one language on
> >an OS that uses a completely different language. If you used an OS built
> >on Smalltalk,
> 
> Uggggghhhh !!! The thought makes me shudder.

You know, there /is/ a reason why I never asked for help for my project
from Unix programmers.

And if you can write a good implementation of Smalltalk entirely *in*
Smalltalk then I certainly don't see why you can't write a good OS the
same way.

> Not at all. You can circumvent type safety in C++ and shoot yourself in
> the foot if you like. For example, you could create a list that allowed
> strings or integers.

Can you create one that allows both?

> In fact you could make it arbitrarily extensible
> by offering users a means to "register" a class with your list, and
> then they could add elements of their type to the admissible items.
> All this with compile checked type safety.

So you have to go through extra trouble to make it extensible. How
much trouble? And how many programmers are likely to go to it?

> C++ is extremely flexible, the difference is that the discipline imposed
> by compile checking forces you to work a little harder.
> 
> > And then there's Eiffel, which more or less has both ....
> 
> Eiffel has better safety features than C++.

The constraints, I know.

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: hypocritical Unix apologists
Date: Sat, 23 Sep 2000 04:15:16 GMT

Roberto Alsina wrote:
> <humour>
> You are also the most humble sentient entity to ever have walked the face of
> the universe!
> 
> You know, when someone starts saying things like that, it's almost guaranteed
> that he has a small penis. The next step is buying a Porsche. (I bet this
> paragraph can make Richard go whole hog and explain the forum just how nice and
> large a penis he has ;-)
> </humour>

:-) I was going to explain that I don't have a car and that I don't
want one either.

And running FM into the ground intellectually is not any kind of
achievement.

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: hypocritical Unix apologists
Date: Sat, 23 Sep 2000 04:27:21 GMT

Donovan Rebbechi wrote:
> On Fri, 22 Sep 2000 20:02:18 GMT, Richard wrote:
> >ROTFLMAO. You have no idea how wide your shot went.
> >I was weaned on mathematics, I grew up on it and
> 
> You're not the only one in the discussion who knows math
> ( Roberto studied some, I'm finishing a PhD ... )

I never imagined I was. Nor do I even think of myself as
a mathematician. I'm surrounded by them every day, I'd
hardly be so deluded!

> I don't think a "lack of mathematical ability" is the problem. I
> think you've got a lot of big ideas, and big talk, but I don't think
> you're capable of implementing anything.

That is an /interesting/ analysis, but at this point the only
thing that will stop me is depression or distraction. And these
would hardly reflect on the merits of my design work!

> Much like the mathematician who can derive a solution to a problem,
> though the solution is so complex as to be unusable.

I have everything compartmentalized and all the individual
components are achievable. So either they all work together
fine or they're not a solution at all. As for ressource
usage, I'm not trying to build a server OS so waiting a
couple of years for PCs to get faster works fine for me.

------------------------------

From: da duck<[EMAIL PROTECTED]>
Subject: Re: hypocritical Unix apologists
Date: Sat, 23 Sep 2000 00:31:50 -0400

On Fri, 22 Sep 2000 20:02:18 GMT, Richard <[EMAIL PROTECTED]> wrote:

>FM wrote:
>> required in programming is minimal, but when a guy
>> is showing complete inability to understand
>> abstract concepts, you can often attribute that to
>> the lack of basic mathematical skills.
>
>ROTFLMAO. You have no idea how wide your shot went.
>I was weaned on mathematics, I grew up on it and
>I could leave you reeling in any discussion on the
>topics of physics, mathematics, philosophy, politics,
>sociology and psychology; basically anything and
>everything theoretical. And my ability to understand
>abstract concepts is *superlative*.

You da man

------------------------------

From: [EMAIL PROTECTED] (Donovan Rebbechi)
Subject: Re: Because programmers hate users (Re: Why are Linux UIs so crappy?)
Date: 23 Sep 2000 04:37:21 GMT

On Sat, 23 Sep 2000 04:11:44 GMT, Richard wrote:
>Donovan Rebbechi wrote:
>> On Fri, 22 Sep 2000 19:44:54 GMT, Richard wrote:
>> >You just provided an example. "advocacy" is about channeling
>> >user anger instead of dealing with it.
>>
>> Not really. It can be about a whole lot of different things.
>
>Like? And keep in mind that it's in the context of programmers
>telling angry users what they should do in HOWTOs.

Yes, it's about programmers telling anti social Linux users not to bash 
users of other operating systems. 

>> I don't understand this remark. What destruction, and exploited how ?
>
>The psychological destruction inherent in blind obediance to
>authority.  The school system indoctrinates it 

Nonsense. If this were true, the more educated would be less questioning
of authority. Clearly not true.

> and the academics
>exploit it when it comes time to forcing students to stop
>questioning the assumptions and contradictions in their given
>field. 

Forcing ? What, do they lobotomise the students or something ? All
assumptions are questionable by definition. Any decent school should
teach students to question all assumptions. Moreover, I don't think 
that anyone with a basic awareness of the history of science would 
not understand the importance of this.

> When a student brings up a fundamental contradiction
>in physics, the physicists are used to telling them to "study
>the math and in 5 years time you'll understand". 

Well did it occur to you that the physicists may be right ? Or that
the student really does need to study some more math so that the 
professor can explain the theory in more depth ?

> Which is BS;
>in 5 years time, the only thing that will have changed is the
>student's mind has dulled and they've increased their invest-
>ment in physics astronomically.

Again, utter nonsense. In 5 years, they understand the theory. They may
or may not be happy / comfortable with it after that time. I wouldn't be
surprised if a lot of physicists weren't that comfortabe with quantum
mech.

>A lot of design patterns are very low level, only a few of them
>are high level. There are no books on creating new architectures
>for complex systems; you'd need something like 'On the Nature of
>Order' for that.

Whatever. 

>> > Are hackers good programmers? And
>> 
>> I don't know what you mean by "hackers"
>
>The common definition of the word will suffice.

I'm going to use it to mean "hobby programmers" since that's my understanding
of the word. I'd say some hobby programmers are less disciplined than pros,
but then that hardly matters since they aren't likely to write anything
complex enough to require careful design.

>> But that's only the tip of the iceberg. If you use any APIs ( outside
>> what the language provides ) the user needs to get the bindings.
>
>No, he doesn't; *you* do. 

If you want dynamic linking, he does.

>> Well I can't say I know them terribly well. But most languages do not
>> come with portable GUI and network APIs for starters ( I guess this
>> is the one exceptional feature about java )
>
>ROTFL. Graphical input and pointer input are part of the Smalltalk
>language specification. And that's only been so for maybe two decades
>before Java ever saw the light of day.

What widgets does smalltalk use on a UNIX system ? I bet it doesn't use
Qt, and I bet that the widgets don't even behave the same way. So IOW,
you have compatibility issues again. Smalltalk is inconsistent in 
behaviour with the rest of the applications I am using.

>And if you can write a good implementation of Smalltalk entirely *in*
>Smalltalk then I certainly don't see why you can't write a good OS the
>same way.

Whatever. Go do it and get back to us. For all your grand and pretentious 
talk of "high level design", it doesnt' mean a damn thing if you can't
make it work.

>> Not at all. You can circumvent type safety in C++ and shoot yourself in
>> the foot if you like. For example, you could create a list that allowed
>> strings or integers.
>
>Can you create one that allows both?

Yes, you can. That was my entire point. If you read the part below,
that should be self-evident.

>> In fact you could make it arbitrarily extensible
>> by offering users a means to "register" a class with your list, and
>> then they could add elements of their type to the admissible items.
>> All this with compile checked type safety.
>
>So you have to go through extra trouble to make it extensible. How

Yes. It's the price you pay for discipline. What you get in return is
code that is generally safer in that errors are caught at compile time.

You know, I programmed perl for a few years, and I'm relatively new to
C++. Perl is very dynamic, pretty much "anything goes". It didn't take
me long to like C++ more. I found that all the flexibility perl had was
also there in C++, but the C++ programs seemed safer and depended less
on runtime checks.

>much trouble? 

Not that much. You need to learn the idioms of the language, because these
tricks ( usually called "design patterns" ) are part of any expert's 
vocabulary. The difference between someone who knows the idioms and someone
who doesn't is much like the difference between a native speaker of a 
( spoken ) language and a moderately fluent non-native speaker.

> And how many programmers are likely to go to it?

Oh, all the good ones.

-- 
Donovan

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: Because programmers hate users (Re: Why are Linux UIs so crappy?)
Date: Sat, 23 Sep 2000 04:45:36 GMT

Donovan Rebbechi wrote:
> Suffice it to say that design is an essential part of programming. Any
> good programmer knows something about design, because writing a decent
  ^^^^
> nontrivial program  requires some basic design skills.

Someone once explained that a "good" engineer should know music so that
he was able to correctly tighten the skeins on ballistas just by pitch.
This was after he explained why engineers need to know absolutely everything.

> You are trying to pretend that programming and design are orthogonal skills,
> but simply put, this is a load of baloney. You can't program without some
> design skills.

You can program without any design. It will be total inextensible non-
maintainable crap but you can so program.

> And I'd argue that you're in no position to design unless you can program,
> because sooner or later, a design needs to be implemented and unless you
> have some basic understanding as to how it gets implemented, you are not
> going to be able to produce a good design.

And you're wrong here too. If anything, my knowledge of computers has
only hampered my ability to design. You have to have *incredible*
powers of imagination to compensate for the limitations imposed by
knowing how "it has to be". I don't have that good an imagination
so I'm very scared that I won't be able to design anything novel in
the years to come simply because I Know Too Much.

To do good design, you have to abstact over /all possible/
implementations of your design. And the only way to do that
with ease and without flaw is to 1) know nothing about any
particular implementation, or 2) be able to conceive of all
implementations.

The same rule applies in physics where "old" is defined as 30.


Wasn't it William Gibson who said that he couldn't write any more
science fiction novels now that people have oh so helpfully explained
to him how current technology works?

And I *have* mentioned 3Dsia, right?

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: Because programmers hate users (Re: Why are Linux UIs so crappy?)
Date: Sat, 23 Sep 2000 04:50:16 GMT

Donovan Rebbechi wrote:
> On Fri, 22 Sep 2000 20:18:42 GMT, Richard wrote:
> >No, I'm asking that they stop writing code without doing explicit
> >architectural design first. And if they can't do such design then
> >let someone else do it.
> 
> Why should they ? In fact, why should any hobbyist be forced to pursue
> their hobby according to your guidelines ?

Because bad music only makes people's ears bleed while bad software
drives people insane?

And hey, I'm fine with hobbyists writing crap software so long as they
never distribute it ....

------------------------------

From: [EMAIL PROTECTED] (Donovan Rebbechi)
Subject: Re: programming languages and design
Date: 23 Sep 2000 04:51:44 GMT

On Sat, 23 Sep 2000 03:46:02 GMT, Richard wrote:
>Donovan Rebbechi wrote:

>"I invented the term Object-Oriented, and I can tell you I did not
>have C++ in mind."  � Alan Kay

Well C++ is not just about OO. Java is probably a better example of 
a 100% OO language. There are large parts of C++ ( for example STL )
that don't use much OO ( as in inheritence and polymorphism ) at all. 

>Yeah, that's the traditional explanation for strong typing. Run-time
>errors are not a big deal in Smalltalk though 

I don't see how they cannot be a big deal. Run time errors are harder
to detect obviously. Compile time errors are detected and hence fixed 
earlier which results in better quality software. 

Given a choice, I would take a compile time error over a run time error
any day.

> and static typing
>*creates* a class of errors that wouldn't exist otherwise.

Such as ? The only errors it "creates" are things that should be errors.
Being forced to use dynamic typing allows you to get away with writing
sloppy and error prone code, and code that needs to be constantly 
checked at runtime.

BTW, let me remind you that in C++ you can circumvent static typing
when you need to. But you can't force static typing in the dynamically 
typed "sloppy scripting" languages.

>And I'm not saying that everyone should do like I do: I'm saying that
>everyone should *not* use C++ and *not* use Unix.

Well in the case of C++, you are speaking from a position of ignorance,
and you've admitted this.

>> For example, compare STL with java's container classes ( or for that matter,
>> container classes in most other languages )
>
>Compare them to Smalltalk Blocks (assuming we're talking about abstractions
>over code that provide for delayed evaluation -- I carefully try to not-think

We're not. "Container classes" are classes like linked lists, queues,
sets, hashes, etc. C++ solves the problem with generics.

-- 
Donovan

------------------------------

From: Richard <[EMAIL PROTECTED]>
Subject: Re: Because programmers hate users (Re: Why are Linux UIs so crappy?)
Date: Sat, 23 Sep 2000 04:59:24 GMT

Roberto Alsina wrote:
> If you know so much, why don't you do it?

I am; it's just going to take me 5 to 10 years,
so I'm taking out my frustrations in the meantime.

> That doesn't explain the men doing it, does it? Yet there's an
> tribe up the mazon who does it.

You're right, that doesn't make much sense.

> >Keey in mind that people in earlier times were into pedophilia
> >in a big way.
> 
> If you died at 28, marrying at 14 starts looking like a good
> idea.

And if you don't start puberty until 16 (*) then marrying at 14
still counts as pedophilia.

The most common argument for child marriage in India is that
daughters are "so sexual" that male relatives will rape them
at a moment's notice if they aren't married off.

> Or perhaps, just perhaps, the beauty standards do change.

Sure. Now, does that mean that there are no underlying principles
of beauty?

And keep in mind that a lot of things meant to enhance sexual
attractiveness aren't meant to enhance beauty; scarring and
tattooing are symbols of courage for example.

*: I don't know the exact age, I just know it was later. And
puberty has been starting younger lately because of chemical
pollutants mimicking sex hormones.

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and comp.os.linux.advocacy) via:

    Internet: [EMAIL PROTECTED]

Linux may be obtained via one of these FTP sites:
    ftp.funet.fi                                pub/Linux
    tsx-11.mit.edu                              pub/linux
    sunsite.unc.edu                             pub/Linux

End of Linux-Advocacy Digest
******************************

Reply via email to