Answers.Body: <p>With <a href="https://www.ev3dev.org/" rel="nofollow noreferrer">ev3dev</a> pretty much any programming language you can run or compile for the ARM board can be used. All you really need to be able to do is read and write to a file. This is because ev3dev is based on Debian Linux and has drivers to communicate with the hardware through virtual files.</p>
  <p>That being said, typically you will probably want to use a library which abstracts the low-level API. The following are currently well-supported.</p>
  <ul>
  <li>Python</li>
  <li>Java</li>
  <li>Go</li>
  <li>C++</li>
  <li>C</li>
  <li>Prolog</li>
  <li>Vala, Genie, and other GObject-based languages</li>
  <li>Rust</li>
  </ul>
  <p>You can find the full list and some other 3rd-party libraries on <a href="https://www.ev3dev.org/docs/programming-languages/" rel="nofollow noreferrer">the ev3dev Programming Languages page</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-12-26T04:40:52.967Z
Answers.LastActivityDate: 2021-01-03T21:31:27.127Z
Answers.LastEditDate: 2021-01-03T21:31:27.127Z
Answers.UserDisplayName: Alexander O'Mara
Answers.Body: <p>I would definitely check out <a href="http://www.ev3dev.org/" rel="nofollow noreferrer">EV3Dev</a>.  You find a large variety of different languages to program your Mindstorm Ev3.  You can use <a href="https://sites.google.com/site/ev3python/" rel="nofollow noreferrer">EV3Python</a> to program with python which might be a level-appropriate step up from the Lego programming interface.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-22T19:57:47.153Z
Answers.LastActivityDate: 2017-02-22T19:57:47.153Z
Answers.UserDisplayName: Brock Harris
Answers.Body: <p>If your son has no previous knowledge from other programming languages I suggest to start with the LEGO language called <code>EV3-G</code>. That's the visual one included with the EV3. As an alternative you an use the <a href="https://www.open-roberta.org/en/welcome/" rel="nofollow noreferrer">Open Roberta Project</a> which uses a visual language too, but a slightly different one in terms of concepts.</p>
  
  <p>If you want to program the EV3 by yourself you can choose between various options. There are bindings/libraries at least for C, C++, C#, Java, Python. Good mentions are <a href="http://www.monobrick.dk/" rel="nofollow noreferrer">MonoBrick</a> (C#) and <a href="http://www.lejos.org/" rel="nofollow noreferrer">LeJOS</a> (Java).</p>
  
  <p>With a little bit more information about your preferences and your goals I think you can get more detailed recommendations.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-13T08:34:13.507Z
Answers.LastActivityDate: 2017-02-13T08:34:13.507Z
Answers.UserDisplayName: Fabian Deitelhoff
Answers.Body: <p>There's an extension for Scratch to work with EV3 - might be worth a look.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-23T01:14:30.213Z
Answers.Text: http://kaspesla.github.io/ev3_scratch/
Answers.UserDisplayName: chicks
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-17T00:35:43.323Z
Answers.Text: The Scratch extension seems more focused on making controllers for your games than controlling the actual robots with scratch.
Answers.UserDisplayName: technicguy1
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-22T21:00:19.037Z
Answers.LastActivityDate: 2017-02-22T21:00:19.037Z
Answers.UserDisplayName: Jim W
Answers.Body: <p>Another option is Small Basic, designed for children. Download <a href="https://sites.google.com/site/ev3basic/" rel="nofollow noreferrer">EV3Basic</a> and get started!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-07T17:38:38.833Z
Answers.LastActivityDate: 2019-11-08T09:03:38.037Z
Answers.LastEditDate: 2019-11-08T09:03:38.037Z
Answers.UserDisplayName: Iskander
Answers.Body: <p>I know three variants:</p>
  
  <ol>
  <li>LEGO MINDSTORMS EV3 Home Edition</li>
  <li>LEGO MINDSTORMS Education EV3</li>
  <li>ROBOTC</li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-24T18:45:09.897Z
Answers.LastActivityDate: 2017-02-26T16:22:00.873Z
Answers.LastEditDate: 2017-02-26T16:22:00.873Z
Answers.UserDisplayName: Maksym Astapov
Body: <p>My son is interested in robotics. For me, I would like maximum flexibility for programming. For my son, I guess something simpler would be preferable so that his interest is not killed by complexity right from the start.</p>
  
  <p>What are the programming languages that can be used on Lego Mindstorm EV3?</p>
  
  <p>I am new to Lego Mindstorm.</p>
  
Tags: <ev3><programming>
Title: What are the programming languages that can be used on Lego Mindstorm EV3?
UserDisplayName: user781486
ThreadText: # What are the programming languages that can be used on Lego Mindstorm EV3?
  
  (Asked by: username_0 on 2017-02-12)
  
  My son is interested in robotics. For me, I would like maximum flexibility for programming. For my son, I guess something simpler would be preferable so that his interest is not killed by complexity right from the start.
  
  What are the programming languages that can be used on Lego Mindstorm EV3?
  
  I am new to Lego Mindstorm.
  
  **Tags:** ev3, programming
  
  
  ---
  
  ## 6 answers
  
  ### Answer by username_1 on 2019-12-26. Score: 4 | Accepted answer
  
  With [ev3dev](https://www.ev3dev.org/) pretty much any programming language you can run or compile for the ARM board can be used. All you really need to be able to do is read and write to a file. This is because ev3dev is based on Debian Linux and has drivers to communicate with the hardware through virtual files.
  
  That being said, typically you will probably want to use a library which abstracts the low-level API. The following are currently well-supported.
  
  * Python
  * Java
  * Go
  * C++
  * C
  * Prolog
  * Vala, Genie, and other GObject-based languages
  * Rust
  
  You can find the full list and some other 3rd-party libraries on [the ev3dev Programming Languages page](https://www.ev3dev.org/docs/programming-languages/).
  
  
  ---
  
  ### Answer by username_2 on 2017-02-22. Score: 3
  
  I would definitely check out [EV3Dev](http://www.ev3dev.org/). You find a large variety of different languages to program your Mindstorm Ev3. You can use [EV3Python](https://sites.google.com/site/ev3python/) to program with python which might be a level-appropriate step up from the Lego programming interface.
  
  
  ---
  
  ### Answer by username_3 on 2017-02-13. Score: 2
  
  If your son has no previous knowledge from other programming languages I suggest to start with the LEGO language called `EV3-G`. That's the visual one included with the EV3. As an alternative you an use the [Open Roberta Project](https://www.open-roberta.org/en/welcome/) which uses a visual language too, but a slightly different one in terms of concepts.
  
  If you want to program the EV3 by yourself you can choose between various options. There are bindings/libraries at least for C, C++, C#, Java, Python. Good mentions are [MonoBrick](http://www.monobrick.dk/) (C#) and [LeJOS](http://www.lejos.org/) (Java).
  
  With a little bit more information about your preferences and your goals I think you can get more detailed recommendations.
  
  
  ---
  
  ### Answer by username_4 on 2017-02-22. Score: 2
  
  There's an extension for Scratch to work with EV3 - might be worth a look.
  
  > **Comments:**
  > **username_5**: http://kaspesla.github.io/ev3_scratch/  
  > **username_6**: The Scratch extension seems more focused on making controllers for your games than controlling the actual robots with scratch.  
  
  ---
  
  ### Answer by username_7 on 2019-11-07. Score: 1
  
  Another option is Small Basic, designed for children. Download [EV3Basic](https://sites.google.com/site/ev3basic/) and get started!
  
  
  ---
  
  ### Answer by username_8 on 2017-02-24. Score: 1
  
  I know three variants:
  
  1. LEGO MINDSTORMS EV3 Home Edition
  2. LEGO MINDSTORMS Education EV3
  3. ROBOTC
  
  
  ---
  
  