Answers.Body: <p>When we did NXT programming in university we used NXC (<a href="http://bricxcc.sourceforge.net/nbc/" rel="nofollow">http://bricxcc.sourceforge.net/nbc/</a>) as our primary language.</p>
  
  <p>This is a C-stlye language, not exactly object-oriented, but seeing that NXT programming is practically equivalent to microcontroller programming, C is much better suited to this task in my opinion. In C you get a much clearer main loop that controls your robot, and I can't really see what benefits would object orientation bring to a platform that is clearly restricted in both input/output capabilities and computational resources.</p>
  
  <p>But if you really need object oriented design, take a look at LeJOS: <a href="http://www.lejos.org/" rel="nofollow">http://www.lejos.org/</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-04-26T00:02:59.993Z
Answers.Text: The last update of NXC is 2011, I'm not sure it's still maintained.  LeJOS seem to be updated frequently, I'll probably try this one.  Thanks
Answers.UserDisplayName: DarkPixel
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-04-25T08:42:25.497Z
Answers.LastActivityDate: 2014-04-25T08:42:25.497Z
Answers.UserDisplayName: zovits
Answers.Body: <p>You can use C++ with <a href="http://c4ev3.github.io" rel="nofollow">c4ev3</a>, also available as Eclipse Plugin.</p>
  
  <p>If you are ok with sending the commands remotely, you can even use any language that supports <code>popen()</code> like functionality, (which includes every useful language out there, with some bash-fu even Brainfuck). Check out <a href="https://github.com/c4ev3/ev3duder/blob/master/moveEv3.pl" rel="nofollow">moveEv3.pl</a>.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-09T09:05:27.587Z
Answers.LastActivityDate: 2016-06-09T09:05:27.587Z
Answers.UserDisplayName: a3f
Body: <p>I know this question was asked in the past, but I want an up-to-date answer.</p>
  
  <p>What is the best way to program with the NXT with a oriented object programming language?  Ideally C#, C++ or Java (maybe Python).</p>
  
  <p>I've search a bit, but I have difficulty to find what is popular today.</p>
  
  <p>I'm really interested in Mindstorms, but I don't want to program with boxes.</p>
  
Tags: <nxt><mindstorms><ev3>
Title: Programming with Lego Mindstorms EV3
UserDisplayName: DarkPixel
ThreadText: # Programming with Lego Mindstorms EV3
  
  (Asked by: username_0 on 2014-04-21)
  
  I know this question was asked in the past, but I want an up-to-date answer.
  
  What is the best way to program with the NXT with a oriented object programming language? Ideally C#, C++ or Java (maybe Python).
  
  I've search a bit, but I have difficulty to find what is popular today.
  
  I'm really interested in Mindstorms, but I don't want to program with boxes.
  
  **Tags:** nxt, mindstorms, ev3
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2014-04-25. Score: 2 | Accepted answer
  
  When we did NXT programming in university we used NXC (<http://bricxcc.sourceforge.net/nbc/>) as our primary language.
  
  This is a C-stlye language, not exactly object-oriented, but seeing that NXT programming is practically equivalent to microcontroller programming, C is much better suited to this task in my opinion. In C you get a much clearer main loop that controls your robot, and I can't really see what benefits would object orientation bring to a platform that is clearly restricted in both input/output capabilities and computational resources.
  
  But if you really need object oriented design, take a look at LeJOS: <http://www.lejos.org/>
  
  > **Comments:**
  > **username_0**: The last update of NXC is 2011, I'm not sure it's still maintained.  LeJOS seem to be updated frequently, I'll probably try this one.  Thanks  
  
  ---
  
  ### Answer by username_2 on 2016-06-09. Score: 1
  
  You can use C++ with [c4ev3](http://c4ev3.github.io), also available as Eclipse Plugin.
  
  If you are ok with sending the commands remotely, you can even use any language that supports `popen()` like functionality, (which includes every useful language out there, with some bash-fu even Brainfuck). Check out [moveEv3.pl](https://github.com/c4ev3/ev3duder/blob/master/moveEv3.pl).
  
  
  ---
  
  