What coding language is preferred?

Hello everyone, I decided to be coder but don’t know which language to use. I know some python but let me know your thoughts.

If you are new to vex code, I recommend the block code. I have used it and it was my first time using it. And I coded an x drive in about 30 minutes to code it. Vex python is alright, but in my opinion I would start with block.

Most community support and libraries will be in C++. The C++ blocks to text feature in vex code may not be a bad place to start.

Is Visual Studio code good?

Yes. There is an “copilot” on the right and it can help you with code. Just download the vex stuff on there first.

I say start with block code its the easiest in my opinion then move on to Java or Python later on

I’m not sure I would recommend Java for VEX V5 lol, only one experimental API exists as far as I know.

I would definitely recommend starting with C++ if you want an easy way to create a competitive autonomous, and already have some experience with text-based programming. LemLib is a great place to start if you follow the documentation.

Uh, I don’t think that’s legal…

Only way to KNOW if it is legal is to read all the providers document which you agree to haven done during inspection. The rules are always being tweaked so don’t want to give advice that could be wrong soon.

Sorry for not being clear enough. The current GRSF student centered policy states that ai-generated code is considered an “outside source”, meaning it falls under the ownership check as cited below:

“The Ownership Check

Students, when you use an outside idea, ask yourselves: did we make it our own?

Adapt: Did we change it to fit our own robot and purpose, instead of dropping it in unchanged?
Test: Did we put it to work on our robot, learn from how it performed, and improve it?
Understand: Do we know what the idea does and why it works, not just that it works?
Credit: Did we name the source?

All four Yes: the idea is now our own. Any No: still copying.”

So essentially, handle ai-generated code like any other program/template online: if you copy and paste code directly without adapting and understanding it, it is ILLEGAL. However, if you use ai-generated code as inspiration or you adapt and fully understand it, it is now considered your idea and fully LEGAL

I know it is illegal but just don’t copy the code from it. Just learn from it.

I would personally choose Rust/C++ I have not used vexide for Vex yet, but know the developer and looking at it is seems incredible. I regret using a lot of C++ as the language just sucks, Rust though is pretty fantastic. C++ has a lot of resources, so it depends on what you want. I am a weird developer so a lot of the pros stuff does not work for me. (The Linux tool chain just did not work for me, and the windows CLI is a pain to get working for Pros) So that’s why I am switching to rust.

If I was starting out I would personally try coding in as many as you can to get a feel for them and then code in your favorite s

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.