
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.