[list][*]Full support for classes with local method names, inheritance, overloading.
[*]World class development environment using eg. Eclipse or Netbeans
[*]Full support for recursion, threads, dynamic allocation, automatic garbage collection.
[*]Good performance, yet safe programming without worrying about pointers or indexes
[*]Plenty of built-in data types (int, float, double, long, ..)
[*]All free, completely open source, and works great on my favorite platform: Ubuntu[/list]
Produces:
Full support for classes with local method names, inheritance, overloading.
World class development environment using eg. Eclipse or Netbeans
Full support for recursion, threads, dynamic allocation, automatic garbage collection.
Good performance, yet safe programming without worrying about pointers or indexes
Plenty of built-in data types (int, float, double, long, ..)
All free, completely open source, and works great on my favorite platform: Ubuntu
Of course, I still hate (not a strong word ) Java.
Language pro/cons:
NXT-G
"Easy" (for "beginners")
Slow
Commercial ($??)
NXC
Lots of "Enhanced" API integrated with firmware that other languages don't support
Works with all Standard Firmwares and Enhanced NBC/NXC Firmwares
RobotC
Execution Speed is LEGENDARY
Debugger
Commercial ($30)
LeJOS
See spoiler for kvols's list
It's JAVA. >:)
nxtOSEK
"Real" C, I think
Pointers, Recursion
Others that didn't make the list:
Suck... Nah, I'm just kidding
Didn't make the list
Aren't on THIS list currently
Probably exist, but aren't mentioned on this list
Commit to LEGO Mindstorms Robotics Stack Exchange: bit.ly/MindstormsSE
Commit to LEGO Stack Exchange: bit.ly/Area51LEGOcommit
As much I love religious wars, I will lock this thread if it turns into a "X rules, Y drools" back-and-forth.
Just so it doesn't come as a surprise when it happens.
- Xander
| My Blog: I'd Rather Be Building Robots (http://botbench.com)
| RobotC 3rd Party Driver Suite: (http://rdpartyrobotcdr.sourceforge.net)
| Some people, when confronted with a problem, think, "I know, I'll use threads,"
| and then two they hav erpoblesms. (@nedbat)
My favorite language RULES. All others drool. (I think I can unlock the thread, if xander locks it...
My answer: I prefer to use the language that works best for the task at hand. I have used most of the languages listed for one project or another. As stated, they do have different pros and cons.
One of my favorite quotes: "When the only tool you have is a hammer, everything begins to look like a nail."
I have a pretty full toolbox.
Steve
---> Link to lots of MINDSTORMS stuff under my picture --->
As an occasional but opportunistic programmer I have always used whatever was available. When working in highway maintenance and my promised copy of Autocad failed to arrive I ended up issuing contract drawings prepared using the drawing elements in Microsoft Word!
Must say I like NXC, perhaps it is because I have already done some programming from time to time over the years but I find it much easier and faster to write than NXT-G. Don't know if I would have found it as easy if I had not learned about Lego programming by using NXT-G first though.
A sophistical rhetorician, inebriated with the exuberance of his own verbosity, and gifted with an egotistical imagination that can at all times command an interminable and inconsistent series of arguments to malign an opponent and to glorify himself.
Joking aside, I still prefer NXT-G just because it does what I need it to. I remember Brian Davis (he's still missing, why isn't he here ? Have we lost him to the Dark Side?) used to say that he used NXT-G until it just couldn't do what he needed it to do. If I remember correctly, even his two HALE platforms where programmed in NXT-G. I feel the same way, it works fine for me, I have a older computer but it is still quite powerful and NXT-G runs quite well on it. I understand it quite well, and most importantly, right now I don't need it to do anything else. When I do, I will switch to NXC and maybe, eventually, RobotC.
One King to rule them all, One King to find them,
One King to bring them all and in the darkness bind them
On Earth where Shadows lie.
I'm an NXT-G user, but for my twelfth birthday I asked for and received a book which would teach me how to program in LeJOS called:
I liked the first two chapters, but I found it impossible to learn the programming language. I guess that maybe it's because I was twelve then, and I was asking too much of myself to learn it. After much trying to comprehend it, I finally gave up, put the LEGO firmware back on my NXT and shelved that book, telling myself that I would look back into it some day. But now I'm more considering learning NXC instead.
Personally, I like NXT-G because if you have a robot, you have NXT-G and the graphical interface is easy to use and looks nice. I have used NXT-G as my sole programming language for the four years I used MINDSTORMS in school, mainly because I thought that NXT-G was the ONLY programming language. But, as my programs advanced, I realised I like working with the NXT brick functions- NXT Buttons, LCD Screen, Brick name, battery level, dark grey button, saving files- which are limited with NXT-G, so now I am starting to learn NXC as a second programming language.
Hello
I use NXC for all my projects, having not found any dramatic limits yet. LEJOS seems very interesting, i got the book, but never give it a real try yet.
I'm more focused now around firmware, with NXTGCC...