Programming Language Used

My team is deciding which programming language to use. We are currently gathering data related to this. Could everyone (who reads this) say what programming language they plan on using and why?

  • Block Coding
  • Python
  • C++
  • N/A
  • Toolchain Runtime for other languages (e.g. Vexide)
0 voters
2 Likes

I use c++ because there’s a lot more you can do with it and you can use things like Vexcode Pro V5 and PROS

1 Like

Why… because blocks allows us to carry forward code to incoming team members and give non-coders a decent understanding of code w/o forcing them to learn text-based programming.

And also… it’s possible to do a LOT more in blocks than anyone utilizes.

7 Likes

I wish this was posted more. Blocks is not the limiting factor for 99% of the robots. A few years ago I collected teams C++ code and converted it to blocks. While I’ll admit in some cases it was not a line for line change, but in all cases the block code worked just as well as the C++ code.

I also have a fondness for teams that go “We don’t know how to program, but we want to win, so we are going to use PROS, since that’s professional coding”. I go “OK, I don’t know PROS, humor me, lets write some block code together”. Ten weeks later they are running a modified version of that code as their “PROS is professional” coder is still struggling.

(And you might be thinking, why not learn PROS since you clearly know C++? I’m happy to throw you a life ring and get you to safety. I’m a good woodworker, so I can build you a simple skiff (block code), I just don’t have the time / desire to build you a 40’ motor yacht (PROS). Plus C++ is not the best as a first learner language. YMMV.

7 Likes

I do think block coding is under rated for normal code. I still perfer text (Python) as for me it is faster and I often will code 500+ lines and have to make it more concise.

I definantly think new pprogrammers should first learn block coding so they can understand the concepts and then “translate” the code into Python or C++ whenever they want to try text-based coding.

3 Likes

Would you say PROS is still a good idea to learn if you have a basic knowledge of programming? I’m just curious because I’m thinking about using it this year, but have only a little programming experience.

1 Like

I personally use PROS. I also have a lot of experience programming and wanted something lightweight that I could use without an IDE. I am the most experienced programmers on my team and I encourage my team members to use the same programming language as me so that I can help them when they are struggling.

There have been times where other teams have asked me for help with technical issues with blocks (they would change their autonomous and it was not changing what the robot did when they ran their code) and I did not know how to help troubleshoot their issues. Thankfully someone else on my team was somewhat familiar and able to help them.

I think when deciding what your team uses, it should reflect whatever your mentor(s) know. So as a vexu team that helps several other high school and middle school teams, those teams tend to start using pros so that it is easier for us to help them with issues quickly (both code issues and technical boilerplate stuff). If your mentor or a sister team uses a language, you should probably use that.

2 Likes

I agree completely. There seems to be a misconception that using PROS will just intrinsically make your programming better. It will not. Imo, the reasons to use PROS/vexcode V5 Pro are if the code you are writing is not physically possible (very very tiny percent of competitors will reach this point), or if the program you want to write will be large/complex enough to where it will be extremely unreadable in blocks.

If you have time and are experienced in VEX (both building and programming), go for it. But, if not, imo it is better for that time to be spent learning better building techniques, robot design iterations, practicing programming the robot in blocks, notebooking, etc. PROS should not be your first experience coding in VEX.

7 Likes

Block because its easy to use

2 Likes

This is the main reason my ream uses C++ in visual studio, but I’d also like to add that though competition-wise it might bot be the most effective thing to switch from block code to any of the typed languages, those skills are going to be more useful experience wise, and for getting you a job in the future as you are much more likely to end up usung text based code than block code. :wink:

2 Likes

Nope, you are going to need English so you can write up what you want the program to do, feed it into Program GPT12 and have it generate the code. :thinking:

9 Likes

Hey there, guy in the future who has a CS job here. As much as I dislike VEXcode blocks, block or more widely, visual-based programming actually has many different forms in the professional world. Some good examples are programmable logic controller (PLC) ladder logic packages like Rockwell’s Studio 5000, the most commonly used software in the automation industry.


There are countless nodal programming platforms as well. Blender (3D modeling and animation), Autodesk Dynamo (architecture and BIM), and Unity Node Editor (games and whatnot) are good examples from many industries. This:

Produces this:

The CGI, AV production, 3D modeling, and factory automation industries all rely on visual programming languages. On the engineering design side of things, LabVIEW is used to simulate electrical and control circuits for all sorts of things.


Sure text-based programming is still a versatile skillset but a lot of “CS” and engineering jobs don’t require it as we developed more advanced ways of programming.
I understand the “text is better and the more professional option” ideology, but in reality results are what matters. In a lot of industries, it is far quicker and cheaper to teach an architect how to connect some nodes to produce insanely complicated structures than it is to hire a software dev to type up some code and make an ugly building.

9 Likes

I used to spend many hours using Quartz Composer a few years ago, great tool, shame it was discontinued.

7 Likes

That’s cool. I didn’t actually know that visual programming was that widely used professional settings. (And completely forgot about a game that I made in a program that was quite similar to unity node that was decently popular. :man_facepalming:)

4 Likes

As a software engineer, having done embedded applications for most of my career, I am personally very comfortable with C, and (what I would now call) classic C++. I cut my teeth on coding on an Apple ][e doing BASIC coding by copying code out of a book (peak 1987, tyvm), progressed to Visual Basic, and then Turbo Pascal before getting into C and really going deep on that, and so there’s a lot for me to go use C/C++.

However, when I start working with robotics kids still in school, many of them have not done much coding. Some have familiarity with Scratch, probably because of school, and so they’ve hacked around on some projects they’ve ‘remixed’ and gotten some understanding. Most have little to no exposure to coding prior to getting into robotics, and much of that has to do with the urban environment that most are growing up in around here.

Because of this, blocks makes for a great starting point for learning, as it’s more intuitive and the logic is visually clearer, the colors make it easier to associate with types of operations, and especially for IQ, Vex has a good progression path to grow. Also echoing others like @Foster, there’s not much that Blocks can’t really do in most cases for the vast majority of projects. C/C++ probably is going to technically produce some more efficient code, having looked at the output of the blocks code, but for the speed that these systems move, it’s arguably unlikely to be noticeable. And yes, there are some things that are not possible (or at least not feasible) to do in blocks, like odometry, but at that point, it’s reasonable to be forced into something like C/C++ for that sort of functionality.

Also, those kids that do get it quickly, it’s then easy to build the language teaching of C/C++ to, because they’re familiar with the logic flow, it’s just learning a new way to use the language you already know.

My $0.02, I’ll go back inside now that I’m done shaking my fist at those durned clouds in the sky… :smiley:

4 Likes

and switch is coming to the hardware platforms at some point.

3 Likes

I find it kind of funny for me because I think one of the reasons that I got onto the robotics team was because I knew Python but as soon as I started, I used C++. I do not know if others will agree with me on this but the most useful ways I learned it were more experienced programmers and the help button.

1 Like

And MS Azure platform’s logic apps have a similar block/visual design.

And if you’re writing python… it’s slow enough, computationally speaking, that I have to ask “why?” (for large datasets).

3 Likes

Is it? If you’re working with a large dataset you’re probably using numpy or some other similar library which really does all the heavy lifting in C or even Fortran code, and the speed difference is mostly negligible, at least to the point that the extra flexibility more than makes up for it.

3 Likes

we use C++ because of the many options, it is pretty straightforward and you can upgrade it