wie ihr hier und hier vielleicht schon gelesen habt, sind wir gerade dabei, die Community-Firmware um zwei Entwicklungsumgebungen zu erweitern, mit denen man dann direkt auf dem TXT Apps entwickeln kann. "Direkt" heißt hier, dass man außer dem TXT (mit Community-Firmware) und irgendeinem Gerät mit einem einigermassen modernen Browser (PC, Tablet, Smartphone, ...) nichts weiter braucht, um direkt loszulegen.
Die beiden Entwicklungsumgebungen, die wir aktuell einbauen wollen sind:
- Jupyter/IPython: Das ist ein System, mit dem man "Notebooks" erstellen und ausführen kann, die neben dem eigentlichen (Python-)Code noch Dokumentation, Erklärungen und sonstigen Text enthalten können. Wie so ein Notebook aussieht kann man sich unter https://try.jupyter.org/ ansehen (da dann am besten das "Welcome to Python"-Notebook auswählen).
- "RoboBlocks" (Arbeitsname, wenn jemand einen besseren hat bitte melden): Das wird ein Scratch-artiges System, das speziell auf den TXT zugeschnitten ist. Die Zielgruppe sind Programmieranfänger. RoboBlocks wird auf Blockly basieren, einen ersten Eindruck wie das auf dem TXT aussehen könnte kann man sich direkt unter https://developers.google.com/blockly/ ansehen (denkt Euch die rechte Seite mit der Anzeige des Programmcodes weg, das wird es in RoboBlocks so eher nicht geben).
In diesem Thread möchte ich vor allem diskutieren, wie man die beiden aktuell geplanten (und eventuelle zukünftige, z.B. eine generische IDE auf Basis von https://ace.c9.io/) am besten in die Community-Firmware integriert.
Im Groben stelle ich mir die Integration und die Anforderungen an die IDEs so vor:
- Alle CFW-Entwicklungsumgebungen erzeugen und bearbeiten Apps für die Community-Firmware. Die Apps werden immer auf dem TXT gespeichert (und geladen), von dem aus auch die IDE abgerufen wird.
- Wenn irgendwie möglich können die mit einer integrierten Entwicklungseumgebung erstellten Apps autonom laufen, d.h. ohne dass die jeweilige Entwicklungsumgebung laufen muss (immer ist das nicht möglich, weil z.B. IPython-Notebooks vom Konzept her immer über den Browser gesteuert werden auch wenn der eigentliche code auf dem TXt läuft).
- Alle in der Community-Firmware integrierten IDEs brauchen für die Ausführung nur einen (halbwegs modernen) Browser, der das Webinterface des TXT aufrufen kann.
- Die IDEs können direkt über das Webinterface des TXT angesprochen werden und müssen nicht explizit auf dem TXT gestartet werden (d.h. die IDEs sind selbst keine Apps)
- Wenn eine IDE gerade nicht läuft, dann verbraucht sie auf dem TXT auch keine Resourcen (außer Speicherplatz auf der SD-Karte).