New Programming Environment

During the EP summit, a new programming environment for VEX platforms was mentioned several times. It is proposed to be a semi or full replacement for RobotC, available on Mac, PC, and even the web. This sounds awesome, however, before the launch, I urge VEX to answer a question that many of us are skeptical about and could possibly prevent a huge disappointment at the V5 / New Environment launch.
I tried to ask this question in a manner that the answer to which would reveal almost virtually nothing about this new product, and wouldn’t do anything to hurt it’s marketing. This is purely to prevent misconceptions that may have risen from hearing about this at the EP Summit.
Simply put:

Will the new environment be something that power users of RobotC / those highly familiar with programming be able to switch to without feeling like we’ve sacrificed significant complexity / ability that comes with current version of Non-Graphical RobotC? Or, is the new environment mostly targeted at a different demographic who prefer simpler, easier to understand ways to program their robot? Or, is it something entirely else?

Answering a question like this now rather than at launch should guide many of us to what to expect, as to prevent another No Mans Sky hype train. I think a lot of us have in our minds the idea that this new environment is going to be equivalent to the complete overhaul of RobotC we’ve asked a long time for, and I think it makes sense for us to believe as such. But the more I put thought into it, the more it seems as if that it would also make sense for VEX to pursue other targets.

Let’s not forget the power-users of PROS and, especially, ConVEX

But won’t PROS have V5 support?

@OP: If you’re concerned about support for complex programming concepts, why not use PROS?

Yes it will.

In an attempt to prevent this from going off-topic…:

Don’t forget the third-party options! VEX has a list of them (under “additional programming options”) that you might want to look into if you become unsatisfied with one.

The listed options vary widely in complexity, so there’s (probably) something for everyone.

Disclaimer: there’s some obvious bias here, but I tried to be as objective as I could

Was this confirmed? That’s great news.

And as for the other 3rd party options, I can easily see those changing / disappearing as V5 launches.

Also, do we know if RobotC support will continue for V5?
In the EP Summit, it seemed as if RobotC will be a thing of the past after this new environment is available.

Take a look back at the title to the right of @hotel 's name. :wink:

Lol, I barely read those things @callen

Yup! it’s on our site :slight_smile:

I hope they add themes to this new editor of sorts. I made a separate thread on these forums about the addition of Themes to the current editor. I’ll sum the thread up though. Basically, I was tired of getting bright screens from the current RobotC editor and thought if there was a way to get a Theme that made the editor ‘dark’ (like the Dark Theme on Visual Studio). Unfortunately, there was no such thing. So now I’m here to say this:

Please add Themes to this New Programming Environment!

I can’t speak for any other company, but Robot Mesh is adding additional programming languages to Robot Mesh Studio, and they will be available the day V5 is available. We are including more industry-standard content, plus the ability to design AND program robots onscreen.

Well if we’re doing this, I guess I should mention that PROS 3.0, along with supporting the V5 at launch, will be mainly a C++ environment out of the box (that’s right- no more semi-undocumented hacks!) :wink:

(Edit: now that I read this, I feel like it sounds as if I’m trying to one-up Robot Mesh-- let me assure you this was not my intent. I merely wished to also provide some information about the next revision of PROS.)

PROS actually has been working pretty well with C++ for us in its current version. Our main competition code is written in C++ and its been pretty stable. Only problems have been with char pointers being used as strings and __cxa_pure_virtual (being used for abstract classes) needs to be defined explicitly.

I ran into the same problem. What implementation have you chosen for


__cxa_pure_virtual

?

A highly questionable one… Don’t judge…


extern "C" {void __cxa_pure_virtual(){while(1);}}

What did you do?

That’s not all that questionable, plenty of people do it that way because it’s a loud error. However, I am concerned about locking the robot in a state where the motors are running, so for now I am calling


exit()

.

thats a good point. I’ll do that also. TY.

Also as a side note, I found I also had to implement these functions:


extern "C" {
  void __libc_init_array();
  void __cxa_pure_virtual() { exit(1111); }
}

namespace std {
  void __throw_length_error(char const*) { exit(1112); }
  void __throw_bad_alloc() { exit(1113); }
}

And I added


-fno-use-cxa-atexit

to CPPFLAGS in the makefile.

If anyone was confused, the five posts above this one are a great example of the “semi-undocumented hacks” I was referring to.

I have never used C++ before, I learned a bit of C syntax through RobotC in Vex IQ and the language that I’m learning now is python. Could anyone please recommend any tutorials or books which I could use to learn C++, specifically for PROS. Thanks,
Atlantis

Here is a good site with thorough tutorials.

In the interest of keeping this thread on-topic, please let’s make new threads for questions not pertaining directly to the OP’s question about ROBOTC after V5 comes out.