Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #91600

Re: High level C

From raltbos@xs4all.nl (Richard Bos)
Newsgroups comp.lang.c
Subject Re: High level C
Date 2016-08-03 13:14 +0000
Organization Go wash your mouth.
Message-ID <57a1ebcd.5945000@news.xs4all.nl> (permalink)
References (5 earlier) <kfnbn1hpt3p.fsf@x-alumni2.alumni.caltech.edu> <89cbb9bc-51c5-45f0-b0ba-c0d469a0b668@googlegroups.com> <kfnvazlnb8l.fsf@x-alumni2.alumni.caltech.edu> <579e0bce.8242578@news.xs4all.nl> <kfn60rlmpzv.fsf@x-alumni2.alumni.caltech.edu>

Show all headers | View raw


Tim Rentsch <txr@alumni.caltech.edu> wrote:

> raltbos@xs4all.nl (Richard Bos) writes:
> 
> > Tim Rentsch <txr@alumni.caltech.edu> wrote:
> >
> >> Don't get me wrong, there are consequences for adopting a
> >> GC-based model for memory allocation.  Certainly there are
> >> contexts (writing OS kernels being an obvious one) where using GC
> >> is rightly viewed with great skepticism.  But I think most C
> >> programs would benefit from switching to a GC-based model.  The
> >> reason is a gain in developer productivity:  studies that have
> >> been done show a productivity improvement in the range of 60 to
> >> 100 percent.  That is, writing code where there is no need for
> >> manual deallocation produces somewhere between 1.6 times and 2
> >> times as many lines of code per day.  That is a huge win.
> >
> > It's also a silly number
> 
> If it is an accurate reporting of an actual measurement of
> productivity, how is it silly?  Do you think that the kind of
> activities involved are not typical of most code development?
> Wouldn't that depend on what programming tasks were measured?
> Or do you think the number is silly for some other reason?

I think it's silly because I've never written code where memory
management _could_ increase production by that much. _Resource_
management, yes, perhaps. But if you let GC demolish your structures
without handling all the insignificant details like, oh, closing files,
committing databases, and so on, you're in for a lot of pain and lost
data; whereas if you _do_ take good care of all your resources, mere
memory management is just one among many details, and not even the most
onerous.
Of course, this does assume that you write your code intelligently. You
don't write code to deallocate payload, then call a function to decouple
the node from the tree, then write more code to deallocate the node. You
write a function to do all that, _once_, and then everytime you need to
remove and destroy a tree node, you call that function knowing that it
handles the memory management for you _as well as_ the more essential
data management.

> > which I have a hard time believing.  How much of
> > your code is spent doing allocation tasks, compared to computation and
> > other data manipulation?  How much bookkeeping involves not _just_
> > free(), but also, I dunno, data_structure_destroy()?  I'd need a very
> > atypical project for it even to be _possible_ for me to write twice as
> > many lines of code if I could forget about free(), never mind likely.
> 
> I think the key question is not about how much code but about how
> much mental effort is required.  Most of the related mental
> energy in code that requires manual freeing goes into not having
> to call malloc()/free() in the first place.  Library functions
> like strcpy(), strcat(), snprintf() reflect this.  How much time
> goes into avoiding overflow of finite buffers?  That problem goes
> away if functions like these allocate new memory for their
> results, to be automatically freed at a later appropriate moment.

I thought we were talking about GC? This goes much further than that. If
you want to re-write strcpy() to manage its own memory (and, I have to
assume, crash and burn, deep inside your program, without you getting a
say-in, if it can't get any more), feel free, but that's not the C
strcpy() any more. At that point, it becomes easier to switch to another
language. I dunno, Lua? Visual Basic?

> But suppose we back up and guess that these reports are not
> typical, and that a more representative number is 1.25 times.

Still a ridiculously high number. In my code, a sane, C-compatible GC
which does not involve Basic-ifying the whole library but only automates
memory handling itself, directly, could increase my productivity by,
perhaps, .1%. And increase its running time by 10%.

I run my code more often than I write it.

Richard

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-15 23:36 +0200
  Re: High level C supercat@casperkitty.com - 2016-07-15 15:17 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:09 +0200
      Re: High level C supercat@casperkitty.com - 2016-07-17 20:02 -0700
  Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-15 15:17 -0700
    Re: High level C fir <profesor.fir@gmail.com> - 2016-07-31 23:55 -0700
  Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-15 23:27 +0100
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:13 +0200
      Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 02:07 -0700
        Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 11:07 +0100
          Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 03:29 -0700
            Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:40 +0100
            Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 11:57 +0530
          Re: High level C BartC <bc@freeuk.com> - 2016-07-16 11:30 +0100
            Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 03:43 -0700
              Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:53 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 07:49 -0700
                Re: High level C Jean-Marc Bourguet <jm@bourguet.org> - 2016-07-16 17:08 +0200
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 09:09 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 16:26 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 18:05 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 20:15 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 23:44 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:39 +0000
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-23 22:58 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-27 14:52 +0000
                Re: High level C Richard Heathfield <rjh@cpax.org.uk> - 2016-07-27 16:29 +0100
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:38 +0000
              Re: High level C BartC <bc@freeuk.com> - 2016-07-16 14:17 +0100
            Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:46 +0100
            Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 12:05 +0530
              Re: High level C BartC <bc@freeuk.com> - 2016-07-17 11:03 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-17 03:39 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 18:20 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-17 14:00 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 23:13 +0530
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-17 20:14 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-17 20:14 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-17 20:45 +0100
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-07-17 21:00 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 09:48 +0530
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-18 00:55 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:25 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-18 11:40 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-18 05:05 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:59 +0530
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:50 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-18 19:07 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-19 11:53 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 11:15 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 14:00 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 15:01 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 15:26 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 15:57 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 17:13 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 18:14 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:20 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 19:46 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-20 02:44 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-20 10:59 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-20 03:07 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-21 01:44 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-21 18:58 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 17:20 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-21 20:52 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 21:14 +0100
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-21 13:23 -0700
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 21:50 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-22 12:52 +0200
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-22 04:03 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-22 23:56 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-22 20:09 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-22 23:49 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-22 20:37 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-19 19:16 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:17 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-19 21:07 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-20 02:36 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-19 07:27 -0700
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 16:27 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-19 08:43 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:14 +0100
                Re: High level C Jean-Marc Bourguet <jm@bourguet.org> - 2016-07-18 10:08 +0200
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 23:04 +0530
      Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 10:18 +0100
    Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:26 +0000
      Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-25 09:21 -0700
        Re: High level C luser droog <luser.droog@gmail.com> - 2016-07-25 10:19 -0700
          Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-28 10:31 -0700
            Re: High level C luser droog <luser.droog@gmail.com> - 2016-07-28 21:13 -0700
              Re: High level C supercat@casperkitty.com - 2016-07-29 09:05 -0700
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-29 09:30 -0700
                Re: High level C supercat@casperkitty.com - 2016-07-29 10:08 -0700
                Re: High level C Ike Naar <ike@iceland.freeshell.org> - 2016-07-29 17:57 +0000
                Re: High level C supercat@casperkitty.com - 2016-07-29 11:50 -0700
              Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 07:16 -0700
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-31 14:34 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 14:55 -0700
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-01 03:10 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-01 07:40 -0700
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-08-01 19:43 +0100
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 10:21 -0500
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-03 13:14 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 08:40 -0700
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-05 09:28 -0700
                Re: High level C fir <profesor.fir@gmail.com> - 2016-08-05 09:55 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:51 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 18:43 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:43 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 00:52 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-10 12:42 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-11 12:24 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-07-31 16:42 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 12:59 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-07-31 17:12 -0500
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 17:12 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 00:54 -0500
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-01 08:08 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 12:58 -0500
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-01 12:25 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-03 08:44 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 11:56 -0500
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 19:29 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-03 13:45 -0400
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 13:23 -0500
                Re: High level C BartC <bc@freeuk.com> - 2016-08-03 19:27 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 21:04 +0200
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-08-03 20:08 +0100
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 16:09 -0500
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 16:06 -0500
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 23:36 +0200
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 19:44 -0500
                Re: High level C supercat@casperkitty.com - 2016-08-03 15:03 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-04 19:17 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 05:48 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 08:24 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 18:30 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 10:34 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 20:50 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:39 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 00:50 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 17:08 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 02:23 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-06 10:03 +0000
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 12:13 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-06 11:10 -0400
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 17:40 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-06 11:56 -0400
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 17:51 +0200
                Re: High level C supercat@casperkitty.com - 2016-08-08 09:12 -0700
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-31 22:07 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 15:05 -0700
                Re: High level C Ian Collins <ian-news@hotmail.com> - 2016-08-03 11:22 +1200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-03 08:50 -0700
  Re: High level C BartC <bc@freeuk.com> - 2016-07-16 01:12 +0100
    Re: High level C Jerry Stuckle <jstucklex@attglobal.net> - 2016-07-15 20:16 -0400
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:17 +0200
  Re: High level C Siri Cruise <chine.bleu@yahoo.com> - 2016-07-16 08:20 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 17:24 +0200
      Re: High level C Siri Cruise <chine.bleu@yahoo.com> - 2016-07-16 09:24 -0700
  Re: High level C carlglassberg@gmail.com - 2016-07-17 14:15 -0700
  Re: High level C carlglassberg@gmail.com - 2016-07-17 14:22 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-17 23:58 +0200
  Re: High level C fir <profesor.fir@gmail.com> - 2016-08-02 13:20 -0700

csiph-web