Arduino 1.0 , Is it the Arduino Team's "Vista"?

I agree, updating of the core may have been needed. But a fundamental rule of classes ( the core libraries ) is not to break the interface. You should be able to extend the library interface to support new methods, overload old ones, or change the internal code with out affecting the end users experience. The class object model is designed so people using it do not have to know how it works. By ignoring backwards compatibility and changing the interface everyone has to have knowledge of how the changes affect the class. This may be a key factor in users avoiding the library altogether as they cannot understand the concepts.

Then again, novice programmers may find it just as confusing having multiple overloads of the main functionality.

Either way, if the classes weren't broken they should have been left, as the addition of things like buffered operation over non buffered is just an improvement which could have used a simple run-time or compile-time toggle to enable / disable. Or simply add a whole new class implementing the new method.

'bperrybap' has a good point, the novice user will be encouraged to stay with 0023 until a good portion of user made libraries are fixed to work. This also applies to lazy people like me who cannot actually be bothered changing 25 documents for no particular/noticeable advantage.

And a simple fix for most, why wasn't WProgram.h left in with a single line: #include "Arduino.h", fixing most problems that aren't relying on a library.

I have a fair bit of code now, my source only compiled 2 bytes bigger on 1.0 however, nothing close to 4k.

Anyway, I like to debate stuff just as much as the next person, but I don't see the Arduino team taking a step backwards now.