The PROS of PROS

@theol0403

I don’t want to sound rude but what about the first one.

Yes I said it can all just be done in the terminal.
However if the buttons had better functionality they would be more convenient to use.

For the source file; They take up room and they could just be stored once in the program files, and some easy way to look through them in pros, but it is a very minor complaint.

Yeah, I guess I agree.

For the issue with the first LVGL element I add it to the page element and I can’t find any errors in my code. I don’t have access to a brain right now, but when I do I will test it. My program is large and most likely I missed something.

It is mostly likely failing simply because my team has a slow old laptop, and it’s not really pros’s fault. The intelligence is very nice though. When you type it shows the options and has descriptions (which are just comments in the header files). It also shows the description when you hover over stuff. And you can ctrl click to jump the the header files. It is actually a bit harder to program without it.

Thanks for your feedback.

1 Like

I think we are on the same page.
I didn’t answer the first question as I believe you that it is a bug, but can be avoided by using the CLI to compile, which is honestly the better experience anyways. Improving the buttons would be good though.

The thing that makes a pros project a pros project is all the files inside it. The pros kernel is in contained in it, everything that makes it a project is in there, all the compile scripts, the files for pros to compile, the support files. The rest of the pros install is just the gcc compiler (with headers and c++ library) and the CLI. Pros literally just runs gcc on your project, and all the information is there. All the header files are there, everything belongs to the project. This is how most real-world code is. All the libraries a project uses comes with the project, so you don’t have external dependencies.
It is better this way, for functionality and management reasons, but also I think it is nicer.
It would be annoying to transfer code to someone else’s computer and realize their version of pros has an older version of LVGL or something, and a change you did to your makefile did not apply to another computer.
Yep, the linter is very nice, but can be inconsistent.

8 Likes

My VEXU Team uses PROS with Git, which seems to have served us well. I would definitely recommend using git to any team that doesn’t already since having your code backed up and sharable is very convienient. In fast, I’d say that all VEXU teams where someone knows at least some coding should use PROS, especially if they are using custom sensors.

3 Likes

This behavior is configurable. If you go to Settings > Packages, search for terminal-tab-plus and click “Settings,” you can set the default timeout for the terminal tab to be longer (or set it to never disappear with -1).

In the latest version of the PROS Editor (or with the latest CLI and Atom package), you can change the slot when uploading using the menu: PROS > Upload Project will open a dialog with various options.

6 Likes

We are always evaluating- I don’t understand your comment about RMS. Can you expand?

It has similar languages, one of the languages is identical to VCS C+ +. The interface is much nicer because it looks like somebody actually put some thought into how a piece of software should function.

1 Like

If I’m not mistaken RMS has the most options - Blockly, C++, JavaScript, and Python.

VCS has C++ only, right? What does PROS have? Just C++?

But PROS has some really cool added features

Like? I believe both RMS and PROS do wireless download (big miss for VCS, it has VCS come out with it?)

PROS has industry-standard C and C++ support.

VCS has two different C++ APIs (with several caveats compared to PROS’s implementation) in addition to Modkit. VCS is generally not recommended for a number of reasons. VEXcode should be used instead if the VCS C++ API is desired.

RMS indeed has the greatest variety of options. RMS C++ is not quite identical to VCS C++, but the vast majority of the API is indeed the same.

3 Likes

For me, PROS is the best choice right now for sorta to very experienced programmers right now because it IMO unlocks everything V5 has to offer (as of RN), supports add-on libraries, and has as @Barin said, amazing support.

RMS does offer the widest range of options for different people’s experience programming though, I agree with you on that

1 Like

PROS has OkapiLib and LVGL built-in. OkapiLib is a general-purpose library that simplifies various tasks.

LVGL is a standardized graphics and GUI library. PROS has implemented LVGL for the screen on the Brain. As an added benefit to incorporating LVGL, emulation software is available so you can develop graphics without physically needing the screen on the Brain.

PROS also has the best documentation as far as I’m aware, in addition to proper support for literally any IDE you might want to use (RMS now has this support too).

3 Likes

I mean, VEXcode and VCS are also industry standard C and C++, it’s hard not to be when you use clang as the compiler and provide standard C and C++ libraries.

PROS and VEXcode use different user APIs to access the V5 hardware, but underneath they are both using essentially the same SDK to access vexos.

This is high level system architecture.

v5_system_arch

15 Likes

from what I hear, I’ll probably be using either VexCode or RMS next year. I’m sort of a beginner, seeing as all I’ve done is simple robotC, which is why I’m not choosing pros. It seems super powerful, but not beginner friendly. I’m not completely inept at coding though, I know many other languages, but I’ll be new to C++. Which is better, RMS or VexCode? or is Pros still a viable option for someone like me?

2 Likes

This

2 Likes

I don’t recall exactly since I haven’t done any V5 programming myself, but I thought there were caveats with multi-file support or something.

I was aware that VCS and VEXcode use Clang, though.

VCS only supports editing a single source file, but you are still writing standard C and C++.

VEXcode removes that limitation, you can pretty much do anything you want, including running LVGL if you want.

5 Likes