Best coding language for V5

I haven’t really worked with MATLAB, so I can’t say much about this. I don’t want to misguide you with something I’ve never worked with.

That’s fair, thanks anyways!

Do you specifically want to know about using MATLAB for VEX or MATLAB in general?

I would strongly suggest not using MATLAB for VEX. If you are doing something that needs that kind of math you should be able to convert the MATLAB code to VexCode or PROS. Personally I use PROS for our robot for the extended API and okapi but I am a programmer for a VEXU Team. PROS is a bit more difficult to work with but allows for more complex code. I would recommend that you start with VexCode which is a bit easier and then when you get the hang of it switch to PROS. It shouldn’t be too hard to convert your code.

2 Likes

I recommend installing clangd and get it setup with the VSCode extension. It’s awesome and better than cquery in all aspects (speed, functionality). clang-format, clang-tidy are also included in the VSCode extension :slight_smile:

I think we are all forgetting HTML. Best language for robotics without a doubt.

2 Likes

I thought this thread was about programming languages

2 Likes

(That’s the joke…)

1 Like

Quite a confusing statement. Let me reword it:
VEXCode was designed to be a direct upgrade from VCS, so don’t use VCS as updates for VCS are no longer being supported.

PROS is also another popular C++ programming platform, but learning it takes a lot of time to figure out. Also, as an addition, I would prefer doing VEXCode first, then consider PROS if you feel like you have learned the gist of C++ and how it operates.

RobotMesh doesn’t seem like a popular choice, not for any reason in particular but due to it’s lack of advertising and community-ran assistance (such as in competition). If someone uses RobotMesh, the API’s are quite confusing, especially for those who want to code using python. That is why, although they have a good language and system, I would not recommend as the chance of someone in competition to use RobotMesh are unlikely.

I want to emphasize that PROS is a very heavy software. If you are a beginner and immediately start out with PROS, you may learn PROS but you may learn PROS in a manner that is not optimal. It will be better to first learn VEXCode, and maybe take a Computer Science High School course to understand how brackets, functions, syntax, and file management works before exposing yourself to something difficult to learn. By immediately jumping to PROS on your own, you will be basically putting yourself on the frontlines with no tools, weapons, or experience.

5 Likes

I know
extracharacters

That is a valid point and something that I hadn’t considered. I still feel that if you take some time to build some basic C++ programs and learn the overall concepts first, PROS can be a great starting option. I do agree that if you try to go straight for it without any background knowledge you might develop bad skills, but if you do some basic C++ first, you should be good to go. So my recommendation would be to actually learn C++ and build some basic programs to familiarize yourself with classes, file structure, etc first. Then jump into PROS and begin actual robotics programming.

My only concern with learning VEXCode first is that it might become confusing because you have two very similar API’s in your head. It might become a little difficult to remember which functions and syntax go with which platform.

3 Likes

Continuing the discussion from Best coding language for V5:

So this in general makes me unhappy.

@Deicer let me try this “I’ve never seen or competed against @Deicer robots, but I can’t speak to the quality of them, but by the way I’ve worded this, they are substandard.” Ouch. That’s like a Yelp review that is by people that have never eaten there. Didn’t use it, don’t use it, then you don’t have an opinion.

@Connor writes " the API’s are quite confusing, especially for those who want to code using python", Ok, so maybe a valid point, want to give an example? RobotMesh created an entire set of Python library (aka API calls) that don’t use a structure you like. So lets here how it’s confusing. I have to be honest I get Python code and look at API names and parameters and go “WTF?!?” but I don’t know the developers mindset and what their overall taxonomy was. If I look at their universe it may also make sense. I look at the C++ API’s on a regular basis and go :man_shrugging:

And as an aside @LilTree, I got your joke, but you should have gone with “I think we are all forgetting CSS. Best language for robotics without a doubt.” I know some pretty amazing CSS people and think that an HTML fragment with a ton of CSS could make a champion robot

Sorry for the full rant, but the reality is most of this is personal preferences. But to those being pundit offering up opinion you need to offer some creds on why you can say things and offer up examples.

4 Likes

I was merely stating that it existed as an alternative. Would you have preferred I give it a positive review even though I have not used it?

edit: you used my exact line and then added more to it to make it negative. Please don’t put words in my mouth

2 Likes

Nope not a positive review was requested, no use and no personal knowledge and therefore no comment would be my preference. It’s equally bad to say “I’ve never been in a Chevy, actually never seen a Chevy, but I’d buy one”.

Yep, and that’s what people’s brains do. They read the first part and assume the second part. Words and sentence construction matter. You were conveying an opinion, I just took it in a direction.

I didn’t quote you, and careful reading is I didn’t put words into your mouth, I used some of the words what you wrote in a different order, possibly in a way you didn’t intend it to look.

Congrats, you got the point.

1 Like

For new people like you I would highly reccomend using vexCode first, once you get using vexcode down you can start to use PROS. Its just better this way instead of diving straight into the deep end.

1 Like

If I’m transferring from vcs? What is the best language to use?

If you’re going from VCS to something different, if you want to stick with the same API (set of functions and commands), go with VEXCode. The API’s are identical.

2 Likes

Since this thread is continuing a good discussion about VEX and C/C++ (API), it is probably good to note how PROS, VexCode, and RMS fits into the software running on the brain. Here is a post from James Pearman.


here is the image showing the software stack.
image

The RMS API is essentially the VEXCode API. It looks like the doc pages are copies. They also have many examples (click featured or public projects), but it is bit challenging to navigate to find what you want. VexCode has a more streamlined/simplified help (click tab VEXcode V5 text).

The PROS API is completely different, though it has all the same features but some are implemented in a different way (button pressed VEXcode vs PROS). To say one API is harder or heavier than the other is not really accurate. You could say the API documentation is easier or harder to understand. I find the PROS API documentation to be easier for me to understand. Probably because it is more similar to technical docs I’ve experienced in the past. I also like that there are examples for many functions. The extra comments here helped a lot.

The only “hard” part about PROS is setting it up is a little bit more involved especially so if your using linux (but then if you’re using linux…).

One thing to note is that PROS uses C++17 by default and VEXCode uses C++11. Though C++11 is not a deal breaker (and J. Pearman assures me that VEXCode’s use of clang supports -std=c++17, I haven’t got it working). C++17 has some features that could be useful such as clamp, local var defs for if-case, gcd/lcm. Here is a good list of features (most are above the scope that will be used by VEX teams). Once again not a show stopper.

If you want to use GIT for versioning or code sharing then PROS with atom (PROS editor) has the best support. It’s not impossible with VEXcode but it is also not integrated in the IDE.

4 Likes

Let me finish that sentence:

But then if you’re using Linux…

  • …it’s your only option for an offline environment
  • …you probably know how to run a simple command to install the .whl (or at least you know how to Google it)

:slight_smile:

4 Likes

MATLAB for VEX programming.