[racket] Topic number 6, Newbie's Dilemma

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Jul 10 09:46:45 EDT 2013

Start with HtDP/2e. It will teach you a design system. 

If it is too challenging, switch to PP. 

If it is too boring, switch to ROAR. 

If you need more visuals, supplement it with Systematic. 

Don't hesitate to ask questions here. -- Matthias





On Jul 10, 2013, at 9:43 AM, Steve Lett <steve.lett777 at gmail.com> wrote:

> 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
> *************************************
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users



Posted on the users mailing list.