I want to make this clear: you can do almost everything you want regardless of your platform (I’m going to focus on VEXCode and PROS). Both use a standard C++ compiler and toolchain, both have full access to all vexOS commands and functionality (motor, sensor, brain, etc).
VEXCode is designed for educational programs, schools, clubs, mentors, and teachers. It is the official programming platform for the V5, which means it will always be first to support new sensors and functionality. It is relatively straightforward to install, use, and learn, and has a good community, knowledgebase, and examples backing it up.
VEXCode is not extensible and is only usable in the way it was intended to be used (only using the vexcode editor feature set, on Windows or Mac). The VEXCode API contains the minimum set of functionality to have full interaction with the robot and nothing more (other than the small chassis abstractions).
PROS is an open-source project which is designed to be as flexible and extensible as possible. There are no restrictions over which platform/os you want to use or which editor you want to use. However, aside from providing a (imo simpler and more straightforward) minimal API to interact with the robot, PROS does contain some extra functionality that you can choose to use.
PROS has a template/package ecosystem which allows you to make modular libraries of code and install them into projects (eg https://github.com/theol0403/gif-pros). PROS by default comes with two of these such libraries:
- OkapiLib - a library of device/chassis abstractions, controllers, and utilities (What is OkapiLib and Should I Use It?)
- LVGL - a library for GUI creation that involves building using buttons, menus, and widgets, instead of drawing lines and rectangles manually.
These libraries, should you choose to use them, are very powerful and also expose you to advanced styles of programming. However, they are not necessary to program a robot.
PROS also has a CLI (command line interface) that makes interacting with PROS projects (compiling, new projects, etc) and the v5 brain (uploading, terminal, etc) scriptable and usable from other editors. This is (for me) a much nicer way to interact with my code and the robot, and is faster for me than clicking buttons.
For beginners in VEX, VEXCode is the right choice. The built-in command reference is excellent, and the feature set is perfect for most users. However, as you get more experienced, and some functionalities in PROS start to interest you, it is a good idea to improve your C/C++ and skills then jump into PROS.
Both platforms have a good community and support, though the open-source nature of PROS and the higher-level community it draws is more appealing to me. Both default editors are good and fairly equivalent in features.
Now, here are my PERSONAL reasons why I could never use VEXCode and favour PROS:
- PROS supports Linux, which is my daily driver, and PROS has a CLI. This is a must for me.
- I can use any editor, plugin, theme, or language server (I use VSCode + Neovim, custom themes and plugins, and Clangd + TabNine for the language server).
- I strongly dislike the VEXCode API, it is not intuitive, concise, nor beginner-friendly. It is easy to copy/paste, but the design is quite convoluted with so many ways to do the same thing (ie spin a motor at some speed). PROS, while it may expect more understanding of C/C++ to read the documentation, has a very simple and straightforward (one way to do one thing) API.
- The PROS docs are excellent and the code is open-source if I have questions or improvements.
- The extra functionality in PROS is very useful, such as the package ecosystem, and built-in libraries (especially OkapiLib abstractions and utilities).
Is not accurate, there is nothing in PROS that makes it more accurate to move a motor (only easier by using okapilib). PROS and VEXCode can both use vexOS’s integrated motor control, and you can also run custom PID on both of them too.
However, all the options in your original poll are reasonable reasons to not use PROS. VEXCode has become an excellent option (in contrast to VCS), and you really only want to use PROS if any of the reasons above apply to you.
I’m curious what the results of the poll will be, as I hope it won’t be “too hard to install” because that is one thing that PROS does worse than VEXCode.
(oops this reply was longer than I thought it would be )