From: ········@bayou.uh.edu
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <5l6781$nqo$2@Masala.CC.UH.EDU>
Dean Roddey (·······@ng.netgate.net) wrote:
: ········@bayou.uh.edu wrote:
: > 
: > Dean Roddey (·······@ng.netgate.net) wrote:
: > : ········@bayou.uh.edu wrote:

: > Strings?  Oh wait, C++ doesn't have them, or was this one of the
: > things that the STL patch was supposed to fix?  Common Lisp had
: > strings for ages.
: > 

: Oh, and I don't think I made myself clear enough on this point. STL is
: 'just a library' just like anyone else's. The reason that C++ is so
: popular is that anyone can create their own vision of such a system. STL
: just happens to be one that picked to ship with the language because its
: small and simple and serves for many day to day applications. However
: C++, unlike most other languages, does not define a world it just
: defines a language with which anyone can build a world. Therefore, I can
: go out and buy a C++ framework that represents a world that I feel
: comfortable with, or I can build one, which I do. 

Common Lisp does this, and as usual does it much better.  You are
given a powerful world AND the ability to easily define a new world,
right down to creating your own language structures -- in essence
re-creating the language in ways that C++ can't even begin to dream
of.  Your argument falls short.


: That represents a lot
: of freedom to many people. Languages that come with the kitchen sink
: built in will never be able to move as fast because they will build
: assumptions about system capabilties into their attached world view.

And languages that give you nothing will always be a burden on the
programmer who is forever cursed with having to re-invent the
wheel.


: Those assumptions will be out of date before the first large project is
: built most likely. So the world view either changes (destroying the
: supposed portability and platform abstraction claimed by many such
: languages), or the applications written in that langauge don't take
: advantage of the new capabilities of the newer operating systems. That
: will keep a language out of the running more than anything else, because
: having access to the newest, hippest operating system stuff is what
: drives the industry.

So instead of providing power that the user could use, we say "hey
it could be out of date, let's not give the user diddly"?  


: access to them programatically, then it cannot take advantage of
: something like NT's security system. Or, if it does, it does so by
: having an inconsistent implementation on each platform. The language
: obviously will usually not have a GUI interface API, therefore it will
: hav to interface to the host OS' GUI. This will involve dealing with raw
: pointers and arbitrary structures blah blah blah. C++ is well positioned
: to deal with these things directly, with minimal overhead and gotchas.

Power can be provided with both the ability to re-implement as needed,
and to take advantage of a flexible framework.  You are thinking 
in a simplistic, flawed manner -- the C++ way.


: ------------------------
: Dean Roddey
: The CIDLib Class Libraries
: 'CIDCorp
: ·······@ng.netgate.net
: http://ng.netgate.net/~droddey/

--
Cya,
Ahmed

I'm gonna get some red eye and I'm gonna drink it down,
I'm gonna drink until I pass out on the ground,
I'm gonna drink every night and every day,
And I'll never join your fucking AA!
If I'm gonna die, I won't do it sober
	"Die" by Bomb Squadron

From: Dean Roddey
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <337945C1.5390@ng.netgate.net>
········@bayou.uh.edu wrote:
> 
> Common Lisp does this, and as usual does it much better.  You are
> given a powerful world AND the ability to easily define a new world,
> right down to creating your own language structures -- in essence
> re-creating the language in ways that C++ can't even begin to dream
> of.  Your argument falls short.
> 

The fact that another language does it means that C++ does not? Once
again, it makes no difference whether Lisp does it or not, becuase Lisp
is so far out of the mainstream that it is irrelevant. Get Lisp into the
mainstream and, if its really better than C++, I'll be on it like white
on rice. I'm more than ready to take something better, but its got to
also be commercially and professionally viable.

I'm not sure though that I WANT to create a new language. C++ does not
allow you to create different fundamental language syntax or define new
operators. I think that is the correct cut off point. Building worlds
upon a common substrate is a powerful concept because the user's
language skills apply to any new system. Only the higher level world
implemented is different.


> And languages that give you nothing will always be a burden on the
> programmer who is forever cursed with having to re-invent the
> wheel.
> 

No, they BUY a wheel out of a nice selection of wheels that roll they
way they like instead of having to take the wheel that comes on the car.

> So instead of providing power that the user could use, we say "hey
> it could be out of date, let's not give the user diddly"?
> 

Already answered.


> Power can be provided with both the ability to re-implement as needed,
> and to take advantage of a flexible framework.  You are thinking
> in a simplistic, flawed manner -- the C++ way.
> 

You'll have to expand on that argument cause I get nothing out of it.
How can your language X, which implements a particular view of a file
system take advantage of a different file system, with different
capabilities without effectively changing its file system API? If it
changes its file system API for every platform its on, how is that all
that different from C++ having class libraries on each platform, except
that the C++ libraries on that platform probably take better advantage
of the platform capabilities? How can it take advantage of a fundamental
system like NT's security system in which elaborate permissions can be
set on every single object in the system without fundamentally changing
its entire library API?

It would be nice to have a single API that fits all, but it will never
happen. I've done a lot of work in this area and I know its not possible
to make everyone happy. Java's AWT will soon discover this ugly fact, if
they have not already.

------------------------
Dean Roddey
The CIDLib Class Libraries
'CIDCorp
·······@ng.netgate.net
http://ng.netgate.net/~droddey/

"Software engineers are, in many ways, similar to normal people"
From: Thant Tessman
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <3379E2CD.167E@nospam.acm.org>
Dean Roddey wrote:

> [...]  I'm not sure though that I WANT to create a new language. C++ 
> does not allow you to create different fundamental language syntax or 
> define new operators. I think that is the correct cut off point. 

C++'s syntax is monstrous, so yes, this is absolutely the correct 
cut-off point for C++.  However in Scheme, there is only one built-in
syntax for function calls, so even using macros you'd have to try really 
hard to come up with enough archaic semantic extensions to compete with 
C++'s complexity.

And the ability to add semantic extensions is a very good thing.  For 
example, you can use macros and call/cc to add threading to Scheme in 
a way that make it look like it was built into the language.  Try adding 
threads to C++ at all let alone in a way that's easy to use.

> [...]

-thant
From: Bjarne Stroustrup
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <EA6vHx.MEy@research.att.com>
Thant Tessman <·····@nospam.acm.org> wrote:

 > Try adding  threads to C++ at all let alone in a way that's easy to use.

For people who are interesting in threads and other concurrency issues in
the context of C++,

	G.V.Wilson and P.Lu (editors):
	Parallel Programming Using C++.
	The MIT Press
	ISBN 0-262-73118-5

offers descriptions of a variety of approaches and systems. 
	
	- Bjarne

Bjarne Stroustrup, AT&T Research, http://www.research.att.com/~bs/homepage.html
From: Chris Bitmead uid(x22068)
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <BITMEADC.97May15115300@Alcatel.com.au>
In article <·············@ng.netgate.net> Dean Roddey <·······@ng.netgate.net> writes:

>The fact that another language does it means that C++ does not? Once
>again, it makes no difference whether Lisp does it or not, becuase Lisp
>is so far out of the mainstream that it is irrelevant. Get Lisp into the
>mainstream and, if its really better than C++, I'll be on it like white
>on rice. 

How do we "Get Lisp into the mainstream" when people like you won't
wake up and smell the coffee?

>I'm not sure though that I WANT to create a new language. C++ does not
>allow you to create different fundamental language syntax or define new
>operators. I think that is the correct cut off point. 

You've obviously got no idea what Lisp macros are all about.