As a yet to be published iPhone hacker, now somewhat saddened by the
AppStore bouncers, I've turned to Android. I have a lot of Java and
J2ME experience but only eight months with Haskell. I hate java. The
JVM is awesome. Clojure is wish-fulfillment for Android right now.
Having used Chicken (scheme) in the past for generating applications
for people I know that compiling language A to language B can be
very successful, especially when the end-user doesn't know or care
how he got his app, only that it works.
So... where would be a good place to start with a DSL that could
produce Java code as its output? This is new to me! I've written
simple lexers and parsers and I know the ropes on that front but I
don't know haskell well enough yet to know how to go about it. I am
thinking that I'd need to create data types for the major classes,
or maybe not, if i can produce my own abstraction that generated
multiple classes in the output etc and so i descend into confusion
about where to start!
I suspect that state carrying monadic types will be prevalent, good
job I understand monads. Yes that was sarcasm. I've done the
Scheme-in-48 hours thing, so I am ok with parsec. I did consider
writing a "true" language that will code-generate java instead of a
DSL, that's still in my mind too.
As I understand DSL, it's up to me to invent my language to work
within the "domain" of Android and then make it create Java code for
subsequent feeding to the android tools. As a first guess, I am
going to study the "Hello Android" example and then see how I could
create a DSL around that little program.
As I see it, programming boils down to just a couple of things:
function calls and decisions. I appreciate that there is more to it:
XML files and images etc to be bound in but that's nothing a good
bash script won't fix for me!
Thanks,
Sean Charles.
PS: I know this is a *big* thing to take on but I love big and I
love learning so let's rip this one to bits.