What do you use to code your robot?

What do you use to program your robot?
  • PROS
  • VEXcode
  • Robot Mesh Studio
0 voters
1 Like

I’m planning to use plain old VEXcode, since my teammate wants to program and he couldn’t do PROS. (Not to bash him, I like Python, too.) I like RMS blocks far better than VEXcode blocks, though, but I dislike blocks altogether and don’t use them. I would have used RMS Python for IQ1, if I had known about it.

3 Likes

I think PROS is going to be over represented here because forum users tend to be more experienced but at competitions I saw most teams using block code.

9 Likes

So don’t think of it as a poll of VEX competitors; think of it as a poll of regular forum users.

5 Likes

Never used RMS, but after using both VEXcode and PROS I definitely like PROS better because of the better integration with Github you can get with VSCode and Atom. It makes it a lot easier to work on my code from different devices since I can just press a button to commit.

1 Like

Yeah @242EProgrammer most forum users actually have the experience to use a coding language instead of blocks, I personally code language with a TON of documentation.

I’ve been meaning to get into PROS, since I really like how it gives you much more control (and you can do graphics on it much better) but tbh i just haven’t gotten around to it. I’m going to write all my code for the robot this year in vexcode, and then maybe after I’m done I can translate it all to PROS.

1 Like

W for the one robot mesh user

6 Likes

nasally voice uM tWo AcTuAlLy gEt uR NuMbErS RiGhT

2 Likes

robotmesh made me so angry trying to work with it, it wasn’t openly hard but just… frustrating lol

they’re in it for the long run :muscle::muscle:

A long time ago, I made a very big program with vexcode. Then I learned that PROS exists. Then I made my program bigger so that I would have less reasons to move to PROS.

3 Likes

Just port lvgl 8 into vexcode. It’s not that hard once you read the necessary documentation and look at Jpearman’s other 3 lvgl ports.

1 Like

i use vexcode v5 pro for driver and pros for auton

As much as I wished to continue doing VEXCode, I have finally switched over to PROS. Initial impressions tell me that the documentation is not enough when using PROS. The PROS VSCode extension is very buggy and unintuitive, to a point where uploading just doesn’t seem to want to work. So I find myself using the terminal to upload (which I really hate doing because of its inconvenience).

On the other hand, I find that sometimes VEXCode fails to notice a change in files that are in custom includes. I am unsure if this has to do with VEXCode or the compiler, but it leads to issues with larger programs when developing a large API inside of the VEXCode infrastructure. The VEXCode documentation is much more straightforward with much less fluff than the PROS documentation, and appears to be easier to understand by the masses because of self-commenting and simple usage of syntaxes. The only caveat is that the integrated documentation is hard to find within the IDE a lot of the time. The VEXCode IDE also has a terrible file system, which is why things would be better as a VSCode extension for more advanced programmers. On another note, although VEXCode has good documentation within the IDE itself, the API for VEXCode found in Google is awful.

But back to PROS. The programming language is heavy and requires extensive C++ knowledge to use only a portion of its capabilities. The documentation is unnecessarily complex with a bloated API, with random usage of redundant information whenever you search for things on the PROS API. The coding language shoves everything in front of the user as if they can decipher the information in one fell swoop, which tends to be the weakness of PROS: Its non-intuitiveness for newcomers. Whenever entering the PROS infrastructure, it is almost inevitable that a problem will need to be solved. VEXCode just works out of the box, while PROS is like rubbing your fingers against sandpaper hoping that you’ll eventually be able to take your hand off and relax a bit.

With PROS, I find that there tends to be a cringeworthy culture that has a “do it yourself” mindset, and shove away people who asks for help. This further results in people straying to VEXCode because there are more people willing to help with VEXCode programming in a more supportive environment. The mood of the people in PROS do not fit my standards of a safe learning environment, which was why I stuck with VEXCode for so long in High School. I simply do not want to deal with asking for help and the response being the same repetitive “read the documentation” or “figure it out yourself.”

But now I switched to PROS after taking classes on C++ and know all of the syntax. Few individuals know the syntax or have yet to take a class on learning C++. Oftentimes, classes are beneficial to learn a language as it covers a large majority of test cases that are hard to identify through simple trial and error (time consuming). As most competitors are High Schoolers, PROS is far fetched of a programming language for most, simple because most do not know how to program when faced with such a problem. That being said, I find it saddening to be bashful to people who simply wish to learn, but do not know how to.

I guess this is a bash on both flavors. One for being too buggy and the other for being too inconvenient for the majority of entry level programmers (or perhaps both are buggy and inconvenient, and there’s no perfect language).

14 Likes

The makefile just needs updating to understand what you have changed.

5 Likes

But back to PROS. The programming language is heavy and requires extensive C++ knowledge to use only a portion of its capabilities.

Would you mind explaining this? I was always of the opinion that VEXCode leveraged C++ features more heavily, and definitely utilizing OOP more.

1 Like

I just hope I can vote in time

2 Likes

Ok well since no one ever answered, Vexcode is quite basic with its syntax. You only need to know the function names to get it. PROS however is a much more raw form of C++, where the syntax is extremely weird (to me at least, ofc it’s a fine syntax) and there is also MUCH more functionality. As far as I can tell, you can put other libraries that aren’t specifically vex into pros. Not sure if you can do that with vexcode. (Edit: yes you can put it in vexcode) Meaning thst there is many more things you may be able to accomplish in pros that would be either extremely annoying or Impossible in vexcode. I’m a noob to pros still so I can’t tell you things I don’t know, but I can say it has been much easier to code my “alternative” stuff in PROS than in vexcode. Plus OOP doesn’t automatically mean it’s using C++ features (besides classes, plus it’s overused anyway) :wink:

To answer the original question, PROS and Vex code pro are both built on the same API, they both use OOP to roughly the same extent, and they are both compiled with a C++ compiler (though vex code pro doesn’t have C++20 yet). However, a few quick looks at the okapilib (which according to many people is the only reason to use PROS) reference shows that they use things like std::unique_ptr, which definitely is not a beginner concept. However, if you are willing to go though the work of understanding okapilib, it is definitely an amazing resource (but it could all be written in Vex code if you really wanted to put in the work).
Basically, what I mean to say is that PROS and vex code are basically equivalent (though PROS has its CLI), but there are many more libraries and example programs built for PROS than vex. So, if you want to do everything yourself, Vex code and PROS will both work, but if you want to use someone else’s library, PROS is definitely a better choice.

To answer a few other things:

They’re both C++, I don’t know how one can be more ‘raw’ than the other.


You can also do this with vex. I have successfully ported both Eigen and Lvgl 8 into vex code.

Back in the late 70’s or the early 80’s when C++ was first made, it was called C with classes. The entire reason C++ was built was so that you could use OOP.

10 Likes