Best Code For V5 System

With V5 no longer supporting easyC (as far as I know) what is the best coding software? Btw I am aware of VCS.

PROS 3.

+1

There are going to be two programming suites for the V5, and one language solution. Robot Mesh Studio offers Blockly (a graphical language), Python and C++ for the V5 beta customers today, and will offer JavaScript before launch. All of these languages are found in a common browser-based IDE that works in Windows, Mac, or Chromebooks. The same IDE also supports Blockly and Python for VEX IQ and VEX Cortex-based robots. Try it today on the Robot Mesh website.

You can take a look at what PROS has to offer through their blog post here: http://pros.purduesigbots.com/v5/blog/pros3-announcement.html

@Rick TYler Looks cool!

I’m a bit confused on how JavaScript would be used to program a robot. Traditionally, JavaScript is used to add interactive functionality to languages to web applications or as a supplement to JavaFX. However, these uses are all for a screen. How would it be used for programming a robot?

Node.js is an example of running JavaScript code natively (i.e. not as an extension of a web browser). For an example of how this might be adapted to robotics, check out nodebots.

Some pros (no pun intended) of JavaScript are that it is relatively easy to learn and that it has pretty good native support for asynchronous code.

(Disclaimer: personally, I’d never use JavaScript for robotics. Maybe it’s just me, but I don’t think it makes that much sense to do so)

1 Like

Okay, I see what you’re saying. It still seems odd to me because I’ve been using JavaScript for web pages, so it would be really awkward to use the same language for robotics. I guess we’ll see. Thanks!

In deep context, yeah javascript is mainly used for the web. Node.js however is a language able to be used to power backend applications.

With the rising prevalence of IoT, javascript is getting increased usage.

I think “best” it too nuanced. It depends what you care about most and so will vary. I’ll take myself in a teaching role as an example.

All of our students have Mac laptops. Our CS classes start with C++, then AP CS in Java, and then Data Structures in Java. Java isn’t so dissimilar from C++, so C++ skill is quite transferable. As of next year all 9th grade will be coding before the first CS class, using VEX IQ robots within their science classes. VCS allows me to give them a graphical drag-and-drop programming language that looks a lot like C++ on which it sits and can be read directly in C++. (VEX has stated explicitly that VCS will work with VEX IQ.) Meanwhile, students can go on to robotics and continue using the same VCS environment, just upgrading the C++ and dropping the graphical part. This aligns well internally as well as externally with the CS classes. So while I have happily used Robot Mesh Studio’s Blockly as well as PROS, they are no longer the best for my students.

However, in a vacuum, I would have stuck with PROS, moving to PROS 3, for VEX EDR. Working with PROS has been far superior to working with RobotC for us. But with what’s happening in our courses and the release of VCS, PROS is no longer the best for my students.

What’s the argument for PROS 3 or VCS C++ or even Robot Mesh C++ over Robot Mesh Python?

The speed of C++?

Again, it depends on your viewpoint. In my case, it’s really helpful to introduce students to C++ using C++ instead of Python.

More generally, high-level programming languages are wasteful when you’re working with a specific system. They’re great when you don’t know which system you’ll be working with because they’re so adaptable. But that adaptability comes with a cost, and one which shouldn’t be paid if it need not be.

The other benefit you will find is that PROS C++ is easy to add external libraries to. In fact PROS 3 comes standard with this full GUI library, to let users easily make buttons or graphs

https://littlevgl.com/

Robot Mesh Python however does not support any python libraries. You cant import anything.

Ooh! That should be nice for the brain’s lcd screen.

Two comments, Robot Mesh Studio already supports C for the beta V5, and our next release (which will be out before VEX ships the production hardware) upgrades that to C++. Robot Mesh Studio has always worked on Macs, and we are working on making Blockly generate C++ code the way that it currently generates Python.

As to the performance question, the V5 Brain is so much faster than the Cortex that the real-world performance differences in our testing between an interpreted language like Python and compiled C is not terribly relevant for VEX robots.

Yes. I’ve been using Blockly with VEX IQ, and very happily. I was trying trying to buy everything from Robot Mesh to support Robot Mesh because of this, but then the vendor rules didn’t allow Robot Mesh to keep sending me stuff. :frowning: But there are two points. I don’t know when Blockly will generate C++ code. Second, VCS blocks look like C++ code. For example, you get the • between the object and what you’re calling inside the object within the block, which helps in the transition.

Sure, but how about moving onward? At higher levels the performance issue can become much more significant. Robotics professors have recently told me C/C++ is preferred in robotics.

Good point. I wasn’t trying to say that you should use Python, only that if you choose to use Python on the V5, the robot’s performance will be just about the same as if you used C++. The software performance differences are minimized by hardware performance.

(When I was in the software development business, our mantra was that we’ll make it work, but Intel will make it fast.)

If you’re use to EasyC and find it difficult to learn a C language, I would suggest using Python for beginners.