Answers.Body: <p>You have various options.</p>
  
  <p>If you use Linux mainly ev3dev is a good start I think. I've worked with Java (<a href="http://www.lejos.org/" rel="nofollow noreferrer">LeJOS</a>) and C# (<a href="http://www.monobrick.dk/" rel="nofollow noreferrer">MonoBrick</a>) in combination with the LEGO Mindstorms Education EV3. But there are more bindings for the EV3. If I recall correctly at least for Python, C, C++ and some more educational friendly languages. The information you need to write your own language/compiler for the EV3 platform are available on the LEGO Mindstorms website. I'm currently developing my own language, compiler and IDE for my master thesis.</p>
  
  <p>The more general question you must answer yourself is: What's the goal you want to achieve? Do you want to learn how to program or do you have already knowledge in one or more languages? If you want to learn how to program you should IMHO use a more beginner friendly language like the EV3-G (the graphical language you mentioned). If you already have some knowledge you can start with a text-based language.</p>
  
  <p>The second question is: Do you want to use/learn a graphical language or a text-based one? There are graphical alternatives to EV3-G like the <a href="https://www.open-roberta.org/en/welcome/" rel="nofollow noreferrer">Open Roberta Project</a>. It uses a Scratch like language (based on the same JavaScript library).</p>
  
  <p>Hopefully I could give you some hints because the topic is more complex than many think in first place. If you have more questions just feel free and ask.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-08T08:46:23.353Z
Answers.Text: Thank you. Just one more question: is mapping the EV3-G instructions, tutorial steps to ev3dev is mechanical (I mean, there is an equivalent ev3dev command to each of the EV3-G boxes with the same parameters) or is it a challenge to turn the former into the latter? First, I'd like to experiment with "established" structures which could usually be built from EV3-G instructions.
Answers.UserDisplayName: Hendrik
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-08T11:02:59.380Z
Answers.Text: @Hendrik with every programming language you can use, you'll fine that the basic instructions are largely the same - i.e. turn on a motor, display some text on the screen, variables and control structures, etc. So whilst it may be different laying the foundations of a program, and what code you need to write to perform these actions, the pseudo steps should remain fairly consistant
Answers.UserDisplayName: shea
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-08T11:12:05.530Z
Answers.Text: I agree with @shea. Many basic operations for controlling your robot or in general interactions you have a set of operations that can be used for example in EV3-G. You will find those operations in every other language for the EV3, too. Of course you have to transform your knowledge and your program workflow to that new language. Especially when you come form a visual language. But that's every time the case.
Answers.UserDisplayName: Fabian Deitelhoff
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-07T23:10:20.460Z
Answers.LastActivityDate: 2017-02-07T23:10:20.460Z
Answers.UserDisplayName: Fabian Deitelhoff
Body: <p>I'm just starting to use the LEGO Mindstorms EVE robot and I'm a bit hesitant which way to choose for programming: the official graphic software or any alternative (preferably the Linux based ev3dev)?</p>
  
  <p>I don't really use Windows and find the official pictogram-like GUI cumbersome and a bit childish, so I tend to pick ev3dev. </p>
  
  <p>At the same time, most of the tutorials/instructions are based on the official program and I don't know if there is a straightforward way to map all these steps to ev3dev instructions; moreover, I'm a bit wary to rely on an unofficial 3rd party solution (maybe it is immature, error-prone, buggy, incomplete etc.). But I definitely want to stick either of them, no time to try out both extensively...</p>
  
Tags: <ev3><programming><software>
Title: What is the best way to program Mindstorms EV3?
UserDisplayName: Hendrik
ThreadText: # What is the best way to program Mindstorms EV3?
  
  (Asked by: username_0 on 2017-02-07)
  
  I'm just starting to use the LEGO Mindstorms EVE robot and I'm a bit hesitant which way to choose for programming: the official graphic software or any alternative (preferably the Linux based ev3dev)?
  
  I don't really use Windows and find the official pictogram-like GUI cumbersome and a bit childish, so I tend to pick ev3dev.
  
  At the same time, most of the tutorials/instructions are based on the official program and I don't know if there is a straightforward way to map all these steps to ev3dev instructions; moreover, I'm a bit wary to rely on an unofficial 3rd party solution (maybe it is immature, error-prone, buggy, incomplete etc.). But I definitely want to stick either of them, no time to try out both extensively...
  
  **Tags:** ev3, programming, software
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2017-02-07. Score: 1
  
  You have various options.
  
  If you use Linux mainly ev3dev is a good start I think. I've worked with Java ([LeJOS](http://www.lejos.org/)) and C# ([MonoBrick](http://www.monobrick.dk/)) in combination with the LEGO Mindstorms Education EV3. But there are more bindings for the EV3. If I recall correctly at least for Python, C, C++ and some more educational friendly languages. The information you need to write your own language/compiler for the EV3 platform are available on the LEGO Mindstorms website. I'm currently developing my own language, compiler and IDE for my master thesis.
  
  The more general question you must answer yourself is: What's the goal you want to achieve? Do you want to learn how to program or do you have already knowledge in one or more languages? If you want to learn how to program you should IMHO use a more beginner friendly language like the EV3-G (the graphical language you mentioned). If you already have some knowledge you can start with a text-based language.
  
  The second question is: Do you want to use/learn a graphical language or a text-based one? There are graphical alternatives to EV3-G like the [Open Roberta Project](https://www.open-roberta.org/en/welcome/). It uses a Scratch like language (based on the same JavaScript library).
  
  Hopefully I could give you some hints because the topic is more complex than many think in first place. If you have more questions just feel free and ask.
  
  > **Comments:**
  > **username_0**: Thank you. Just one more question: is mapping the EV3-G instructions, tutorial steps to ev3dev is mechanical (I mean, there is an equivalent ev3dev command to each of the EV3-G boxes with the same parameters) or is it a challenge to turn the former into the latter? First, I'd like to experiment with "established" structures which could usually be built from EV3-G instructions.  
  > **username_2**: @Hendrik with every programming language you can use, you'll fine that the basic instructions are largely the same - i.e. turn on a motor, display some text on the screen, variables and control structures, etc. So whilst it may be different laying the foundations of a program, and what code you need to write to perform these actions, the pseudo steps should remain fairly consistant  
  > **username_1**: I agree with @shea. Many basic operations for controlling your robot or in general interactions you have a set of operations that can be used for example in EV3-G. You will find those operations in every other language for the EV3, too. Of course you have to transform your knowledge and your program workflow to that new language. Especially when you come form a visual language. But that's every time the case.  
  
  ---
  
  