2013-03-09

platforms and requirements to target

1.23: addx/targets are {python, c, obj'c, parasail}:
. if parasail is not on all the needed platforms
the base lang should be obj'c not c;
because, obj'c has better programming-in-the-large features;
well, does it support concurrency?
. anyway,
see the best way to support obj'c on linux .
... and see what base langs on linux
best support concurrency?
. there are 3 platforms to target:
# simple and secure:
. needs only c, and provides only
time-slicing for multitasking,
but is secure because
all the code is generated by adda .
# easy but less secure:
. uses python whose large c code base
may have vulnerabilities;
but, there is a way to get some real concurrency,
and there are many libraries already built
effortlessly .
# secure and concurrent:
. parasail is the best lang to target
both for security and concurrency,
but it may not be on all needed platforms,
and it won't be as easy as python
because so much more library code
will have to be my own .

16: news.addx/appinventor.mit.edu:
. appinventor.mit.edu features graphical programming,
with drag & drop control structures .
. Explore MIT App Inventor .
. App Inventor Source Code and doc's .
developer overview:
Google Web Toolkit (GWT)
allows programmers to write
client-server applications in Java
without worrying about the details of
remote procedure calls (RPCs)
except for providing explicit callbacks for RPCs
(one for a successful call, one for failure).
GWT compiles the client code into JavaScript,
which runs within a web browser,
and the RPCs run as Java code on the server,
with communication done via HTTP.
The reader is advised to learn about GWT
before delving into
the portion of  App Inventor
that runs in, or responds to requests from,
the user’s browser.

Google App Engine (GAE)
is a cloud-computing platform
that enables programs written in Java (or Python)
to run and maintain data on Google servers.
The original internal version of App Inventor
was built directly on proprietary Google infrastructure
but, for the open source release,
was rewritten to use GAE,
using the third-party Objectify datastore API.

GWT and GAE play well together,
where a GWT server can run on a GAE server.
This is how App Inventor works, as shown in Figure 1.

 The App Inventor client and server
are created with GWT,
which converts the front-end code into JavaScript,
which is run with the GWT client library in the user’s browser.
The back-end runs on the GWT server library
as a Google App Engine service,
using the third-party Objectify API for data storage.
Android
If you’ve never written an Android application before
and if you’re going to work on components,
the Hello, World tutorial is a good way to get started.
Scheme/Kawa
Kawa is a free implementation of Scheme
that compiles to Java byte code,
which can be converted by the tool dx
into Dalvik bytecode (the Android vm)
We use Scheme as the internal representation of users’ programs,
and part of the runtime library is written in Scheme.
These get compiled down to byte code
and linked with our components library (written in Java)
and external libraries (written in Java and C/C++)
by the buildserver.

 Can I use App Inventor without a phone?
Yes. App Inventor includes an emulator for the phone.
The emulator can’t do everything the phone can.
For example, you can’t shake it
but you can create apps and try them out.
Once you've set up your computer
with the Hello Purr Emulator
- Part 1 tutorial will show you how to
build apps with the emulator.
able to upload my app to Google Play
(the Android Market)?
$25 registration fee .
. android publishing guide .
. Upload applications .