Slashdot Mirror


A New Bible For Programmers?

KZigurs writes "The wonders of online publishing... If you are ready to take on a heroic task and read thru all 976 pages of Concepts, Techniques, and Models of Computer Programming (draft) (pdf file, 3MB, intro here) written by Peter Van Roy and Seif Haridi you won't regret it. Just finished reading it and I feel like I have read the Bible. And who knows? It has the potential, and since current de facto books about programming are aging with increasing speed it very well may become one. (Please read the intro to get more detailed outlook at topics covered)
Anyone before heard about Oz?"

9 of 117 comments (clear)

  1. Newer Copy Available by erasmus_ · · Score: 5, Informative

    I'm not sure why the article links to the April 26th draft version of the book, when the intro page itself has the link to the much newer June 5th version.

    http://www.info.ucl.ac.be/people/PVR/booksingle.pd f

    I look forward to reading it from the intro, however, might be really worthwhile.

    --
    Please subscribe to see the more insightful version of th
  2. Google's Cached HTML Version by IdleMindUI · · Score: 3, Informative

    It appears that the site is already...umm...slashdotted. Google's cached HTML version can be found here.

  3. Another Bible by Ann+Coulter · · Score: 4, Informative
  4. Already slashdotted? by stienman · · Score: 3, Informative

    The google cache of the pdf (converted to HTML by google) is here.

    -Adam

  5. Mozart & Oz in the book by joelparker · · Score: 4, Informative
    The book uses the Mozart Programming System

    Mozart & Oz are well-developed and worth a look--
    your programming may improve because of them.

    Cheers, Joel

    p.s. here are quick excerpts:

    The Mozart Programming System is an advanced development platform for intelligent, distributed applications. The system is the result of a decade of research in programming language design and implementation, constraint-based inference, distributed computing, and human-computer interfaces...

    Mozart is based on the Oz language, which supports declarative programming, object-oriented programming, constraint programming, and concurrency as part of a coherent whole...

    We have developed many applications including sophisticated collaborative tools, multi-agent systems, and digital assistants, as well as applications in natural language understanding and knowledge representation, in scheduling and time-tabling, and in placement and configuration.

  6. Mirror Here by Bluetrust25 · · Score: 5, Informative

    It's mirrored here courtesy of SurveyComplete.

    Incedentally, I highly recommend the book Code Complete: A Practical Handbook of Software Construction by Steve C McConnell. It tought me more about programming than the rest of my computer book bookshelf!

    Another great resource is Safari. It's a web service that for a fee, allows you to view O'reilly, Que, and Sams books online. I find the code search feature to be invaluable. Cheap way to read technical books.

  7. Re:OutDated? by Arandir · · Score: 4, Informative

    Just like long division, there are times when you need to write your own search or sort algorithm. Why?

    1) Sometimes it's easier to write your own sort than to write a weird ass adaptor for your weird ass data.

    2) Sometimes "good enough" isn't "good enough" and you need that extra 15% performance increase you get for writing a search/sort customized for your data.

    3) Actually knowing how stuff works is good for the brain. After you learn basic bonehead algorithms, take some time to learn long division as well.

    4) Just to prove that you aren't a code monkey destined for the dustheap of history when you turn thirty.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  8. Why understanding the basics still matters by Anonymous+Brave+Guy · · Score: 2, Informative
    I'm not saying that it is useless to know how sort algorithms work, but suggesting that it's relevant in the day-to-day work of a typical software developer (which is what you seem to be implying) is very misguided, in my opinion.

    On the contrary. In my experience, an awful lot of programmers, mostly those who are self-taught but don't realise what they're missing, frequently choose an incorrect data structure or algorithm even for simple things like sorting and searching. If you're working in a field where performance matters at all, that can be crippling.

    I agree that hardly anyone should need to write the usual sorting or searching algorithms from scratch today. It's almost invariably easier and safer to use one from a library, though of course there are a few legitimate exceptions. But you do need to understand the basics of the algorithms you use, their performance characteristics and the limitations they have.

    This is particularly important with the growing dependence on library code, because most libraries provide only a few "typically best" algorithms. Sometimes an introsort variation isn't the best, or even close, but only the programmer who knows about his own data and who understands the range of algorithms available is able to judge when an alternative is more appropriate.

    Just out of curiosity, do you know how a transistor works? I'd wager that most folks around here don't, any more than they could write an implementation of QuickSort without having to look it up.

    No, but I could tell you off the top of my head the algorithms for intro sort, quick sort, merge sort, radix sort and several others, and implement them for you in a procedural or functional language without a whole lot of reading. I work with performance-critical applications every day, and you'd expect nothing less from a professional in my position.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  9. Cautious first impressions by Anonymous+Brave+Guy · · Score: 2, Informative
    Is this book really as authoratitive as it tries to appear?

    I had a quick scan over it, and while I'm reluctant to judge on first impressions, I couldn't help feeling that it had a lot of breadth but not much depth. It struck me as somewhat similar in style to the wizard book, though obviously with wider coverage.

    I had the same immediate reservation as you did: the OOP section seemed weak compared to established "classics" in the field. Failure to mention things like LSP is unforgivable in a book aiming for a theoretical approach. The offhand comment about "whatever that means" in reference to sending messages to everything didn't much help, either; I'm guessing anyone who's used a language like Smalltalk or Ruby would be quite comfortable with the idea.

    All of that said, there appears to be a lot of useful and worthwhile material in the book, and I'll certainly be dipping into other parts of it as time allows over the next few days. It's only a preprint, and I only looked at one section in any real detail at all, so I'll give it the benefit of the doubt for now.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.