RobotC vs. EasyC

Our club currently uses EasyC and we were interested in converting over to RobotC but non of us have ever used it and we were just wondering some others opinions on the matter.

I personally Prefer RobotC, as I like C. If you have anyone on your team who codes in C outside of robotics, they will feel close to home. Also since code is just saved as .c files which can be opened in any text editor, the files are much easier to share. However, I do concede that for people who are new to programming as a whole will find RobotC more difficult to use. It is also important to consider that there are many key differences in the way the two programs handle values (ie. 0 in EasyC is full reverse, but 0 in RobotC is stopped).

My recommendation at this point would be go download the trial and use it for a few prototypes and see if you like it more or less. It is really just a personal preference.

If anyone in your club has experience with programming, RobotC is a much, much better option. Unlike EasyC, where a programmer is stuck programming in the EasyC paradigm, RobotC allows a programmer to program in whatever style he or she prefers, and allows for experimentation in technique, which can lead to more efficient code. For example, for Gateway I plan to program 254D’s robot with Finite State Machines, like we used for 254’s FRC robot this year. Using FSMs could drastically improve multi-tasking and could make adding functionality very easy. Doing this would be extremely difficult in EasyC. Hope this helps!

You might take a look at Matlab Simulink for EasyCv4, if you want to shift paradigms from C code to GUI line drawings. Its also interesting to see what kind of EasyC code libraries it uses or generates, since they were written by people with a different coding background than most of what you see here in the forum. Simulink is particularly useful if your team also participates in BEST Robotics.

With RobotC, you have the option of seeing the ASM/Pcode for the RobotC virtual machine. This gives interesting insights into machine architecture, and how choices of C coding idioms can affect compiled code. It would even be useful in a practical way

  • for memory optimization if you running low on memory,
  • or if there were enough information available about the RobotC virtual machine to optimize for it,
    – and if your code needed optimization for speed.

I find that RobotC compiles much faster, which promotes rapid iteration.
There are lots of pretty external editors you can use for .c text files,
and also other formatting utilities like ctidy, and revision control utilities as well.

I personally prefer RobotC, because I’ve become very familiar with Java and C++. It also compiles a lot faster. Another part I love is that it saves in C! Due to this, a programmer can open the file in a text editor, opposed to EasyC’s file. I also type things a lot faster than I can click-drag-entersomethings-tab-…

EasyC however, taught other members of the club basic programming. It’s not that steep of a learning curve opposed to RobotC, meaning more people can become basic programmers. One thing I love about EasyC, is the fast and easy programming of driver control. click-drag-type boom! (exaggeration) You can drive the robot now. :slight_smile:

Of course, there are trials. It’s how I convinced my teacher to even consider RobotC in the first place.

I’m also trying to evaluate both before our team commits to more licenses. Last year the team was using RobotC at a beginner to intermediate level with reasonable success. This year I was planning to teach some more advanced techniques to the seniors, structures, pointers, pointers to functions etc. but had not realized that RobotC did not support traditional C pointers. I understand the reasons and this has been debated before so it is what it is.

Easy C does appear to support these features and it seems quite easy to jump from the flowcharted code to “normal” C code files. In fact, it looks as if all user code could be written this way if desired. Has anyone used easyC in this way? are there any drawbacks other than now having to deal with the usual syntax errors and such?

I think they have (finally) fixed that, but 2.31 was really bad.