What will happen if I'll use the old command based programming method?

We are having some struggles using and understanding the new command based approach. And I wonder what’s going to happen if we just use the old command based approach. Am I going to have struggles with the FMS system in competitions?
Thanks in advance.

1 Like

if it works with WPIlib 2020.1.2, it’ll work in the competition

I’m afraid that the robot will not work in the competition because we will use the old command approach.

Anyway, I’m hoping it will not going to cause any problems.

The old WPILIB Command-Based Framework is Deprecated. Which means its not guaranteed that if any new bugs are found that they will be fixed, but otherwise it should still work just fine, otherwise they wouldn’t have left it in the release.

Personally I’d recommend trying to get on with the new Command Based Framework as your team will have to at some point regardless, else make some other radical change to your programming style by not using the Command-Based Framework at all. There is the documentation on the new framework, plus around a dozen examples of robots programmed in the new framework that personally were very helpful in understanding how things are expected to be done in practice. Plus you always have the highly informative community on Chief Delphi!

Command Based Framework Documentation: https://docs.wpilib.org/en/latest/docs/software/commandbased/index.html

New Command Based Framework Examples: https://docs.wpilib.org/en/latest/docs/software/examples-tutorials/wpilib-examples.html#command-based-examples


I agree that my team in some point will have to use the new approach but I dont think it’s the best thing to do right now. Thank you for the detailed response.

We’re most likely to stick with the old way this year because we are familiar with it and have code we can reuse that uses it. Off-season we will make the transition to the new framework. That will allow us to play with it without the pressure of competition.

The old command based system will still work but is deprecated. I suggest you learn the new command based system. It is a bit cleaner and guaranteed to have issues fixed, I was able to learn on my own with no other help. I looked at some other teams code and was able to figure it out. As well as the demo projects.

OP, if you’re curious, check out the definition of Deprecated, with respect to computer science things. @gixxy’s got it right for sure!

In general, my thoughts:

A general concern about “might not work” isn’t a valid reason for decision making - more precise data on exactly why it wouldn’t work is what you’ll want.

Here’s the thought process I would take: Moving up to “latest” on anything is generally best practice. However, unless you’re in a few specific fields (hello computer security), it’s rarely more important than “making something that works”. If there’s serious and credible doubt the team will be able to learn the new framework in the coming weeks, but is confident the old one will work, that’s a good argument to use the old one.

Separately, dedicate offseason time to learning and re-writing the robot code in the new framework, in prep for the 2021 season.

All this is under the assumption that WPILib folks are following the industry-standard definition of “Deprecation”. Personally I trust them to do so, but I have not verified it is the case.

You can reach out to the WPILib folks, who can give you more direction on exactly what is and is not supported

1 Like

Thanks, I think you right about moving to the latest is the best. But in this short period of time I don’t think that the rest of the team could understand how to work with the new command based. In addition the rest of the team want us to operate the mechanisms for testing and developing better versions therefore if we move to the new command based it’s just going to slow the team down.

1 Like

The old framework is still usable at competition. The WPILib team tries very hard to not make major breaking changes in a single year because of the limited time to learn during a build season. We deprecate first at least one year before removing, and in many cases we wait longer than that. When adding the new command framework, we were very aware that the old framework has been used by many teams for multiple years, and it’s a very big change to adapt to in a few short weeks. You can rest assured that we will support the old framework for at least this competition season. We just want people to be aware that it might be no longer offered as an official framework in 2021.


It will work fine for this year, but the issue with the old framework is that in the next version it’s probably going to be removed. Our team is switching over, as comfortable with the old framework as we are better to switch now then later.

If you don’t feel comfortable with the new framework, there’s absolutely nothing wrong with using the old one for this year and putting off the experimentation until the off-season. The new framework (in its recommended use-pattern, at least) does require grappling with some new programming concepts that many teams aren’t familiar with - I think this is very good pedagogically, as these concepts are absolutely ubiquitous in modern programming, but it’s not something you should feel pressured to adopt immediately if you’re not familiar with them.

And, if you eventually find yourself with finished robot code and the desire to make use of some of the fancier new features we’ve added, it’s entirely possible to port a project from old command-based to new command-based. Keep in mind that bag day is a thing of the past, so the amount of time you’ll have to fiddle with your robot is greatly-increased.