Domain: eckelobjects.com
Stories and comments across the archive that link to eckelobjects.com.
Comments · 11
-
Re:Code rewrite
Isn't there sometimes a happy medium between completely rewriting the whole codebase and continuing to hack it up?
This happy medium is described well by Bruce Eckel in Thinking in C++. He says in the chapter on design (paraphrased): "don't worry that getting some aspects of a design wrong will mean you have to rewrite everything. You won't - properly-written classes shield you from your mistakes." This is from the section that talks about the problems that occur early on in implementation, but applies equally to rewrites.
For example, maybe you can identify certain modules that can be isolated and rewritten, then tested rigorously against the old code to make sure they're functionally identical.
This is called refactoring and is now a widely-accepted industry standard practice for improving a codebase without rewriting it from scratch. The official web site is here. -
Not Open Source, but kinda sorta maybe...
Bruce Eckel, author of both Thinking in C++ and Thinking in Java (and probably a few more) has done something vaguely like this.
While writing them, he periodically posts his work-in-progress online. Anyone may download them for free. He originally posted in html and PDF, but now he posts in Word and html -- some volunteers create PDFs for him. The work is copyrighted.
However, users are encouraged to test his source code, or submit comments, corrections, ideas, etc. He incorporates these into his book. As the author, he maintains overall control of the book.
After publication, the book are available for free download (Word, html and PDF), and dead-tree versions are available for sale. You may freely distribute unmodified downloaded versions.
IMO, the books are pretty good, which makes me believe that this may be a workable model for textbook publishing. I don't know how well it will work for non-tech books, though.
On a cynical note, Bruce Eckel probably (disclaimer: this is totally unsubstantiated) makes his money from his seminars, and if more people have his book, more people will take his seminar, so distributing it for free makes for a good business move.
-
Re:Kids could also try AllegroTry Thinking in Java by Bruce Eckel - free download from Eckel Objects. There's a C++ book on there as well, for maximum OO goodness.
HTH.
-
Bruce Eckel's Thinking In Java is Open Source
Bruce Eckel's Thinking In Java is free as in speech and as in beer for the online version. The entire book is free to download and the author has consented to allowing people to print copies of the book from the online version (which is traditionally against copyright law).
He accepts corrections and updates from most people as well as sample code. In this sense it is free as in speech. Read what people have had to say about the book.
What's really cool is that the book has turned out to be so good that many people I know still ; buy the dead tree version. Best of all it doesn't use any proprietary formats but instead good old HTML.
Second Law of Blissful Ignorance -
Bruce Eckel's Thinking In Java is Open Source
Bruce Eckel's Thinking In Java is free as in speech and as in beer for the online version. The entire book is free to download and the author has consented to allowing people to print copies of the book from the online version (which is traditionally against copyright law).
He accepts corrections and updates from most people as well as sample code. In this sense it is free as in speech. Read what people have had to say about the book.
What's really cool is that the book has turned out to be so good that many people I know still ; buy the dead tree version. Best of all it doesn't use any proprietary formats but instead good old HTML.
Second Law of Blissful Ignorance -
Yes - it does work - in at least one case!
Thinking in Java was released as an 'online' free book. (http://www.eckelobjects.com/javabook.html) It was also released as a hard copy and a cd-rom. Releasing his book for free did not kill the sales - it improved them. I believe he also released Thinking in C++ for free. Check out the page to find more. Links
::http://www.eckelobjects.com/javabook.html' -
on-line versionsJust to reply to my own post...
The book is not only available in printed form, but Bruce Eckel has a web site on the book and related subjects, including the full text in both html (downloadable zip or browsable) and indexed pdf format. However, it's not small and I would recommend going for the paper version if you like it.
-
Re:Not for newbies; what is? (slightly OT)
Further to Fingal's post: you can get the book in electronic form for free from Bruce's website. Although you may wan't to buy it as it's rather large and well worth the money.
-
Re:Algothingies (having just forgotten how to spel
The best introductory Java book I've seen is Beginning Java from Wrox Press (can't remember the author). Don't know how good it would be for a rank newbie, but every other Java book I've seen has been even more newbie-unfriendly. Bruce Eckel's Thinking in Java might be better for an experienced programmer trying to pick up a new language, but might cause a porr non-programmer's head to explode.
-
Re:Open content and the NAGPut that way, your argument makes sense, but there are other ways to look at the situation.
Readers can benefit from open-source books, becuase the text is published on the web, mistakes can be corrected and weak points can be fleshed out before the book goes into print.
The publisher can benefit by being able to judge the way the market will accept the book before commiting to print it. The publisher can also benefit from contributions from the people who download "beta" versions of the book. As long as the book remains available for free, I see no ethical problem with selling the contributed material in a published form, and the publisher gets to sell a better book.
-
Re:Agree but disagreeI'm particularly sore about its inability to really hide implementation details
Bruce Eckel's book Thinking in C++ gave an example of how to do this in his Cheshire Cat example. I would give more details but I am at work many miles from my book. The book is available for free download through his web site.
and since nobody has pointed it out yet,
leave out the operator overloading
... is likely to give longer and less efficient solutionsoperator overloading is nothing more than syntactic sugar, and is nothing more that a function call, so writing:
a = a + b;
is just as effiecient as:
a.add(b);
or as:
a.operator+(b); it is just more (or sometimes less) intuitive to read. This has nothing to do with efficiency.