strangest systems I've sent email from
db at db.net
Fri Apr 29 11:59:47 CDT 2016
On Fri, Apr 29, 2016 at 03:51:12PM +0200, Liam Proven wrote:
> On 29 April 2016 at 15:09, Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:
> > > From: Swift Griggs
> > > C is popular because C is popular.
> > Yes, but that had to start somewhere.
> > I think it _became_ popular for two reasons: i) it was 'the' language of
> > Unix, and Unix was so much better than 99% of the alternatives _at the time_
> > that it grew like crazy, and ii) C was a lot better than many of the
> > alternatives _at the time it first appeared_ (for a number of reasons, which
> > I won't expand on unless there is interest).
> I am indeed interested.
XPL wasn't bad. (http://www.cs.toronto.edu/XPL/)
PL/M wasn't bad either.
For low level that is.
Pascal and the Bell Northern Research, BNR (prior to Nortel amalgamation)
derivative were pretty awful. Fortunately I never
had to use the BNR version. They both suffered from not having separate
compilation units, at least until near the end of BNR.
> > > direct memory allocation, pointer manipulation and so on -- are
> > > widespread /because/ of the C family influence. And I have a deep
> > > suspicion that these are harmful things.
> > Pointers, yes. Allocation, not really - a lot of languages have heaps. Did
> > you mean manual freeing when you mention 'memory allocation', because
> > technically even something like CONS allocates memory? And one could consider
> > 'auto' variables as 'allocated' - but the 'freeing' is automatic, when the
> > routine returns.
> Well, malloc() and free(), anyway.
> I can't find the citation but I have seen references to GC
> environments actually being _faster_ on well-structured systems.
> Notably, LispMs.
Yes they can be. Scavenger collector GC.
Telephone companies preferred deterministic behaviour from their code
and operating systems. GC is not and non-blocking send message passing kernels
are not deterministic.
> > As to whether those two are harmful - they can be. You have to have a 'clean'
Remember kids, Pascal is for children, C is for consenting adults.
> > programming style to use them extensively without running into problems. (I
> > personally have only rarely run into problems with them - and then mostly in
> > very early C, before casts existed, because of C's wierd pointer math rules.)
> Well exactly. Some people can use Lisp macros to do brilliant things;
> most can't. Some people can write clean, safe C; most can't.
There are many warts in C I would remove if I had the power to. ;)
C is an absolutely terrible language.
> Not everyone's a genius.
> And those who aren't, often don't know. See Dunning-Kruger. Klutzes
> think they're gods; gods think they're klutzes.
I could tell you stories sometime....
> As Yeats put it:
> "The best lack all conviction, while the worst / Are full of
> passionate intensity."
> So we *need* safe languages for the non-geniuses who think they're
> brilliant. You tempt 'em in with productivity and tools and keep them
> in a safe space where they can be productive. Delphi was superb for
Sure. I'd also suggest 'C' is overused and misused for too many reasons.
But *everyone* thinks they are a C programmer these days, which is silly.
OTH we still need a language where you can do the bad bad undefined things,
just don't expect it to be super portable when you do. C is a high
level PDP-11 assembler to this day. (auto increment and decrement)
> > I would need to think about this for a while to really come up with a good
> > position, but my initial sense is that these two are perhaps things that
> > should be hidden in the depths of large systems, for use by very good
> > programmers, that 'average' programmers should only be using higher-level
> > constructs.
> The thing is, the very good and the average often don't know it, and
> non-technical managers can't tell. So, keep everyone in the safe
> space, but offer power tools -- like Lisp macros -- so the brilliant
> are not held back.
> > > I actually hugely admire Linux
I prefer FreeBSD these days after a longish period of using Linux. ;)
> > > ...
> > > We are continuing to refine and tweak a 1970s-style OS -- a
> > > technologically conservative monolithic Unix. FOSS Unix hasn't even
> > > caught up with 1990s style Unix design yet, the early microkernel ones
> > > .. It's roughly 2 decades behind the times.
Agreed. Dragonfly is more interesting and some of the work Tannebaum
is doing is exciting too.
> > I'm a bit puzzled by your first thought, given your follow-on (which I agree
> > with).
> > I'd go further in criticizing Linux (and basically all other Unix
> > descendants), though - your latter comment above is just about the
Technically Linux is not a Unix descendant so much as a reimplementation. ;)
But ok. ;)
> > _implementation_. I have a problem with the _basic semantics_ - i.e. the
> > computational environment provided to user code. It was fantastic on a PDP-11
> > - near-'mainframe' levels of capability on a tiny 16-bit machine.
> > On modern machines... not so much.
macros suck. They totally made sense on a VAX when one needed inline
code because VAX calls were expensive and the compiler couldn't handle
inline code generation otherwise. Nowadays? Except for manifest declarations
(Constants) I'd remove macros. ;) Please don't waste tomatoes, I love eating
> Well, yes, definitely, that too. I cut my teeth on VMS and preferred
> it. I'd love to see some more totally non-Unix-like OSes, but I'd also
> like to see Unix moving forward, not just sitting there getting better
> and better at what it already is.
Hey I did some VMS work too. You must remember BLISS. ;)
> Liam Proven • Profile: http://lproven.livejournal.com/profile
> Email: lproven at cix.co.uk • GMail/G+/Twitter/Flickr/Facebook: lproven
> MSN: lproven at hotmail.com • Skype/AIM/Yahoo/LinkedIn: liamproven
> Cell/Mobiles: +44 7939-087884 (UK) • +420 702 829 053 (ČR)
- db at FreeBSD.org db at db.net http://www.db.net/~db
More information about the cctalk