My name is Doug and I am a Javaholic. This is my story. It all seemed so innocent at the time, and besides everyone else was doing it. I built a couple of applets that could talk to eachother, and eveything seemed okay at the time. Besides, other people were building apps using Powerbuilder and VB and they didn't seem to have a problem calling them object-oriented. At first I would build the occasional applet, and that was okay, but before I knew what was going on I was serializing objects across the network and spawning servlet processes. Pretty soon I was disassembling other people's classes and reading the VM byte code in the back room (I'm so ashamed). Things got worse, and eventually I sold my wife's car so I could get some more bandwidth. She doesn't trust me anymore, and keeps trying to hide my API docs, but I just keep downloading more.
Javaholism is a family disease also, and my kids are starting to talk about dynamic instantiation and remote method invocation (it won't be long until they get really curious). Things got so bad that I wanted to install virtual machines in all of my appliances, just so they could talk to eachother. I knew I was in trouble when I started to imagine what would happen if a can of creamed corn in my fridge had a virtual machine embedded in it. Would it reorder itself when it ran out? Would it begin to produce recipes dynamically, or communicate with the other canned foods? After a rough period of madly installing IP connections and emptying my Java wallet to get a better stub compiler, I knew I had reached my bottom. I stumbled upon the alt.recovery.java.programming newsgroup and discovered that I was not alone! At Javaholics Anonymous, I learned that there is hope. There is a fellowship of recovering Javaholics that help one another remove the virtual machines that are dancing in our heads. We work a program of recovery, and these are the steps that we take:
2. We came to believe that a power greater than the VM could restore us to sanity.
3. We made a decision to turn our source code and our compilers over to the care of Gosling as we understood him.
4. We made a searching and fearless moral inventory of our exception handling routines.
5. We admitted to Gosling, to our ISP, and to everyone in the strong-java mailing list the exact nature of our wrongs.
6. We were entirely ready to have Gosling remove our virtual machines.
7. We humbly asked him to remove our dynamic instantiation capability.
8. We made a list of all person's bytecodes we had disassembled, and became willing to make amends to them all.
9. We made direct amends to such people wherever possible, except when to do so would affect performance.
10. We continued to improve our exception handling routines, and when there was a bug, we promptly fixed it.
11. We sought through open architecture and unified modeling to increase our software engineering discipline, recompiling only for optimization.
12. We tried to carry this message to other Javaholics, and to practice these design principles in all our affairs.