login
Header Space

 
 

Cort Dougan: Good Programmers are not Lazy. unpublished draft.

May 23, 2008 - 9:04pm
Submitted by olecom on May 23, 2008 - 9:04pm.


http://hq.fsmlabs.com/~cort/papers/lazy/lazy.nohead.html
Abstract:
In this article I provide a practical analysis of programming practices and education. The phrase ``Good programmers are lazy'' is very often offered to students as a guide to good programming. This statement is very wrong and reflects some of the problems with attitudes in computer science today.

Yes! Something i wanted to hear and was doing rants about all over.

Thank you, mister Cort Dougan, very much!

I didn't like `perl` form the start, didn't know clear reasons for quite some time; now i know another real one!
Programming Perl book:
We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.

I'm glad, that i finally started to publish efficent (fast to complete, thus non CPU global-warming) `sed` and BRE experience against perl and ERE bloat, unreadability, inefficiency. I do that with much more thinking, and i'm not lazy to set up and run benchmarks to help find the best choice. Funny, that size sometimes is bigger, when script is faster. Just like RISC and commonly accepted assembler code unrolling technique. Some tricks are just funny, because i don't know, how i've invented them.

Also i don't see order and efficiency in e.g. autotools, kbuild/kconfig (working on that); tty/console (also working); editors/trivial text tools (need to finally do some coding of `dash` and `minised`).

A must read. Salute, paper-wasting peer-reviewed ignorant "diary cows"!!!
____

re: Synthesis: Operating system of the future?

May 24, 2008 - 8:44am

Synthesis: Operating system of the future?

The design principles of Synthesis, while powerful and generic, still have some major drawbacks. The algorithms are difficult to understand and implement for regular human beings (or kernel programmers, for that matter). As Linux has demonstrated, making kernel development simple enough that a wide variety of people can contribute has some significant payoffs. Another drawback is that two-word compare-and-swap is, shall we say, not a common feature of modern processors. Lock-free synchronization can be achieved without this instruction, but it is far less efficient.

Posted May 24, 2008 3:23 UTC (Sat) by olecom
As a matter of fact eight-year developer of PowerPC Linux port Cort Dougan has citations of Massalin's work in his research and application publications.
[...]

No, i don't want to prove anything, just share information and pumping up SNR in the damned www.

(btw, is it hard to do url wrapping with <a href=...> in <blockquote>?)

Like it

May 26, 2008 - 4:32pm
Anonymous (not verified)

I started to read your text, but I tend to fall asleep (Awake since 16 hours), so I read on tomorrow. But as you say most are programmers or hackers and not software developers. If you do one thing on the easy way it will certainly fuck the next guy who is trying to use or maintain that crap.
I've done three month ago my bachelor of science in business computing, but they only showed us some java hacks and fast, quick and dirty development (more quick solution developing).
Today @work I can see the same bad stuff happen every day... and nobody is complaining.

Good night, I will do more reading tomorrow!

back to harvesting

May 26, 2008 - 4:51pm

Thanks.

Funny thing is, that i after many educational years i'm going back to country side to (most probably) harvest...

BTW, Val Henson, author of LWN article about "Synthesis" above, actually helped in Cort's Vegetable Garden.

Gee, i'm confused who is who now and what "Synthesis" article actually means; maybe it's signal for today's kernel hackers?

I think you are missing the point

May 27, 2008 - 1:35pm
Anonymous (not verified)

Laziness is cited because programs are often written to automate repetitive tasks. A lazy programmer will automate the stuff, which leads to better programming skills through real world applications, since if something isn't automated yet, it's probably because no one would or could figure out how to do it. Likely this is because nobody was lazy enough to not want to do the same dull IQ sucking repetitive tasks day after day.

If you do, you learn something and make everyone elses life easier, which leaves more time for you to focus on more intellectual pursuits, like writing a better tree search algorithm or implementing better code security, as opposed to always being reactive because someone forgot to do something and data is spilling all over the floor.

If you are not lazy and do the manual stuff by hand instead of automating it, that will quickly become all you ever do, boring repetitive tasks, which will cause development skill rot.

Laziness is probably the most important oft cited programmer characteristic. It's far more important than hubris or impatience for freeing up time to do more constructive stuff than vacuuming a database or checking your patches in one by one (for example).

Therefore, a lazy programmer is usually a very productive one. Someone who is not lazy and doesn't automate things, will find themselves doing very little coding before long. They'll eventually be overwhelmed with menial repetitive tasks and be very unhappy and stressed out. I'm convinced that the IT workers you see in the news, who shoot up the office, are doing so, in large part, because they weren't lazy enough, and lost "it" due to stress.

-AC

seem like you didn't read

May 27, 2008 - 8:04pm

seem like you didn't read article.

Automation != lazyness, e.g. proper design and documentation (no, not that one, but that about what clever-you were doing), test cases, etc.

As for lazyness, where is *any* automation in linux `make` stuff? Always stupid typing. Stupid make CONFIG_DEBUG_SECTION_MISMATCH=y. Stupid <code></code>, &lt;code>, &amp;lt;code>...

No, i'm with Cort. There're too many things today, that are too stupid to be so for last 20 or even 30 years.

another thing that happened

May 27, 2008 - 8:42pm

another thing that happened to me (and many) is:

developer: [I had a discussion with Linus about that some years ago if you want to search the archives]

WTF? If conversation, originally about other matter, went to a particular question, then answer like this is... telling much about lazyness and self-organizing. If it is so, but not just disrespect to peer, then i'd say it is lazyness to do simple `grep` on own archives, knowing time, subject and keyword.

give a message-id, so by `lynx "http://mid.gmane.org/$mid"`
i will have whole damn thread.

Or i must search for something in the middle of nowhere without even time reference? Using a search engine is another craft. And there's no 100% chance, that after shuffling all garbage one will find what was requested, even with reasonable search terms...

No! That's why i hate vger without dumb NNTP archiving backend. Gmane is awesome!

Somebody doing good archiving and catalogization is another problem. Seems like no one tech. doc. writer wasn't employed by linux-foundation.org, but there were talks about it. But if main developers and maintainers cared about own wisdom, e.g. were not lazy to publish not in lkml noise own comprehencive reviews, designs, propositions, patches, etc., then thing could be much better.

Sometimes i open another source file and see kust useless GPL notice and looong code with random /* arh, ugly but works */comments. "I was clever to do it -- be clever to understand it". I don't need prose in patches' description. I need simple, but not simpler, comments on top of the code to grap design bones, simple comments on-the-way to implemetation meat.

On some point patches are useless noise. Where's process, where are tools? Same root-holes in your new shiny kernel over and over again?

There are certifications for

June 9, 2008 - 9:44am
Anonymous (not verified)

There are certifications for programming on the market. The author of the article assumes that developers of Open Source projects don't do testing. That's a blanket statement, just because he's seen it in the projects he's been involved with, doesn't mean that that can be applied to all Open Source software projects. OpenBSD, for instance, is known for going through a solid code auditing process.

certification

June 10, 2008 - 1:05am

And who are those 'certification specialists'?

As for OpenBSD and Linux from security vs ego-politics POV, please see latest Brad Spengler's http://lwn.net/Articles/285461/ comment.

Also look at Linux Foundation's "State of Linux Panel Kernel Hackers"
ftp://flower.upol.cz/Linux/Linux_Foundation/video%3A_Spring_2008_Collabo...

All they talk is about bugs, kernel hackers...

Sorry, that are facts. Programming handcrafting isn't industry, even if someone milks money from 'certifications'.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary