What programming environment do you use?

It’s been nearly 2 months since the release of our most release programming solution, ConVEX. So I’m curious to see what what solution forum members are using and why - please vote and post!

We’re using PROS this year for our competition robots, but I’m teaching the newer people how to program in EasyC before we get to using a “real system.” PROS feels extremely natural to use, both because of the command names and Eclipse (which we love for things like Autocomplete and Autoformat). Between that, the program being free, the fantastic documentation, and its compatability with a Linux OS we can’t see a reason to use anything else.

I plan to primarily use PROS this year, but if something goes wrong with it, I’ll be falling back to ROBOTC. I think PROS and ConVEX will be “stealing” users primarily from ROBOTC, and not easyC. EasyC is the simplest (and most rudimentary on the surface), with PROS and ConVEX being tied for most advanced. ROBOTC is going to be stuck in the middle, so we’ll see how that makes things this year…

To answer my own question, our team is going with ConVEX, the reason being simply that I love having jpearman’s libraries and stuff basically preconfigured for it. Otherwise, I see no huge difference between Pros and ConVEX. The latter does seem to have a bit of a steeper learning curve with the advantage of more features and flexibility.

Currently my hands are tied and I must use RobotC due to requirements and that I’m responsible for teaching our new team members for our college team RobotC, but if I can during this season I’m switching to ConVEX as soon as possible.

Since our team has a licence for RobotC, we don’t have a reason not to use it.

If I would use a new programming language, and something is not working right, I would not be sure if it was the code’s fault or the compiler’s fault.
I don’t want to sort out compiler bugs. 3rd party environment bugs slow down code development.

RobotC has a debugger and emulator, which are very useful tools, with or without a physical Cortex. RobotC also has a larger user base, meaning bugs will likely be found sooner. :slight_smile:

I see RobotC as the best option for our team right now. If other teams have a very tight budget, or are willing to test something quite new, PROS and/or ConVEX might be the best solution(s).

I’ve personally never agreed with the “we paid for it - now we need to use it” mentality. I do some IT work for my school and they refused to switch their web servers to linux because they paid for Windows Server and now it’s just a miserable disaster that I’m converting to Linux when we should have just done that from the start. I’m not saying that’s gonna happen here, just using it as an example that this isn’t a great mentality.

I do agree with you here.

Frankly, I’ve found the RobotC debugger to be basically useless since it doesn’t work in include files and other threads. On the other hand, a debugger is nonexistent in the 3rd party solutions and I do agree that errors are a bit harder to trace.

This one I completely disagree with. Well, not completely. I agree that they will be found sooner, but this does not mean they will be fixed sooner. With ConVEX, it is totally open source so you can even fix it yourself if you wanted, but jpearman is completely on top of bugs. I’ve also found the PROS folks to be extremely responsive in squashing bugs. On the other hand, I found the bug in RobotC where ternary expressions mess up the autoformat 2 years ago, and that’s still the same (granted, I never reported it, but surely someone else did with all these users.)

We’re one of those teams (willing to test - we have a tight budget but we already have a RobotC license so the point is moot.) I’d like to make it clear that I’m not criticizing your points or anything - just trying to understand everybody’s points of view and start some conversation!

I have always been a essay-c fan because I knew it so well but I am really excided about Prose/con-vex and will probably at least try one of them this year.

I don’t think I have that mentality, but maybe I do! :stuck_out_tongue:
And I didn’t mean that now that we have it, we have to use it. I meant that money is not in the way of using it anymore. :smiley:

The RobotC 3.6 debugger seems to work fine with #incude files, although not with tasks. (I don’t think they have every supported that.)
Our team does not take advantage of multitasking so that we can use the debugger, and it is very helpful.

This is true. RobotC releases are few and far between, and sometimes incomplete. If the user keeps track of known RobotC bugs, they might be able to create workarounds. (Which for sure is not as nice as having the bug squashed! :p)

I did not feel criticized. :smiley:
I think it is cool to see everyone else’s point of view too!

I agree here, the block programming is good for basics, but when you are trying to do more advanced things with sensors or any intricate remote controls the others are much easier. The problem is if you don’t know C you cant change from EasyC without learning a whole new way of programming and writing things.

Because robotics is inherently mechanical engineering oriented, you’ll see the majority of teams using easyC (because they don’t care to take the time to learn how to program “normally”). Many people who use ROBOTC are the ones who want to program. So, when you get more advanced programming options, some of them will gravitate towards those advanced options, like PROS and ConVEX.

Disclaimer: this is, of course, extremely stereotypical, so not completely true with every team…

I hope to use PROSe on my Mac but I don’t know how at this point. If anyone has a good tutorial series or some sample code I can decode, send it to me. I will be checking the PROSe page for more info

i use robotc, just because it was the first software that i downloaded, and i haven’t had the time/chance to change it, i am going to change over soon though …

So the results of the poll so far are interesting, the results for PROS and ConVEX are pretty much what I expected but I am surprised that EasyC use is down. Obviously the voters in these polls represent a small fraction of the total audience using VEX, in fact, the registered users actively posting on the forums is very small. We apparently have 53000 active users and only around 150 of these have reached post 100 (about 0.3%).

I searched back through the archives and didn’t find a poll like this until Oct 2011. (here)

That poll had ROBOTC at about 63% and EasyC at 38% (yes, the numbers didn’t quite add up).

This time around ROBOTC seems to have remained at about the same level but EasyC use has dropped off with users migrating to the new alternatives if we believe the results. (When this was posted ROBOTC was at 59%, EasyC at 16% ).

We have also had several discussions on the merits of ROBOTC vs EasyC, here is a thread that lasted several months.

Here is my current take on the subject.

ROBOTC is still, I believe, the best choice for the middle and high school competitions. I wish it were fully compliant with the C standard (initialized structures and function callbacks please) but the inclusion of a debugger is a huge benefit that should not be overlooked. I find no significant limitations and with some study can access all the features the cortex has to offer.

EasyC has far more capability than most of its users realize. You don’t have to use the flowchart programming, once you leave that behind you are now working with the bare C compiler with the same functionality (wrt the language) that PROS and ConVEX have. EasyC is crippled a little by a mediocre run time library, but it can still do the job. Intelitek needs to get on the program and freshen up the feature set, the fact that there is still no VEX speaker support and that their answer for this is recommending the code I hacked together one morning in 4 hours is sad.

I wont say much about PROS and ConVEX, they are more similar than different but PROS has made life easy by creating a one stop solution with a pre-configured eclipse IDE and a really nice flash downloader. ConVEX was created for the hackers(1) (and I don’t mean evil hackers), figure out the installation for yourself, its goals were to be open source, powerful and extendable.

(1) I figured I should clarify what I meant by hackers as it tends to have a bad connotation for some people, here is a definition from wikipedia.

Read the full entry here.

+1 on this and Robot C. Robot C was the choice made before I got into our club but I whole heartedly endorse it and would not sway from it. It’s a gateway programming environment introducing you to the real world IDE’s without the massive overhead. I have not used Pros or Convex but they do intrigue me.

Robot C offers a nice blend of what is needed to really program while still providing a cushion gcc would not necessarily provide (didn’t you mean to capitalize that variable? I have not seen that variable, I assume it’s a short int). Not having to worry about memory management is also nice for beginners but bad for experienced folks.

We’re trying to instill in our club to have kids not only get interest in STEM related activities but show some more real world exposure. Couple that with making something still digestable to a middle schooler. Programming is a big jump but Robot C offers a nice boost to develop your skills.

Half of our kids come into Vex from Lego but half don’t. So many kids have had their time using drag and drop programming like Easy C. Robot C offers a good debugger to view what is going on and reasonable set of activities to control the robot.

I also like the bridge Robot C provides to also program Arduino for those kids wanting to build their own franken bots in high school projects or toy around more with their old NXT’s with that support.

Virtual worlds is also a good feature set. But the requirements for optimal usage is higher than most of the cheap Intel i3 laptops we buy for our kids to use in robotics.

On the wish list, I would love to see some more features for source code control integration in Robot C. Email your team the code is the popular method of versioning and backup.

I’d also like to see more I2C ability for additional sesnor types (college level of own projects) but I thought that was Vex’s firmware masking that, not Robot C’s.

Cost of robot C is reasonable for a programming environment too. It keeps them employed I guess and updates/fixes coming. If not Robot C, Convex/Pros would be my next choice. But it would make for a bigger initial hurdle to overcome in learning to program.

Okay Jpearman first:

My guess here isn’t that EasyC users have migrated to Pros and ConVEX but rather that users are switching from RobotC to Pros and ConVEX at the same rate that they are switching from EasyC to RobotC. I believe this is a good thing because this seems to imply that programmers are trying more advanced things.

I agree that it can access all the features of a cortex but I personally find the Eclipse IDE to be well worth the loss of a debugger. I honestly find the debugger to be super difficult to use and usually I just printed to the debug stream anyway. The only advantage I saw was that it produced useful error messages while ConVEX (and Pros?) just crash the Cortex which, granted, could make things much more difficult in a stressful competition environment.

The thing is, if you are going to go with the non-flowchart route here then ConVEX and Pros are definitely better choices - the only advantages EasyC has over these options is that:

  1. There is a company behind it
  2. It has the option to use flowchart programming

And Team80_Giraffes:

These are probably the best arguments RobotC has and I agree that because of these things RobotC will probably remain a big player in VEX. We still use RobotC for classroom robotics but for the clubs we’re switching all the teams off of it because they can handle the more advanced feature set.

Never tried it so can’t really comment. Could you explain why this is something you use?

I think if your teams can handle version control systems, they can handle Pros.

Nope it is not the vex firmware. ConVEX allows you to make new I2C sensors although I don’t have any experience messing with that.

I have to disagree with you here. Paying 240$ for 6 people to use a programming environment that doesn’t let them work together with an integrated version control system is not reasonable.

I’ve been writing a library to make this hurdle smaller for ConVEX and I’m actually finding that with it kids are learning ConVEX faster than they were learning RobotC in the past. It seems to take them longer to debug problems the first time they show up, but from then on they learn to be more careful about things like array access and division by 0 and I’m finding that they thus make fewer mistakes in the future because they’re spending more time planning things out rather than blindly writing code.

I agree for the most part. RobotC’s IDE definitely leaves something to be desired. But if RobotC had command line compiling, with the debug stream routed to a .txt file and the window for variables/motors, I wouldn’t have a reason not to use it. (I requested this yesterday. :stuck_out_tongue: I probably will not hear back for a few days… And they probably will not implement it. :()

Don’t get me wrong, I wish RobotC would adhere to the C standards. I don’t want to risk using a new OS or compiler for an upcoming season. Next season, maybe. (Except this is my last season as a student).

The other thing is, since my team has a license, I don’t see anything better about PROS/ConVEX other than RobotC’s IDE. I have not used them; I would like to try them out sometime. They look cool.

:stuck_out_tongue: :smiley:

My team is using easyC this year. While I have used ROBOTC and am a perfectly capable programmer, other people on the team have to read the program that don’t have these skills. I personally am fine with using easyC. It is a little slow but it works, and honestly it is just C shown with little blocks. When I want to do something more complex, I just use C-code blocks. More time-consuming? Yes, but I am fine with it, and having others being able to read the program easily is good.

I know that you might think the other on my team are lazy for not learning and moving on. Maybe you are right, but there are other good reasons as well. It is much easier for them to read if I am gone, for instance.

Just how we are doing it for now.

This is what I miss, having migrated to PROS. Last year I could show the code to even non-programmers and they could figure out exactly what I was doing. Now, all they see is a bunch of strangely formatted black and blue text with green lines everywhere. The user interface is what makes EasyC such a valuable option to teams, and for any flaws regarding functionality this is a huge strength.

In the summer everyone scatters to the four corners so it gives something they can use and hone their programmign skills a bit.

Hoping to get more kids to do a CAD import this coming summer to try a few things out.

Just be thankful we’re not dealing with Oracle, IBM, Microsoft, or some other big name software place that charges a heck of a lot more.

You can put your code on dropbox, google drive, sharepoint or some other place that will try and enforce only one person writing the file at a time in a group environment. Not ideal, but allows sharing. But yes, real version control would be very nice.

Emacs key binding too but that is just for me…