Lego Mindstorms EV3: programming language recommendation
In general, would you recommend switching to a normal programming language (I am quite "fluent" in languages like C/C++, Python and Java) in order to avoid having to use blocks when building more complex programs?
  


Yes, especially if you plan on doing image processing.


  
  If so, which programming language would you recommend? I feel like there is a big community for leJOS and Java which is definitely a plus, although I could imagine that considering the fact that I would like to integrate a camera a language like C/C++ that works well with MATLAB or OpenCV for line tracking algorithms might also not be bad - what do you think would be the best idea for my use case?
  


I'd recommend using ev3dev, as it seems more-powerful and leJOS development appears inactive.

ev3dev has a few languages you can chose from, though your choice may be limited somewhat by which languages support the image processing libraries you want to use.


  
  Is it possible to use a different programming language without flashing my EV3 such that I can switch back to building blocks if I wanted to?
  


With ev3dev, you run the software off a removable micro SD card. No need to replace the internal firmware.