Loading

7842 Navigators

Programming Software Comparison

This page has been prepared by Theo from 7842F with the help from a few members of the VEX community. The goal of this document is to provide insight to new programmers as to which programming software is best suited for them. We have tried to make it as unbiased as possible.

There has been an ongoing debate of PROS vs VCS. Many experienced programmers discourage the use of VCS. Other people claim that nothing is wrong with VCS. People also point at RobotMesh as a beginner friendly solution

Expectations

First of all, let’s list some expectations about the software we use.

Any good programming software should:

  • Be well documented
  • Have an in depth API/reference
  • Allow the programmer to be neat and efficient
  • Be comfortable to use and help the programmer reach their goal
  • Be customizable
  • Have good performance and little lag or crashing
  • Be compatible with multiple computer operating systems
  • Have basic features such as:
    • Autocomplete
    • Syntax highlighting
    • Helpful compiler warnings
    • Automatic saving/crash recovery
    • Version control and backup compatibility
    • Keybindings and shortcuts to common commands
    • Undo/Redo and Clipboard
    • File management features
    • Multiple files of code in the same project
  • Optionally have advanced features such as
    • Real-time error warnings (linter)
    • Built-in version control
    • Runtime debugger
    • Real-time feedback and readings from the robot
    • A CLI tool for compiling and downloading

A comparison chart of all these expectations are in the bottom of this page.

Now that we have basic expectations layed down, let’s move onto the different options.

VCS

API

VCS (Vex Coding Studio) is the officially supported programming language for V5. It is made by VEX and tailored to beginner programmers. It has three main language options:

  • Modkit – Drag and Drop block-based language for beginners
  • VEX C++ – Mostly C++ except for a Drag and Drop robot configuration page
  • C++ Pro – “Unlocked” full C++ functionality, text-based robot configuration

For a list of all of VCS’s features, read the comparison chart below.

Pros:

  • Official support available on the Vex Forum
  • Curriculum/Series format tutorials
  • Good for beginners:
    • Straightforward robot config
    • Straightforward route to getting a code completed
    • Little prior C knowledge needed
  • Built-in command palate/search
  • V5 utilities, firmware updater, vision sensor utility
  • Relatively good looking, modern interface
  • Easily transferable code

Cons:

  • Extremely slow and CPU intensive
  • No settings, customization, or themes
  • No printing feature
  • Encoded/packaged code container, so you are unable to edit the files outside of VCS
  • No version control
  • No file management features such as “Open last project” or “Save As”
  • No automatic backups
  • No auto-save/crash recovery
  • No keybindings, not even Ctrl-S for Save
  • Zero updates
  • Largely unhelpful API reference
  • API reference does not display properly in Firefox browser
  • Only one source file supported

Summary:

VCS is good for introductory programmers who just want to get the robot moving. However, it lacks many features which are commonplace in most other software, noticeably impeding a coder’s workflow. It is extremely slow and crashes, yet it does not have any crash recovery or auto-saving. All work is lost in the event of a crash. The biggest drawback for most people is that VCS only supports a single file per project, meaning that thousands of lines of code could potentially be limited to just one file.

Most programmers who have done work outside of VEX and are used to better editors would never use VCS and often people who come to the VEX Discord to ask VCS related questions get “Don’t use VCS” as an answer.

The main difference between Vex C++ and C++ Pro is that the latter has a much better robot config.

PROS

API

PROS (PROS Robotics Operating System) has been around for quite a while and is an officially-supported API for competitive VEX teams. This open source software is developed and maintained by students at Purdue who also actively participate in the VEX U competition. PROS offers two language options, C or C++, but the C++ API is strongly recommended.

Pros:

  • Many regular updates and improvements
  • Cross-platform
  • Built-in powerful PROS Editor (Re-skinned Atom text editor)
    • A massive community-made repository of themes and plugins
    • All the things we take for granted, such as syntax highlighting, auto-complete, file management, crash recovery, etc
    • Many useful features such as a real-time Linter, built-in GitHub integration, custom key-binds
    • Fast and lightweight
  • The PROS CLI (Command-line interface) adds support for countless other text editors including Notepad++, VS Code, or Sublime
  • Multi-file project structure for code readability, expandability, and neatness
  • Quick support for various related issues in the VEX Discord
  • Open source and community-improved
  • Solid documentation and API reference
  • Inclusion of OkapiLib, a powerful third party API
    • Motion profiling, advanced controller programming, filtering, path-finding, etc.
    • Chassis controller with PID and motion profiling – a suite of utilities that let you do things like chassis.moveDistance(4_ft)
  • Inclusion of LVGL graphic library
    • Allows the programmer to build interfaces using building blocks, such as buttons and containers, instead of having to draw each shape manually
  • Inclusion of a Cortex LCD emulator that allows teams to use the V5 screen in the same way they are used to with Cortex
  • Vision Sensor Utility

Cons:

  • Requires a higher degree of knowledge about C/C++
  • The PROS documentation covers all PROS-related topics, but not C++ topics, so beginner users may be confused with the best way to approach something
  • The PROS documentation assumes some experience with C/C++ which can be difficult for beginner users
  • PROS is a bit daunting for new programmers because the path is not clear to achieve a working competition code and robot motor setup
  • PROS is sometimes not an option for school computers due to IT restrictions
  • No direct integration with the v5 such as a run/stop button

Summary:

With the inclusion of a powerful editor and a detailed API reference/documentation, students with a more advanced degree of knowledge regarding C and C++ can use PROS to write code for their robots. With easy to reach developers, bugs and missing features can be reported and resolved quickly with little hassle to the student. PROS is customizable and expandable, and anything that applies to C++ applies to PROS.

RMS

C++ API

RMS (RobotMesh Studio) is another less talked about programming language. It is beginner friendly, well documented, and supports many programming languages and operating systems.

It supports the following languages:

  • Blockly – Drag and Drop block-based language for beginners
  • Python
  • C++

It is primarily web-based, which is both a good and bad thing, but it does have an offline version and even a CLI tool.

Pros:

  • Many regular updates and improvements
  • Official support available on the Vex Forum
  • Support available on Vex Discord
  • Curriculum/Series format tutorials
  • Many example codes
  • Good motor setup wizard
  • Good Vision Sensor support with automatic signature saving
  • Good for beginners:
    • Straightforward robot config
    • Straightforward route to getting a code completed
    • Little prior C knowledge needed
  • Built-in command palate/search
  • V5 utilities, firmware updater, vision sensor utility
  • A few syntax themes
  • Automatic saving and version control

Cons:

  • Only one source file support – solved with CLI
  • No GitHub support or source file support – solved with CLI

Summary

Here is a comparison chart of the three softwares:

FeatureVCSPROSRobotMesh Studio
API/ReferenceLimitedYesYes
TutorialsYesYesYes
CustomizableNoYesSomewhat
PerformancePoorGoodGood
Compatible with OSWindows/MacWindows/Mac/LinuxWindows/Mac/Linux/Chrome OS
AutocompleteYesYesYes
Syntax HighlightingYesYesYes
Compiler WarningsYesYesYes
Automatic Saving/Crash RecoveryNoYesYes
Version controlNoYesYes
KeybindingsNoYesNo
Undo/Redo and ClipboardYesYesYes
File/Project management featuresNoYesYes
Multiple file supportNoYesNo (Yes with CLI)
LinterNoYesSomewhat
Runtime DebuggerNoNoNo
Robot outputNoYesYes
CLI toolNoYesYes

VCS has very limited features, and is probably the worst software of this list, so even beginners might want to consider the alternatives before using it as it impedes their workflow. Beginners should try RMS out, as it is beginner friendly yet clean and expandable.

PROS can be very daunting for new programmers. While it by far has the most features and capabilities, it requires knowledge of C/C++

Comment

Leave us a comment or question!

Shopping Basket