Should I switch to PROS?

I’m currently using VEXcode with expert configuration on, but I’m seeing and hearing a lot about PROS. I understand it’s older than VEXcode, but I’ve also heard its very powerful and the documentation does seem better. I’m mainly looking for opinions here, because I’m willing to recode my driver control if the PROS API is better.

1 Like

Define what “better” means to you

Things to consider when changing:

  • What features does this provide me that I’m going to use
  • What is the learning curve
  • Who can help me when I have questions? Is that more or less than what I’m using now?

My personal opinion is that PROS, by itself, is basically equivalent to VEXcode. VEXCode is actually a little more modern, in the sense that they support a more event-driven programming model. One can do the equivalent in PROS, but you’ll be writing tasks to do so.

Where changing to PROS provides real value, IMO, is if one uses OkapiLib. Personally, I don’t understand why teams would use PROS without OkapiLib, other than some sort of thought process that writing one’s own PID is some must-experience right-of-passage in Vex.


Like Mentor_355v said, it all comes down to personal preference. As someone who used PROS first and is now using VEXcode (not my choice, but whatever), I think the PROS API is far superior. But, that is my personal preference. Both APIs offer the same functionality at the base level, though PROS does include OkapiLib.

I would look at the PROS documentation (found here), and see what you think. Personally, I’m a fan of not having to specify a direction (fwd/rev) in every motor command, as well as the optional C API PROS offers. However, like I said, it all comes down to what you think.


In my humble opinion, the difference isn’t huge.

Using OkapiLib, as has been said, can be really helpful.

Other than that, I don’t think it makes much difference.

I currently use VEXcode, mostly because it serves my purposes just fine. I’m not doing any wacky stuff, so at my point, using PROS just isn’t worth the added hassle time-consuming experience.

You may find that teams may think higher of you if you are using PROS, but I would rather work with a team that uses VEXcode and knows their way around than uses PROS, but doesn’t really do much with it. You weren’t implying this, but don’t switch to PROS just because other teams are using it.


I’ll add that when I last used VEXcode (for tower takeover) it did not include the full C++ standard library. This isn’t a problem for anything you would normally need to do, but it can make using external libraries difficult. In my case I wanted to use a JSON library to store and retrieve settings and autonomous routines from the SD card in nice format, so I switched to PROS. Ended up not really using that, but switching to PROS did enable me to use OkapiLib (I really only used the odometry features since the path-planning functions aren’t optimized for holonomic drives yet)


It does, perhaps not the very latest standard, but it does link against C++ library.


Doesnt VEXcode also support okapi? Or was I mistaking what I said for another thing…

1 Like

I was going to port okapilib to VEXcode, it was going to require replacing the pros calls with direct calls into the sdk and then dealing with threads a little differently. But okapi is under the Mozilla Public License Version 2.0 which is a copyleft license, that basically makes it impossible for me to do that and just release a simple library that could be linked with VEXcode.


Just make all of VEXos and VEXcode open source, problem solved

haha jk

unless…? :upside_down_face:


MPL 2 only obligates you to release modifications you’ve made to the source code (in this case of okapilib). This “file-level copyleft” provision is why we use it as the license for projects in the PROS ecosystem, else people might have to open source their competition robot code (:


That’s the point, I was going to make lots of changes to the okapi source code, I didn’t particularly want to have to release all the changes, probably nothing “secret” as such, just didn’t want to be bothered. I just wanted to release a static library and headers that could be used with VEXcode.


A major advantage of PROS over VEXCode to me is the ability to use a custom editor like VSCode or Vim.


Yeah I looked at it beforehand, which is the only reason I even considered it because the documentation was much better imo. After reading all the responses, I think I’ll phase over to PROS + Okapi soon.


Thanks for responding everyone. I think I’ll switch over to PROS + Okapi soon.