Java for Chemists (and other ne'er-do-wells)
I am starting a series to introduce Java programming on another blog. I hope that I can interest science students in this- Java has become a very powerful tool for scientists because it can be used at a high enough level of abstraction that many of the low-level details usually involved in programming can be ignored. There is a performance penalty for this, but for most people not in the business of writing software for a living, this trade off is well worth it.
I am not an expert at Java. I have been programming in C and C++ for almost 20 years, though, and I know how unrewarding these can be for someone who is interested in just sitting down and getting the computer to do something, and who doesn't want to get lost in a dense thicket of details. Projects that were at the outer edge of my abilities in C++ were doable with a couple of months of experience with Java programming. It is tempting to think that this is because I had a lot of experience with C and C++. I think that this may have helped a tiny bit. But a lot of the magic of Java is that it takes care of many things that cause major hair-pulling in these other languages. If you don't know what I'm talking about, be glad. The kind of crap that one has to deal with in C and C++ is one of the reasons that most people don't think of them as part of their toolbox. Java offers most of the power and performance of these, with far, far less hassle. It says something about Java that I am willing to present it to others with less than a year's worth of experience. I won't make anyone a computer scientist, but I can help scientists get some really cool things done with their computer.
My aim is not to convert anyone to the First Church of Java. I aim to present Java as a tool for scientists and technical people, and I hope to do so with interesting and fun examples, with games as well as with simulations rich enough to offer a little insight into physical processes. I will not be exhaustive- there are many fine tutorials available, free of charge on the web, that do the job far better than I can, and I will refer to these with abandon. My job will be to hand-hold a little, point to information of value, and to show what can be done with a surprisingly small amount of effort.