What coding language is preferred?

To weigh in (though I’m a bit late) –

You have 6 realistic options, ranked roughly in terms of ease of use (I don’t have experience with VEXCode C++ or MATLAB Simulink, so take it with a grain of salt):

  • Blocks (VEXCode; IDE: VEXCode V5 online)
    Blocks, similar to Scratch in appearance, is very easy to get started with but you lose flexibility rapidly. It is possible to implement algorithms like PID and even tracking and pure pursuit in Blocks but it gets clunky fast.
  • Python (VEXCode; IDE: VSCode + extension)
    Python is offered as an alternative to C++ and can be a more user-friendly entrance to text-based (i.e. “real”) programming. It has an easier to learn syntax and schematics but has some downsides compared to C++ (notably, only one file support in VEXCode). Python is applicable to a wide variety of future careers beyond CS including scientific analysis and data science. VEXCode’s Python VM running on the brain is built on MicroPython v1.13 which is roughly CPython 3.4 syntax, so you’re missing out on a lot of newer language features. There are alternatives, but they are still new and unstable.
  • C++ (VEXCode; IDE: VSCode + extension)
    VEXCode C++ is the default text-based coding experience offered by VEX. C++ is a very common language used all over the world and can be very performant. Some syntax may be difficult to grasp at first but you’ll eventually get the hang of it.
    Older tutorials may reference VEXCode Pro V5, which is an older product that used to be used for VEXCode C++. However, it has been replaced with the VSCode extension.
  • C++ (PROS; IDE: primarily VSCode + extension)
    PROS is the most widely used framework among competitive teams. Maintained by Purdue SIGBots, a VEX U team, it has lots of resources and tutorials available online. It uses the same C++ as VEXCode for the most part (if I recall correctly, it supports more modern C++) but replaces the VEXCode API with one under the pros namespace. It is mostly open-source!
  • MATLAB + Simulink
    I have absolutely 0 experience with this but I have talked with their booth at Worlds before. Simulink is a industry tool to do systems control modeling and it offers the opportunity to use a professional workspace for VEX. However, you must request an educational license to the software and the applications close during the summertime.
  • Rust (vexide; IDE: whatever you want, useful to have the RA LSP server)
    Rust (and the vexide framework) is a relatively new alternative to C++. It promises memory safety, modern ergonomics, and bleeding-edge support. I use it and love it, but unless you know another programming language well already, I do not recommend learning Rust as your first programming language – most resources assume you know another language by heart already. vexide is open source!

It would be advisable to remember that using the direct output of any generative AI tool is against the Student-Centered Policy. However, Copilot can be a great tool for learning to program! I’ve been having my juniors use Claude a lot this season so they can learn how to ask good questions to LLMs and humans – asking “why does IntelliSense say this variable is undefined even though I defined it here” is a lot better than asking “aaah help code not working”.

Java is not really a realistic option, although as OpenSourceIdiot mentioned, Lewis has gotten a WASM interpreter working that can run Java and other related languages. A certain other large robotics competition does have an option to use the JVM (Java Virtual Machine) which may be what you are thinking of.