A Graphical Integrated Development Environment is a user interface that provides an editor and some underlying scripts to aid programming. The scripts call various other programs like compilers, assemblers, disassemblers, debuggers etc at the click of a menuitem.
In the case of cross compilers - a process of building software on a build machine, usually an Intel or AMD based machine, for another architecture of CPU like ARM, AVR, PIC, MIPS etc.
Compiling software is a fairly intensive task requiring substantial memory and processing on the build machine. The bigger the program you are compiling the heavier is the resource requirement.
The GIDE adds yet another huge overhead.
The underlying scripts call the compiler with several flags to optimize the generated code, then linker and finally the assembler. The result is a binary file that can run on the intended architecture.
In the case of cross compilers one has to setup the entire environment called a tool chain. Which is a compiler for the specific platform, a linker, debugger, assembler and library and header files. Additionally for embedded systems like AVR, ARM, PIC etc an additional equipment known as programmer hardware is required and a program to run the programmer. Setting up all of this is a fairly involved and complex task. Many GIDEs - quite a lot of them from the chip makers - came with all of these software tools bundled in a huge package of several 100 MB and provide a “oneclick” installation.
If one does not have a programmer - which range from mere wire and connector connected to serial/parallel port to expensive dedicated devices - and a sufficiently powerful computer one is cutoff from learning programming and embedded hardware.
Notice that the GIDE actually is merely a glorified editor with all the hard work done by scripts.
If one could separate the GIDE from the toolchain and run a browser based “IDE” and shift the toolchain on a server, we should be able to use a smart phone as a development tool. Shifting tool chain to server then leaves the complexity of setup to system admins who are already very well versed in handling far higher software dependencies and complexity.
Using a mobile as a tool immediately dissolves the barriers that block those who do not have computers.
Further, the mobile itself has many built in sensors that can be used as very good aids in learning physics, biology etc. By adding some low cost external hardware we can expand vastly the range of experiments and activities.
There already exist software that attempt such separation of IDE and compilation. However their focus is not access through mobile phones.
One would have to do some amount of development work to get them working with mobiles.
Would it be a good idea to attempt this task?
Are the above assumptions on entry barriers valid?
Will such a tool enable those without PCs and expensive mobiles become hands on teachers makers and learners ?
What are the available browser based editors and do any provide code highlighting?