Reaction for: Literate Programming by Jon

Well, it is certainly good to see someone who is excited about the idea he is writing about. I was, and continue to be, quite skeptical about the wonders of WEB, and how it can revolutionize programming, and make programs more readable, more effecient, and better designed. Considering that this was written in 1984 and I've never heard of it before leads me to believe that it never really caught on.

However, I am very interested by the idea that it is based on. Students (and I assume professional programmers as well) rarely write programs with readability as a primary concern. Most of the programs I have either graded or written were coded in order to become functional, and usually the author goes back when the program is done and comments it. Recently, I have gotten more into the habit of making some comments while coding, but they are by no means extensive, and can only offer a map of what my program is doing if you already understand it fairly well.

So, I do believe that readability of programs is something that is sorely understressed. This is especially important in a class like cs32, which is trying to teach software engineering. Part of the process of software engineering is having other people look at your code, and attempting to use, rewrite, or copy it. Thus, someone looking at it would greatly benefit by knowing what you were thinking when you wrote it. So I definitely see the motivation behind WEB.

However, I do not necessarily believe that it would make programs easier to write and debug. I think writing down the design you want to give the program before starting is very important, but writing your program as some sort of essay, containing code intermingled with prose, does not seem useful. To me, it seems like it would make debugging much more difficult, and the entire coding process to take longer.

I think that this method could have one very useful application though. Since it does make a program so much more readable, I think it would make an excellent teaching tool for instructing on how to program. If a student could look at the code of a program, and see the thought process that went along with it at the same time, they could gain additional insight on how to think about tackling a programming problem. While I do think that WEB is the ideal method of doing this, I think the idea holds a lot of merit.


Reactions


MY NAME: Matthew B. Amdur

MY COMMENTS

Just a thought about what Jon said, perhaps we can see how a thoughtful program turns out. The goal of a thoughtful program is to produce something that a beginner can look at to understand the programming process. How we design and comment this might giv e a better idea on how to implement documentation and code.


MY NAME:Saul Lehigh Nadler

MY COMMENTS

I completely agree. It never clicked in my mind that a thoughtful program and this article almost completely overlap. We just will be doing it without a system that aids us.


MY NAME: Danah Beard

MY COMMENTS

You hit on a common problem in educational atmospheres- people are running against the clock. As a result, they often feel that functionality is most essential and usually completely neglect documentation. Although I have experienced that at Brown, I wonder if any school emphasizes commenting and style. How can we convince students that a well documented program is most essential? Is it most essential when the clock is ticking?


Jon:

(Reaction to Danah's reaction)
I think that functionality is by far the most important thing when the clock is ticking. This will probably be true even if we change the grading scheme to emphasize commenting more. When putting the amount of time into a program as you do in a class like 15, there is a great deal more satisfaction received in getting a program to work correctly than there is in knowing that your code is readable. Also, this is something that is not just in academia. When you are working for a company with deadlines, getting your code to work is way more important than having it look nice. In fact, it could mean your job.


Amanda:

I THINK I DISAGREE.
I think that the code is not to make beginners find it easier but to make skilled programmers a little more aware of what the coder before them did.

[BACK]