I'm I the only one who fead up of library that work only with the current version of the IDE and stop working as soon that they come up with a new version?
Which library? The only one I use regularly is SPI, that continues to work. Is Serial a library? That works too. I'm still at 1.0.5 tho.
Well many. But to give example, the OV528 library, that I tryed lately. I'm not necesarely blaming the IDE makers, it's more the people who make the library that don't plan ahead, and or don't update there work as time goes by.
I could see libraries not being updated. Hard to plan ahead for unknown IDE changes.
Well yes and no, take the softwareserial librairy, it was pretty obvious that it would be integrated in the IDE soon or later, with some change. So those who made the OV528 should of not encapsulate the none IDE version of the softwareserial library in the ov528 library. Now since some functionality of the software serial as change, and since the IDE does not allow to run the old version, well the ov528 library is unusable, or need to be totally fixed.
You understand what i mean?
And that is just one example among many.
Bummer, for sure. But at least it's open source. It quit working due to an API change? Well then, fix it. :)
I'm actually fixing this example I gave. And my philosophy is clear, I never, ever use 3rd party library to make my own library. I ither make my own, or use the build in one that come with the IDE.
Also, I alway start by making a code that does not need the library I make, so if thing change in the IDE, people can under stand my work without going in a maze.
Once that code is made, then i put what can be in a library , in a library. Finally I package the original code with the library.
That is what I call nice work. ;)
I realize you just need to rant to vent your frustration, and that’s absolutely OK. 8)
However … basing libraries on other libraries is not in and of itself a bad practice. See: Linux. Yes, it’s a huge PITA when an API changes, and it cascades brokenness all the way down to the application using the library that uses the library that uses the library… etc etc.
But, that minor inconvenience can be solved in one of two ways*: 1) Use an environment where you can control the version of all the required libraries. (You can do this by using an older IDE that allows old SoftSerial.) 2) Be willing to patch or find patches for the libraries in question. (Is it difficult to update your troubled library to support the new SoftSerial? Probably not too bad, but I’ve never actually used SoftSerial before, so I don’t know. Most Arduino libs tend to be pretty small though.)
In exchange, it gives you that one huge benefit: Applications become wrappers around pre-existing functionality that is there for the taking. This is the foundation that Linux and Arduino are both dependent on, and the only reason either can be feasible as a free product.
- There’s also the third option, which Windows uses. Store every version the OS has ever seen, so any combination of libraries is available at all times – whether it’s needed or not. This of course is no panacea either. It takes its toll on the size of the WinSxS folder, for e.g.
I realize you just need to rant to vent your frustration, and that's absolutely OK.
Yah, thank you for reading this. :p