So after many years of wondering what it would be, I have finally found a ‘hobbyist’ programming project to work on — a project to do for the fun of figuring out how to do it, not because somebody told me to do it. I’m going to try to write a program (programs) to handle EDI data over the Internet using the AS1 protocol. Exciting stuff!
The ‘fun’ part comes in with trying to figure out how I’m going to do that. Right now I’m still heading down two technical paths at the same time: Java and .Net. In theory they should both be cross platform, Java by design and .Net by using the Mono system on Unix. But I think I’m going to let the Java part be the cross platform part and I’m going to get pretty Windows-specific with the .Net side rather than keeping it generic enough that Mono would work.
Of course I’m also planning on having the parts of the system communicate with a message queueing/ESB type setup so maybe I can mix and mingle between the two systems. Or something.
At any rate it’s still early on in the project. About all I’ve done so far is get some virtual machines set up running Windows Server 2003 and running PCLinuxOS to be the development environments. I’ve started messing around with IronPython (.Net) and Jython (Java) a little bit, and that has led me to the point of having to make another architectural decision, one that will have to be made pretty early on I think. Since both IronPython and Java are just Python on a different interpreter, I can write most of the code as if I was writing Python and the code will be the same on both versions of the system. That would certainly be a time saver. But I’m thinking that at some point I will have to convert some or all of the code to C# or Java and if that’s the case then I might be better off writing my IronPython code so that it works with the .Net framework rather than the regular Python libraries and similarly writing the Jython code so that it works with the Java framework rather than the Python libraries. Which would mean the two sets of code wouldn’t have much in common but would be easier to convert to another language later.
So we shall see about that. I also have to read the AS1 spec to get the details of how all this is supposed to work. But I don’t want to print it at home because it’s too long for my little printer and I don’t want to print it at work because work is a half hour drive away and I don’t want to go in just for this. Plus it’s not work related anyway so I shouldn’t be using their resources for my entertainment.