Slashdot Mirror


The New C Standard

derek_farn writes "At a very late stage Addison Wesley decided not to publish my book, 'The New C Standard: An economic and cultural commentary'. Now that the copyright issues have been sorted out I am making the pdf freely available. You can download the pdf (mirror 1). The organization is rather unusual in that the commentary covers each sentence of the C Standard (actually the latest draft of C0X, excluding library) one by one (all 2022 of them). One major new angle is using the results from studies in cognitive psychology to try and figure out how developers comprehend code. The aim being to try and produce some coding guidelines that reduce costs (ie, reduce the time needed and bugs created). The book also contains the results of lots of measurements (over 400 figures and tables) in an attempt to back the arguments being made -- another unusual feature since most software related books don't publish any figures to back up what they say. Other subsections discuss common implementations and differences between the latest draft standard and C90/C++. More background on the project is available from the Inquirer.

23 of 400 comments (clear)

  1. Why would you use this? by Anonymous Coward · · Score: 5, Funny

    C is over with already, geez. Slow, cumbersome, and nobody has a compiler for it. You should be switching to Java by now. It's fast, portable, and the JVM is everywhere. The Novell JVM is the fastest. Dennis Ritchie's time is past. Let the dinosaur turn into oil already and upgrade to the technology that will take us into the 22nd century and beyond. JAVA!

    1. Re:Why would you use this? by satan666 · · Score: 5, Funny

      Puh-leaze! Java-this and Java-that. Why not use a language that is designed for speed: COBOL

    2. Re:Why would you use this? by Anonymous Coward · · Score: 4, Insightful

      C has a lot of shortcomings, like being only weakly-typed, etc.

      Maybe somebody should write a book once about why people should switch away from C to more modern languages.


      You may view such things as shortcomings. I view them as power. Power that can be used for good or for ill.

      Modern languages are all about protecting the programmer from having power. They limit the programmer, tying him or her down. This was done because so many programmers are idiots, true, but never forget that the problems modern languages were meant to solve are all people problems, not computer problems.

      It is people that seem to need object oriented structures, because the language needs to help protect the programmers from their failure to organize data structures in a sensible way and communicate that structure to other programmers. People that seem to require strongly-typed languages, to prevent their errors of inattention while they write code. But all these features are unknown to the CPU -- they've all been stripped away in the compiler, and reduced back to the purity of sequential code. A purity that most programmers can't handle. A purity that C comes closest to (besides assembly, of course).

      As a programmer working professionally for nearly 20 years now, I find it unutterably sad that so many new programmers are let out of colleges having so little idea of how computers actually operate. They're not programmers anymore -- they're a priesthood who poke at the black boxes in certain ways and the boxes "magically" do what they're supposed to. They have as little idea of what's going on as a 5-year-old playing with a gyroscope (and I apologize to any really bright 5-year-olds out there for the comparison).

      The reduction of the use of C in our profession marks the decline of real knowledge in the average programmer.

  2. Mirror of pdf here by derek_farn · · Score: 5, Informative

    There is another mirror of the pdf here thanks to the folk at mirrordot.

  3. Did you consider.... by Anonymous Coward · · Score: 5, Interesting

    ...going to another publisher?

    I used to be a development editor (10-15 years ago) - a real one; i.e. a software developer recruited to improve developer-level books, not a editor carrying the title. I would have been interested in providing up-front assistance to you and helping you get it ready for someone else. Most of the non-textbook (IDG, Que, SAMS, etc.) publishers prefer to have things come in chapter-by-chapter so things can be directed along the way, but with feedback prior to submittal, you could have gotten around that. You could have made some money that way.

    1. Re:Did you consider.... by tcopeland · · Score: 4, Informative

      > You could also consider "self-publishing"

      Right on! You can get a run of 1000 copies of a soft cover book printed by someone like BookMasters for $5K or so, even for a monster like this one. Just stick with a 4 color cover and black/white in the text. And if you can charge $40 or so for this tome, you can cover your printing costs after selling only 150 copies.

      [plug]
      That's what I'm doing with PMD Applied; seems to be working out well so far.
      [/plug]

  4. Re:Thinly Veiled Job Request by DenDave · · Score: 5, Insightful

    So maybe it is a guideline to hobby C coders, new learners, anyone who doesn't use C as professional??

    I think there is a target audience, perhaps you don't fall in the category but that doesn't mean that everyone who dabbles with C is Uber-Geek..

    --
    -if at first you don't succeed, stay the heck away from paragliding.
  5. One Thousand Sixteen Pages? by mbessey · · Score: 4, Insightful

    Good grief. I can see why the publisher bailed on this. I wonder how much they would have had to charge for it?

    -Mark

  6. 1616 by mnemonic_ · · Score: 4, Funny

    That's the number of the beast multiplied by 2.426! Incredible!

  7. Re:Interesting outlook by Kupek · · Score: 4, Insightful

    Computers don't comprehend code, they just run it. Comprehension is an entirely different act than execution. While we build up our comprehension one line (or word) at a time, we're still using our recollection of all previously related code to understand what this new piece of code does. And then, once we think we understand what's going on, I think we often mentally throw out the code itself, and just remember what it does.

  8. I'm waiting for D by winkydink · · Score: 4, Funny

    I don't think this C-thing is going to catch on. :)

    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

  9. C0X by zephc · · Score: 4, Funny

    It seems that some men love C0X, but most men want nothing to do with C0X. The men that like C0X say there's nothing like the feel of the thick C0X standard in your hands.

    --
    "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
  10. Re:can anyone set up a .torrent ? by mwilliamson · · Score: 4, Informative
  11. You don't need new standards by GamblerZG · · Score: 5, Interesting

    What you really need is a new language.

    Before modding me down, think about it. Any programming language is about solving problems, and problems you solve today are different from the ones someone had back in the days of C creation. Moreover, the ways you deal with programming changed as well. IT industry needs new languages, including low-level and compiled ones.

    1. Re:You don't need new standards by dasunt · · Score: 4, Interesting
      Before modding me down, think about it. Any programming language is about solving problems, and problems you solve today are different from the ones someone had back in the days of C creation. Moreover, the ways you deal with programming changed as well. IT industry needs new languages, including low-level and compiled ones.

      I thought about it.

      You first declared that we need a new language based on the assumption that we are solving different problems from a decade ago. (C99 was released about that long ago, and GCC supports much of the C99 spec).

      Yet, thinking about it, you didn't tell us how problems are different from a decade ago.

      Nor did you tell us how these problems present difficulties in the upcoming C0X spec.

      The amazing thing about C is that it has survived several 'languages of the year'. It obviously has some advantages. It seems to me that C is a proven tool in the programmer's workshop. It doesn't solve all problems, but no tool does. However, it solves a lot of problems very well.

  12. Not Again... by uberdave · · Score: 5, Funny

    No. This is obviously the NEW C standard they've been talking about. I haven't read the article, but clearly they've loosend up on punctuation. Also, any comparisons to directives starting with MAX must automatically default to a "less than" comparison.

  13. The Book's WWW homepage by nadamsieee · · Score: 4, Informative

    The book's homepage can be found here: http://www.knosof.co.uk/cbook/cbook.html

  14. Author comments by derek_farn · · Score: 4, Informative
    I have been receiving two kinds of email:
    • Requests for a dead tree version of the pdf. I have invested the possibility of self publishing. The problem is that these companies are not set up for high page counts (1,616) and an A4'ish page size (ok, and self-publishers are currently offering a less than stunning deal; the ROI is small).

      People could try ordering from Amazon, the ISBN number is 0201709171. Perhaps Addison Wesley will change their mind if enough order are received.

    • Information on typos. Please keep sending these to me. I am keeping a log of these so that writers of grammar checkers have some real world data.
  15. Availability through LULU by ewilts · · Score: 5, Informative

    Have you considered making the book available through http://www.lulu.com/? It's a print-on-demand service that allows people an easy way to get a properly bound printed copy of your book, and for you optionally to get some money for your efforts. No cost to you to get set up either.

    No, I don't work for lulu or have any financial connections to them. I just know one of the guys that works there (Jeremy Hogan, formerly from Red Hat).

    --
    .../Ed
  16. At over 1600 pages?! by mariox19 · · Score: 4, Insightful

    Not counting the citations at the end, the book is 1,577 pages of "guidelines." Who's got that kind of time for a hobby? Who, having a job as a programmer, even has the time to read a book like that?

    How about somebody writing a book called The New Writing Standard for Books on Programming? Most of the programming books I own are unecessarily long winded, but this book takes the cake!

    --

    quiquid id est, timeo puellas et oscula dantes.

  17. Pretty Damn Impressive by Anonymous Coward · · Score: 4, Interesting

    I've only been skimming it for a little bit now, but this book seems extremely interesting.

    It probably would have gotten a lot more love during editing by the publisher, as, IMHO, it's fairly difficult to approach and digest in its current form. Maybe I just don't get it yet, but it does seem to suffer a bit due to its organization.

    That said, the information in here is absolutely enthralling. I went over a few of the more subtle parts of the standard that I know fairly well, and I was impressed. The explanations are good, but what I really find compelling are the examples, historical anecdotes, references to different machines and architectures, and juxtapositions with other languages. You can tell that this guy knows this stuff, but more importantly, he's *lived* it.

    The comments about this book not being useful to a "good C programmer" completely miss the mark. A good C programmer -- one that has a true love for programming -- will most likely find this book captivating.

  18. Manifestation of liturgical commentary. by blackest+sun · · Score: 4, Interesting

    At a glance, this is impressive not so much for content as for format. In essence this book is a Talmudic http://en.wikipedia.org/wiki/Talmud breakdown of interpretation.

  19. Why Addison-Wesley rejected this by Animats · · Score: 4, Interesting
    It's clear why Addison-Wesley rejected this. The author is a terrible writer. He has a fondness for run-on sentences, fails to use commas appropriately, and makes several grammatical mistakes per page.

    I'm up to page 132, and so far, it's an introductory cognitive psychology text. A bad one.

    There are 1616 pages of this drivel. Even for someone interested in programming language design, this is a painful read.

    There's room for a good book in this area, but this isn't it. A more useful approach might be to start from Amit Yoran's statement that "About 95% of software bugs come from 19 common, well-understood" programming mistakes", and evaluate language designs against that.