[racket] Topic number 6, Newbie's Dilemma

From: Steve Lett (steve.lett777 at gmail.com)
Date: Wed Jul 10 09:43:47 EDT 2013

Matthias

I did basic BASIC on Tandy Color Computer 2 many years ago. Never had the
right opportunity to learn programming since.

Steve
On Jul 10, 2013 11:31 PM, <users-request at racket-lang.org> wrote:

> Send users mailing list submissions to
>         users at racket-lang.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.racket-lang.org/users/listinfo
> or, via email, send a message with subject or body 'help' to
>         users-request at racket-lang.org
>
> You can reach the person managing the list at
>         users-owner at racket-lang.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of users digest..."
>
>
> [Racket Users list:
>  http://lists.racket-lang.org/users]
>
>
> Today's Topics:
>
>    1. Re: Why experienced programmers don?t use comments?
>       (Neil Van Dyke)
>    2. Re: Why experienced programmers don?t use comments?
>       (Richard Cleis)
>    3. Re: Why experienced programmers don?t use comments? (Ben Duan)
>    4. define-generics #:defaults (Bert De Ketelaere)
>    5. Newbie's Dilemma (Steve Lett)
>    6. Re: Newbie's Dilemma (Matthias Felleisen)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 09 Jul 2013 12:34:45 -0400
> From: Neil Van Dyke <neil at neilvandyke.org>
> To: users <users at racket-lang.org>
> Subject: Re: [racket] Why experienced programmers don?t use comments?
> Message-ID: <51DC3BA5.3040308 at neilvandyke.org>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> Five categories of comments I currently use in Racket (refined over the
> years, and still sometimes refined further):
>
> 1. Comments prefixed with "TODO:", for things that either I know have to
> be done, or that I might want to consider later.  I often prefix the
> former as "TODO: !!!", for historical reasons.  I think that TODO
> comments are more important than it seems most people think they are.
> The funny thing with "TODO" comments is that they often persist in the
> code much longer than you'd think they would.
>
> 2. Comments worded imperatively to give a higher-level description of
> what is being done in the following lines of imperative code.  In an a
> bit of code with complicated branching, I'll sometimes start each block
> with an imperative comment with a summary of conditions that got us
> there, including contrastive emphasis, such as "Foo is *not* a bar, but
> baz *is* null, so frob with the X factor."
>
> 3. Comments prefixed with "Note:" to give an aside that explains why we
> are doing something the way we are doing it.  Use this means of
> conveying the info when it feels better than conveying the same info as
> rationale in an imperative comment.
>
> 4. Disable code.  Usually these should be removed eventually, although
> occasionally I keep them in because certain code needs its unit tests
> commented-out because the code normally can't depend on the unit test
> framework.
>
> 5. Markers, such as simply ";;" for separating parts of a big list of
> "require" forms (e.g., "for-syntax" vs. standard libraries vs.
> non-standard libraries vs. modules that are part of the same library),
> and sometimes ";;EOF".  These aren't all that useful, and they're often
> kinda ugly, but I still sometimes find reason to do them.
>
> The other day, I also used "TODO: !!!" all-caps comments as placeholders
> for someone else, in some code for a client, who wanted me to make an
> app, and then they would add in a few bits of code very specific to
> something in which they were expert.  Normally, I would put a
> library/framework border there, but in this case, working on the same
> code file and using placeholder comments made more sense.  I don't
> expect to do this very often, so I'm not giving this category a number.
>
> Note that descriptive identifiers and keywords can go a long way towards
> readable code that does not need hardly any comments.  I have written
> some code (for which audit-ability was especially important) that reads
> as close to English pseudocode, and most comments would be superfluous.
>
> Neil V.
>
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 09 Jul 2013 06:55:18 -1000
> From: Richard Cleis <rcleis at me.com>
> To: Ben Duan <yfefyf at gmail.com>
> Cc: users at racket-lang.org
> Subject: Re: [racket] Why experienced programmers don?t use comments?
> Message-ID: <F8220FC8-03B0-4685-B992-BD2F89A3EEF7 at me.com>
> Content-Type: text/plain; charset=windows-1252
>
> We continue to edit, comment, and document code as if it will be printed
> on paper and read from top to bottom. Instead, editors should manage
> templates for comments and documentation that can instantly be controlled
> (clutter switches, arguably). The software leads need a way of affecting
> the requirements that these aids impose.
>
> I am an experienced programmer and believer in the teachings of HtDP, but
> it is impractical to convince others of the benefits of taking the time to
> (for example) describe inputs and outputs... as schedules are gradually
> morphing into nonsense. Furthermore, changing arguments as code evolves
> screws up whatever comments and documentation have already been made.
> Development environments that aid programmers in maintaining such
> non-compiled portions of programs have been attempted, but they are hardly
> good enough or universally accepted.
>
> I suppose that was a long way of saying that it is too difficult maintain
> thorough comments, so experienced programmers instead use their heads to
> minimize them.
>
> rac
>
>
>
> On Jul 8, 2013, at 3:41 PM, Ben Duan wrote:
>
> > Dear All,
> >
> > I have a question here. There?s an extensive use of comments in HtDP.
> But there are few comments in experienced programmers? code, for example in
> racket?s source code. Why is that?
> >
> > Thanks,
> > Ben
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
>
>
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 10 Jul 2013 14:34:16 +0800
> From: Ben Duan <yfefyf at gmail.com>
> To: users at racket-lang.org
> Subject: Re: [racket] Why experienced programmers don?t use comments?
> Message-ID:
>         <
> CANWW-jKH61E-fjPmCWvq-QhPajcGBDTXirbqFnpVm6jhKPQEVQ at mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
>
> Thank you all for your great insights. I've learned a lot through your
> books, your documents and your discussions here. You have saved me a large
> amount of time figuring out the better way for programming.
>
> Thanks again,
> Ben
>
>
> On Tue, Jul 9, 2013 at 9:41 AM, Ben Duan <yfefyf at gmail.com> wrote:
>
> > Dear All,
> >
> > I have a question here. There?s an extensive use of comments in HtDP. But
> > there are few comments in experienced programmers? code, for example in
> > racket?s source code. Why is that?
> >
> > Thanks,
> > Ben
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.racket-lang.org/users/archive/attachments/20130710/7e5764a0/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 4
> Date: Wed, 10 Jul 2013 11:03:35 +0200
> From: Bert De Ketelaere <bedeke at hotmail.com>
> To: "users at racket-lang.org" <users at racket-lang.org>
> Subject: [racket] define-generics #:defaults
> Message-ID: <DUB116-W943D5D0E25C5473FD168CCC77A0 at phx.gbl>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Helo,
>
> in the documentation it is mentioned that the syntax for define-generics
> #:defaults is the same as for struct #:methods:
>
> http://docs.racket-lang.org/reference/struct-generics.html#%28form._%28%28lib._racket%2Fgeneric..rkt%29._define-generics%29%29
> and #:methods specifies that define/generic can be used to bind the
> generic method:
>
> http://docs.racket-lang.org/reference/define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29
>
> but unfortunately using define/generic in #:defaults is a syntax error.
> Is it possible to access the generic method from inside #:defaults
> definitions?
>
> Groeten,
> Bert
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.racket-lang.org/users/archive/attachments/20130710/5d13deae/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 5
> Date: Wed, 10 Jul 2013 22:42:42 +1000
> From: Steve Lett <steve.lett777 at gmail.com>
> To: users at racket-lang.org
> Subject: [racket] Newbie's Dilemma
> Message-ID:
>         <CABg+j4tzyKOfwMH3rM39erdCgLu=
> Nwn_OZ9f_uKFahH4AhtaLw at mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> I recently downloaded four things. Picturing Programs, How to Design
> Programs, Realm of Racket, and Intro to Systematic Program Design, from
> Coursera.
>
> My question is, in which order should I complete these? And why?
>
> Thanks, Steve
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.racket-lang.org/users/archive/attachments/20130710/65d6b53f/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 6
> Date: Wed, 10 Jul 2013 09:29:47 -0400
> From: Matthias Felleisen <matthias at ccs.neu.edu>
> To: Steve Lett <steve.lett777 at gmail.com>
> Cc: users at racket-lang.org
> Subject: Re: [racket] Newbie's Dilemma
> Message-ID: <CB50532F-A03B-4057-A9E9-81C55B7509C5 at ccs.neu.edu>
> Content-Type: text/plain; charset=iso-8859-1
>
>
> What is your (level of) programming experience?
>
>
> On Jul 10, 2013, at 8:42 AM, Steve Lett <steve.lett777 at gmail.com> wrote:
>
> > I recently downloaded four things. Picturing Programs, How to Design
> Programs, Realm of Racket, and Intro to Systematic Program Design, from
> Coursera.
> >
> > My question is, in which order should I complete these? And why?
> >
> > Thanks, Steve
> >
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
>
>
>
>
> End of users Digest, Vol 95, Issue 22
> *************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130710/5cd89214/attachment.html>

Posted on the users mailing list.