Page 1 of 2
Programming Environment Recommendations
Posted: 07 Oct 2012, 04:18
by legofoote
I've used RobotC in the past a fair bit to build my robots a year or two ago. I'm now looking to pick up where I left off with my robot and am wondering if I should continue with RobotC or try something else. To this end, I'm looking for any input anyone might have. Below are a few of the considerations.
1. I've got a pretty decent program setup for my current robot in RobotC.
2. I have a desire to get an ultrabook later this year or early next year. The front runner is a MacBook Air, so it would be nice to do the programming from the new ultrabook - i.e in a Mac environment.
3. I've had a fair bit of experience programming in C, hence the RobotC, but I've programmed next to nothing in Java.
4. I like the integrated environment that RobotC provides, debugger windows and all.
5. With three kids, I'm a bit time constrained, so the desire to spend a lot of time learning a new environment is low. This, incidentally, is why there's been a year or two hiatus.
6. One thing that gets me with RobotC is that right now I have a paid version of 2.0. It looks like I'll have to shell out for 3.0. This isn't too big a deal, it's just that if I'm only doing this off and on here and there with large breaks in between, I don't want to always be shelling out money just to start back into it.
7. I don't mind learning a new programming language (i.e. Java), but I also don't want to have to spend like 80% of my time just learning a new language. I've had a fair bit of experience with C, Basic, VB, Fortran, Linux Shell scripting.
So, those are my considerations. None of them would be considered a hard requirement. I've not used any other environments other than RobotC and the Lego provided one. Therefore, I'd like some feedback from people that do use some of the other environments.
Any help would be great.
Thanks!
LegoFoote
Re: Programming Environment Recommendations
Posted: 07 Oct 2012, 09:08
by HaWe
I don't quite understand the underlying problem -
what actually are the limitations of RobotC so that you want to change to another PL?
Which features are indispensable?
Which additional features do you need to have?
Re: Programming Environment Recommendations
Posted: 07 Oct 2012, 10:23
by mightor
I've used quite a number of programming environments for the NXT (Lejos, NXC, NXT-G) but I always go back to ROBOTC. I like the debugger, editor and all the other features it has. If you liked all these things before, why not stick with it?
- Xander
Re: Programming Environment Recommendations
Posted: 07 Oct 2012, 13:20
by legofoote
My current paid version of RobotC is 2.x. I was looking at the website and realize that I would have to pay to upgrade to 3.0. This started the line of thinking that I might want to try another environment. Also, I realized that it doesn't work on a Mac, so that further strengthened my thinking to try another environment.
I agree that I always have the option of sticking with the 2.x version I have paid for which I might do if there is no compelling reason to try another environment. I don't think there are any limitations with RobotC 2.x right now that I know of so far I quite like it. The only thing that may be a limitation is if there are some problems with 2.x that have been addressed in 3.x or by other environments. I haven't run into any problems myself, but my use has been somewhat limited to my one robot so far.
Xander,
What is the debugger like for NXC or Lejos? Or is there any?
Thanks!
LegoFoote
Re: Programming Environment Recommendations
Posted: 07 Oct 2012, 17:04
by HaWe
doc-helmut wrote:I don't quite understand the underlying problem -
what actually are the limitations of RobotC so that you want to change to another PL?
Which features are indispensable?
Which additional features do you need to have?
Re: Programming Environment Recommendations
Posted: 07 Oct 2012, 22:09
by aswin0
doc-helmut wrote:doc-helmut wrote:I don't quite understand the underlying problem -
what actually are the limitations of RobotC so that you want to change to another PL?
Which features are indispensable?
Which additional features do you need to have?
I guess he is just curious.
I went from RobotC to Lejos last year. I think Lejos is a much cleaner environment , it also has the benefit of some robotics support like piloting, navigation etc. I found the java language easy, although I'm not very good at it. I find the environment difficult. For that reason I never use its debugging capacity. Eclipse, the IDE, is very supportive. The community also is very supportive but not very talkative.
I do respect any other choice, just wanted to share my experience.
Re: Programming Environment Recommendations
Posted: 08 Oct 2012, 10:11
by HaWe
of course, if nothing is missing I certainly would stick to it.
Re: Programming Environment Recommendations
Posted: 08 Oct 2012, 16:46
by hassenplug
legofoote wrote:My current paid version of RobotC is 2.x. I was looking at the website and realize that I would have to pay to upgrade to 3.0. This started the line of thinking that I might want to try another environment. Also, I realized that it doesn't work on a Mac, so that further strengthened my thinking to try another environment.
I think you've identified two of the main issues with Robot C. (1) Paid software (2) PC only
If you're looking for something comparable, NXC is not a bad option that doesn't have these draw-backs.
Also, if your kids become interested in LEGO Mindstorms, they may want to do some programming of their own, maybe using NXT-G (the stock LEGO software). They would not be able to do that at the same time as you're using RobotC, because RobotC requires a special firmware. NXC can use the same firmware as NXT-G.
bottom line: it comes down to personal preference.
Steve
Re: Programming Environment Recommendations
Posted: 09 Oct 2012, 03:11
by legofoote
Hey guys, thanks for the feedback... I've been doing some thinking about the "features" question. I must admit, I don't really have a required features list. I just started playing with my Robot after a hiatus of a year or more so I'm not really into the right mindset. One thing that did come to mind, however, was that I like to play around with the Hi-Technic sensors, mainly the gyro and I have big plans for the IR transmitter for the PF motors. So I guess that would be a required feature that the environment support the Hi-Technic sensors. I know Xander has done a lot for RobotC (thanks a million, btw). Is there the same kind of support for NXC or Lejos?
As for programming in Java, I must admit that for some reason I have a long standing aversion to Java... I have no idea why but I've never picked it up. Is programming in Java much of a learning curve from C?
Also, Steve, thanks for thinking of my kids! After much consideration I've decided that if my kids want to start programming their own robots (which would be awesome) then this sounds like a good excuse to get another NXT brick, or upgrade and hand mine down when the time comes
(I estimate 2-3 more years).
With RobotC, I do like the integrated environment, reminds me of working in C++ Builder. Does NXC work the same way?
With the PC thing, it looks like all of these environments are geared for a Windows environment. I guess if I get a MacBook Air I'll have to run bootcamp or something. Seems a bit overkill, but if I have to I suppose.
Oh, one last thing. Like I said, I started playing around with my robot the other night and was working in RobotC ver 2.?? (don't remember the last two digits). It certainly works for me. Is there any compelling reason to upgrade to 3.x? I did see that 3.x supports pointers which would be nice for my current program because I had to use a global variable to get around the no pointers issue.
Thanks again!
legofoote
legofoote.wordpress.com (I'm not much of a blogger, but I try; this is about two of my "hobbies")
Re: Programming Environment Recommendations
Posted: 11 Oct 2012, 15:23
by afanofosc
Both NXC and leJOS have support for virtually all the sensors that Xander has support for in RobotC. The Bricx Command Center works a lot like C++Builder or Delphi. It is a full-featured IDE with many tools for developing and debugging code. It supports the NXT plus all earlier programmable bricks made by LEGO. With the RCX it supports multiple compilers/languages. You can program in Pascal, C, or C++ with brickOS. You can program in Java with leJOS. You can program in Mindscript and LASM using the LEGO-provided compiler for the RCX. And you can program in NQC with either the original RCX 2.0 firmware or with Dick Swan's fast RCX firmware. You can also program the Scout, Spybot, and CyberMaster bricks using NQC, Mindscript. or LASM. With the NXT you can run either the standard or enhanced NBC/NXC firmware and program the brick using NXT Byte Codes (NBC) or Not eXactly C (NXC). Since the enhanced firmware is fully compatible with the standard firmwaare you can also use the LEGO MINDSTORMS NXT software to program your NXT without having to reflash a different firmware image.
The IDE provides many tool windows which can be used with all programmable bricks plus a few specifically for working with the NXT, such as the NXT Explorer and the NXT Screen tools. The editor is highly customizable. There are several macro and template options to make reusing code snippets very easy. Context-sensitive help for language and API keywords. Grep searching. Code explorer window, Procedure list window (ala GExperts of Delphi and C++Builder fame). Plus tons more, including your choice of MDI or a multi-tab windowed interface.
John Hansen