From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: Handling of operator . pro
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Thu, 13 Aug 1992 01:40:43 GMT

In article <9222523.7061@mulga.cs.mu.OZ.AU> fjh@munta.cs.mu.OZ.AU (Fergus James HENDERSON) writes:
>vadim@cix.compulink.co.uk (Vadim Lebedev) writes:
>>
>>Exactly!!! That IS the reason i want them to be implemented ONCE by the
>>language implementor, and not MULTIPLE times by compiler users.
>
>There is more than ONE language implementor...
>OK, there are more programmers than compiler writers :-)

	Untrue in a reflexive language. *Everyone* is a compiler
extender :-)
>
>If the language becomes too complex, then "simply knowing the language"
>becomes a non-simple task. On the other hand if some feature has been
>coded using the facilities of a simple language, the maintainer can
>SEE how it works, by reading the code.

	Not necessarily. COBOL for example is divided into modules
and levels, allowing predefined subsets and optional modules.
You could learn COBOL wiithout using the Report Writer, for example.
The learn the report writer later.

	C++ tends not to be like this for two reasons:

	1) Complexity due to compatibility with C
	2) Bjarne tries to get as much as possible out of the 
	single idea of classes.

And this shows that C++ is basically C with a single new concept,
namely classes. There are two other extensions, templates
and exceptions. Templates are under-developed, and exceptions
are not implementable at the moment.
>
>The ideal is to have a language that is simple but powerful and extensible.
>This is the idea behind using standard library i/o functions rather than
>special builtins, overloading rathern than printf %-specifiers, etc.

	Yes. To make C++ simpler, try this:

	Throw out float.
	Throw out operators.

	Now devise a mechanism to put them back in via a 'library'.
	Now you have user defined syntax and support for arbitrary
	primitive types.

	Whatever you want to extend---throw it out first.
>
>Often it is not clear whether you should use a feature until after you
>have learnt it, so this is difficult.

	True.
>
>Also you have to learn the advanced feature every time you are maintaining
>code that used it, even if that code could have been written using only
>simpler features.

	I'm not so sure. Why is it harder to learn a properly conceived
language facility than to learn someones emulation of that facility
in reams of code? Sure you can read the code and deduce what it does,
but you are basically saying language manual writers ought to
write their manuals in C not english.

	[BTW: I sometimes think this!]
>
>I shouldn't have said PL/1 (I have never learnt that language, I was just
>repeating what I have heard and read). Instead I should have said C++ :-)
>

	Some people complain about complexity of learning C++.
Bull. They have not traded off the advantages as compared to C.
You try re-writing some of your C++ programs in C :-)
If you're any good at this, please apply to AT&T, they are looking
for a version of 'cfront' that works :-)



-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: comp.lang.c++