OO Programming Newsletter #30 from Bruce Eckel August 2001 = = = Contents = = = * IntelliJ: Best IDE I've seen * New interview online * Thinking in C++, Volume 2 updated * Creating List of Design Principles * New programming language: D * Moving server to colocation facility * The Seminar Schedule: -- Objects & Patterns August 27-31 -- Thinking in Patterns Working Session, September 3-7 -- London Thinking in Java seminar, October 15-19 -- SF Bay area Thinking in Java seminar, November 5-9 -- J2EE, SF Bay area November 12-16 -- New "Design Patterns Applied" seminar with Alan Shalloway, December 3-7 in Seattle See the Calendar for the current schedule: http://www.mindview.net/Calendar =================================== * IntelliJ: Best IDE I've seen I've never used an IDE to create Java code. I've been drawn to JBuilder and heard many good things about it, but I've always ended up just doing everything in my text editor UltraEdit (www.UltraEdit.com). However, last week at the J2EE summit (an invitational technical summit that I organized with Martin Fowler), Martin Fowler and Rickard Oberg (two techies I trust) demonstrated/raved about their favorite Java editor, and I was convinced. IntelliJ, available (for $395) at http://www.IntelliJ.com, does so much for you that I'm convinced it's time for me to use a Java-specific editor. Enough said -- check out the demo. =================================== * New interview online Here is the raw text of an interview that will eventually appear in a more refined form on the InformIT web site: http://www.mindview.net/Etc/About/InformITRaw_html =================================== * Thinking in C++, Volume 2 updated After a very long quiescent period, Volume 2 of Thinking in C++ has been updated. When you go to: http://www.mindview.net/Books/DownloadSites Make sure that the download site you find specifically says version 4.0, otherwise you'll be getting the old one. If all else fails, you can get it directly from: ftp://www.mindview.net/pub/eckel/Mirror/TICPP-2nd-ed-Vol-two.zip This is the re-organized version of the book that Chuck Allison and I are co-authoring (which primarily means that Chuck has taken over the task of finishing it, bless him, with support from me). The book should be finished by July, 2002, if all goes well. We'll be putting it on the web in the meantime, and in perpetuity. One of the things that has been added to this version of the book is a "poor man's BackTalk," with hotlinks at the end of most paragraphs so you can make a comment on that paragraph via email and Chuck will know exactly which one you're talking about (I'm not sure why it took me so long to figure out how to do "the simplest thing that could possibly work"...). All you have to do is hit the link after the paragraph you want to comment on, and an email will be created for you with the paragraph ID in the subject line. This will make it much easier for you to send comments, and for Chuck to deal with them. The code is organized with makefiles for every subdirectory, and a master makefile to build everything and to run the programs (to validate them) as the beginning of building full unit testing into the process (there is now a unit testing framework in the book). The makefiles support the free Borland C++ 5.5 compiler for Windows, Microsoft VC++, Gnu g++ 2.95 (currently distributed with Cygwin) and Gnu g++ 3.0 (I've only been able to get it to install properly under Linux; I've installed it under Cygwin but it doesn't create correct executables -- if you know the answer to this, please email me). Things that won't compile under a particular compiler are automatically excluded from the build process, and tagged in the book as such so you don't expect them to. =================================== * Creating List of Design Principles For "Thinking in Patterns," I'm trying to create a list of fundamental design principles to help guide people towards patterns that might be solutions to a particular problem. For example, you might say "we need a barrier here" or "we need a transaction here." This is in the very early stages of formation, so I'm just brainstorming for concepts right now. The current list includes: Gathering Localization Separation Hiding Guarding Barrier Variation in behavior Notification Law of Demeter Transaction If you have other insights, please email me. Thanks. =================================== * New programming language: D I've been working a little with Walter Bright, who wrote the first C++ compiler for DOS, on a new language he's designing called 'D', which is meant to be a successor to C++ in particular, but also has a lot of features that Java programmers and users of other languages will be interested in. I think it has great potential. You can find the current specification at: http://www.digitalmars.com/d/index.html And you can join the newsgroup here: http://www.digitalmars.com/NewsGroup.html =================================== * Moving server to colocation facility For the second time within a few months, a company providing the DSL line to my server is going out of business, so the server will be moved to a colocation facility. When this happens the server will be down for as long as a day or two. If you can recommend a good colocation facility in the San Diego area (where the server is located) please email evan@theUnixMan.com (Evan does all my server maintenance, and is available for consulting). =================================== * The seminar schedule We have confirmed the following seminars, and still have seats available: --- Objects & Patterns August 27-31 This is team taught by Bill Venners and myself, based on both of our books-in-progress, and it's always a great experience. The next one won't be until early next year (date TBA) so this is your last chance this year. See below for discount if you participate in the working session. http://www.mindview.net/Seminars/ObjectsAndPatterns/JavaDesignPatternsIdioms.html --- Thinking in Patterns Working Session, September 3-7 The "Thinking in Patterns Book Working Session" was so great that I'm already planning a repeat. This one takes place the week right after the Objects & Patterns seminar, and to strongly encourage you to participate in both events I'm offering a $300 discount on the Objects & Patterns seminar if you also attend the working session. If you do not attend the seminar, the working session alone is $300, which will cover costs. In the first session we focused on filling out the basic set of patterns in the book, adding the ones that I had missed. In version 2, I want to focus on examples that demonstrate the evolution of designs, adding and changing patterns as the problem is better understood over time (similar to the last chapter in the book). This should be even more fascinating than version 1. http://www.mindview.net/Seminars/WorkOnPatternsBook/ ---Thinking in Java seminar We believe that this is the best in-depth introduction to Java that you'll find: http://www.mindview.net/Seminars/ThinkingInJava/Java.html > London, October 15-19 Taught by Jeremy Meyer, one of my associates --- Design Patterns Applied, December 3-7 With Bruce Eckel and Alan Shalloway (author of "Design Patterns Explained"). A hands-on design course focusing on the process of creating and reviewing designs. Not language specific, but you should have a background in at least one OO language. http://www.netobjectives.com/c_dpa.htm You can find all the seminars listed on the calendar: http://www.mindview.net/Calendar ___| Until Next Time... |________________________ Java programming questions: http://www.mindview.net/Books/TIJ/JavaQuestions.html Speaking & Seminar schedule: http://www.mindview.net/Calendar/ Anyone can sign up for this free newsletter by sending an email to join-eckel-oo-programming@earth.lyris.net. Bruce Eckel http://www.mindview.net