Razorblade:
bperrybap:
Razorblade,
I'm not seeing how kaor is wrong.
All he stated was:
- WProgram.h is missing (renamed to Arduino.h)
- Many projects/libraries will no longer compile because of this.
Both of these assertions are correct.
No, they are not. Arduino 1.0 has changed more than a filename, and old projects/libraries will mostly not compile because of ALL OF THAT CHANGES (Serial.flush(), Serial.print(byte), write(str), "client == NULL", String class, ...........). Copy-rename Arduino.h (or worse, copying from 022) is a solution for nothing but few sketches.
Stepping way off topic here. But I feel it is time for a lesson in
"The absence of a positive does not prove a negative."
i.e. just because other statements may be true it doesn't necessarily cause previous statements to be false.
Ok so lets do the breakdown:
Is the statement: "WProgram.h is missing" in 1.0 true or false? Hmm.... Well that is true there is no WProgram.h in 1.0
Is the statement: "Many projects/libraries will no longer compile because of this." in 1.0 true or false? Hmmm. Again this is true.
The fact that there are other issues that can keep still keep some things from compiling was never mentioned.
Likewise these statements never claimed that this single patch would solve all the incompatibilities in 1.0
There are several additional issues such as the changes in the Print class and the changing
of the send() function name in the wire library that can also keep things from compiling.
But just because there are other issues that can keep things from working does not change validity of
the above two statements. They are still both true.
IMHO what kaor is demonstrating and what Paul has actually done with his Teensyduino
(which is more extensive than adding a WProgram.h file)
is show that it is not difficult to provide some level of pre 1.0 backward compatibility
through some very simple means.
Will it work for everything? of course not but there is a level of pre 1.0 backward compatibility
that can easily be provided that does work for a great number of existing pre 1.0 libraries and sketches.
The Arduino team intentionally decided not do those things and push all work for dealing
with these incompatibilities out to the end users with no period of overlap.
And like I said in this thread:
While the changes to adapt code to 1.0 are usually quite minimal and easily done for a library
developer, they are often beyond the capabilities of many of the Arduino users.
Try compiling a pre 1.0 library and take a look at the lengthy error output. For a novice it
is quite scary looking and will not be obvious that the error is due to the library simply not including the proper header file.
Arduino has positioned itself as an easy to use system and it has often gone to great lengths
to try to make it easy to use for non programmer types.
Here is the mission statement directly from their main web page:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Intentionally deciding to break 100% of the many years of pre 1.0 libraries floating around in cyberspace by
not providing any backward compatibility for pre 1.0 library code, IMHO,
sure feels like it goes against that core philosophy, especially when there are some very simple things that could be done to allow
many of the existing libraries and sketches to continue to work while not disabling or breaking anything
for the newer 1.0 libraries and sketches.
And if backward compatibility was not a high priority,
why continue to support the .pde extension in the 1.0 IDE?
Supporting both sketch extensions was quite a bit more work than the few other things
that would let many of the pre 1.0 libraries continue to work as well.
While there will always be the "proper" solution that purists may offer (or SHOUT) of "RTFM and then go fix the code yourself",
my prediction is that very soon, there will start to be some writeups available on the WEB
that will show less technical folks how to "patch" their Arduino 1.0 release to continue to use pre 1.0 libraries
so that they don't have continually fix pre 1.0 libraries that they discover out there in cyberspace.
It will be interesting to see how the mpide guys handle the 1.0 transition.
--- bill