Q
QuantumG
Alan Balmer said:That's an incorrect assumption very early in your argument.
It's not an "incorrect assumption" it's the declared charter of the C
standization committee.
Alan Balmer said:That's an incorrect assumption very early in your argument.
Yes, that's how I interpreted it also. Perhaps Chris will clarify.
We do it because it is fun!
Alan Balmer <[email protected]> wrote in message news:<[email protected]>...
The point of my rant was
It's not an "incorrect assumption" it's the declared charter of the C
standization committee.
See Mark Twain story at bottom (one of my favorites).
(Or, to put it a little succinctly: Back at ya!)
--- Begin Story ---
Q: If you call a tail a leg, how many legs does a dog have?
A: 4. Calling a tail a leg does not make it a leg.
Alexander Bain, 1818-1903, Scottish philosopher. To have been
bain-damaged your schoolmates must be well into their second
century. I didn't think you were that old
(I thought it had to be a real word, but that's all I could find
in my dictionary)
But a tale may well be a leg end
I can't see much point in doing new development on conventional computers
(aka, "non-embedded systems") in C or other low-level languages, except of
course for things like OSes and device drivers (and any other obvious
exceptions to my generalization).
Contrary to the opinion of many in this list, I think that C
has a great potential.
has a great potential.
Not only for embedded systems, or maintenance code but for
developing new software.
Keith Thompson said:(e-mail address removed) (Kenny McCormack) writes:
(This is the second forged quotation I've seen today; what's going on
around here?)
You stated that last backwards -- C terminator, Pascal separator. AndI meant that C not only had three successful lineal descendants
(Objective-C, C++, and C#), but that it inspired people to copy its syntax
(a freeform block structure, instead of line-oriented code, delimited with
curly-braces, instead of the Algolish begin-end blocks) and, to some
extent, semantics (using = for assignment and == for equality-test,
semicolon-as-separator instead of the Pascalish semicolon-as-terminator,
etc.)).
I would say (executable) Java and the action part of awk wereIn my second sense, Java and Perl can be considered spiritual descendants
of C to some extent. They, especially Perl, stripped out a lot of the
lower-level semantics of C, but they kept a lot of things and generally
made it as easy as possible for an experienced C programmer to get up to
speed in the language.
Fortran and Cobol are both, traditionally, line-structured languages with
strict formatting rules. They have syntax that didn't catch on much past
the 1970s (Fortran has whitespace rules that almost defy belief when a
younger programmer sees them, Cobol has an odd reliance on a strict
grouping of divisions and subdivisions within the code)
The Fortran array enhancements (aka HPF) are standard only since F90.and semantics that
are simply not seen in most modern languages (Fortran has great
array-handling primitives, and doing very precise decimal math in Cobol is
more natural than most of the control structures). To be short, most
languages (by number of languages, not by number of lines of code) simply
don't look or work like that anymore.
Dave said:You stated that last backwards -- C terminator, Pascal separator.
And
I would count = and ; as syntax issues also; for C's semantic
influence I would count pass-by-value at least as default, nonzero as
boolean true (although LISP had nonNIL), and to an extent bit
operations on integers (some other languages supported this, but not
as conveniently). And maybe value-returning assignment -- I _think_
algol68 did that, but no other "normal" (procedural) HLL.
While your list was unique to C, which is what you actually say as I
read it, the individual features aren't. Algol and PL/I were freeform,
the latter with terminator.
AIUI algol 68 was so lax on representation
you could have { } "spell" do od, although you probably wouldn't have
been very popular.
FORTRAN used = and .EQ.; COBOL used = for both
(although assignments are also done by "verb" forms that don't use =).
I would say (executable) Java and the action part of awk were
deliberate "cleanups" of C; csh and perl somewhat less so -- that is,
they used some features of C, but also their own dissimilar ones.
FORTRAN did in the days it was all-caps; the versions known by Fortran
(>= 1990) _also_ allow "modern" (or at least mainstream) syntax,
except with explicit continuation.
COBOL did (at least through 1985, I
haven't examined the most recent version) require certain things
(divisions, sections, IIRC level numbers) to start at the beginning of
a line, but otherwise spanned lines and needed explicit continuation
only within a string (and FWIW standard C effectively does also -- it
requires breaking the literal and letting the pieces be concatenated)
and allowed multiple statements and IIRC even sentences on a line
although they were mostly verbose enough it would often be an
inconveniently long line.
COBOL's required ordering is in my view not
that different from declarations-before-code in algol, FORTRAN, and C
within a block before C99; and Ada, and Pascal which in its classic
form has grouping/ordering at least as strict.
Original BASIC was strictly line-oriented. With = for both BTW.
APL also was line-oriented. And I believe MUMPS. (And RPG.)
The Fortran array enhancements (aka HPF) are standard only since F90.
PL/I and Ada (already) incorporated pretty much both of these, and APL
arguably did even better on arrays, but those aren't modern (at least
in the sense of recent) either.
I wouldn't call even the original COBOL control structures unnatural
-- admittedly a subjective judgement -- although they tend to be
fragile and definitely aren't orthogonal (arguably elegant); -85 adds
"structured" but (unsurprisingly) still rather verbose options.
True, but at least the latter is a crock no one with sense would thinkDave Thompson wrote:
COBOL has PERFORM THROUGH and (in some versions) the ALTER verb. Hardly
a threat to if ... else or while.
And then we have the old joke:
The newest language in the COBOL family has object-oriented semantics.
It's called ADD 1 TO COBOL GIVING COBOL.
Do you have some hard data to back up this statement? Whenever I look at
some open source project, I see C source code. Exceptionally Fortran or
C++.
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160
http://www.tiobe.com/tpci.htm
While neither is really "hard" data, they are at least independent
measures that show nearly the same thing. It shows C, C++ and Java to
be all neck and neck. Not sure why you are seeing any appreciable
amount of Fortran, but I'll take these figures over anecdotal claims
about what you have seen or not.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.