With V5 no longer supporting easyC (as far as I know) what is the best coding software? Btw I am aware of VCS.
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 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
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. 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.