Hi,
thanks for your offer, and sorry for my late reply -- I've been away during the weekend.
Some Amiga C-coding experience would make things easier. But I have to say that i didn't have super much Amiga coding experience when starting this project, although quite some C coding.
With that said, I do think there is stuff that can be made using just Java. The Eclipse java compiler (NB: just the compiler, not the Eclipse IDE) works with the latest Jamiga, so you can actually write your own java applications on the Amiga (and of course run them). Mind you, you can of course just compile stuff on any java compatible machine, and run on the Amiga.
A few things one could do:
2. I'm also thinking of various API's for Amiga specific functionality. There is already an API for message ports, and I have been primarily thinking of ARexx. I haven't begun this process at all, but have thought in terms of either doing some sort of annotation based framework, or just go for some interface or abstract class. What would be nifty would be something like:
package org.jamiga.test;
@Address("myarexxport")
public class RexxTest {
@Command("dostuff")
public String doStuff(@Arg() String name) {
return "hello "+name;
}
}
Which would then be callable in an ARexx script using something like:
address "myarexxport" DOSTUFF name=world
say Result
Which would output "hello world".
This requires some experience in ARexx, in order to capture all of its uses (stuff like the stem variables, call backs and such), but I think it should be possible to knock up at least an idea for an API. The native library would most likely be a simple mapping of the real ARexx library.
Perhaps there already is a thought out API for this kind of functionality? Perhaps one could hook into the
jax.rs stuff? Or just do a really general framework using reflection, so that the above java code could be called with just:
address JAMIGA.1 org.jamiga.test.RexxTest doStuff "world"
Hmm... Yes, I really like the last idea, actually. With some clever reflection, the result object could be mapped to an ARexx stem variable, which would minimize the need for custom Java code to nearly nothing. It kind of really brings the two lovely worlds of Java and Amiga into one! Hmm... Precisely what I want, actually.
Well, that some suggestions. Suggestion number two will probably require some native C code to become usable, but suggestion 1 can be begun today -- even without an Amiga.
/Joakim