I’m not sure if I understand you both correctly:
of course you can programm the EV3 via BCC and gpp C/C++ feat. Code Sourcery Lite 2009 toolchains:
but the API functions are rudimentary (no sensor API), partially incomplete (e.g., motors, screen) or missing (multitasking), and in other respects partially bugged (buttons, screen).
E.g., in the current lms2012.h release it’s not possible to chain several different i2c devices to 1 sensor port and read or write them individually.
Anyhow, multitasking has been successfully implemented by me using POSIX pthread (linked to dynamically via makefile):
Unfortunately many additional bugs are due to Lego firmware and module lib issues (lms2012.h). Many people say the Lego has really screwed and messed up that thing.
There have been approaches to fix some bugs and extend API functions though (batchwise just for specific cases and meanwhile mostly stalling).
But in my limited understanding it could be definitely possible to use BCC also for different firmwares or cross compilers (e.g., ev3def, C#/Mono).
Java would be NEVER an option for me: far too many different classes and inaccessibly encapsulated objects!
One should have 1 Ueber-Class
which features and provides all methods and objects and procedures which currently have to be excruciatingly be searched and implemented and extended by other inaccessibly encapsulated classes.
Moreover, already the IDE (Eclipse) is a big crap, starting off from the installation procedure.