|My first Mindstorms robot design.|
The programming environment of Mindstroms is based on LabView, with nice graphical frontend. Programming is intuitive and easy. There are some program flow elements like loop and switch, but many advanced techniques are missing including synchronization of parallel execution flows, event handling, and message passing. Well, after all it's a toy intended for youngster.
EV3 runs stripped down version of Ångström distribution. Source code of the Linux is of course published as open source. There are instructions in Github how to build the firmware of the Brick by yourself.
The previous generation NXT version of Mindstorms is well supported by many programming languages, list of languages is available in Wikipedia. As the EV3 was released just recently, there are only few language ports available yet. One of the few is Java, with help of leJOS project (Java for Lego Minsdstorms). C# based Monobrick provides also communication interface to PC. Support in official LabView is expected during first half of 2014.
I just purchased an EV3 and constructed my first Mindstorms robot. My intention is to include EV3 robot as a part of my web technology demonstration at Embedded Conference Scandinavia, November 5-6 2013, in Stockholm. The robot will wave couple of Freescale Freedom evaluation boards, in order to generate non-static accelerometer data to be transmitted to cloud and further to mobile user interface. (In the picture above, there are Arduino boards, as I didn't had FRDMs in hand at the time).
Why Mindstorms? Well, in fact the EV3 utilizes all the same core technologies which are de-facto key technology choices of my company: ARM, Linux and LabView. Well, LabView is not used for application programming a top of Linux, but in implementation of production test systems.