Wednesday, March 18, 2009

User Groups: When Nerds of a Feather Flock Together

I left tonight's Detroit Java User Group meeting thinking again how amazingly useful the group is for programmers. No individual can be an expert in all new technologies. Listening to someone else summarize what they find good, bad or ugly about a particular framework or language really helps me decide:
  • What I want to dive into next, just because it's interesting.
  • If there is an easier way to handle a common implementation, testing or deployment problem.
  • What I might need to learn in order to stay current.

Today's talks were on a these open source tools (explanations are based on my understanding from the 15-minute talks - corrections & clarifications welcome):
  • FitNesse - a software testing tool framework. Unlike JUnit which focuses on very specific tests with hard-coded data, FitNesse is intended to handle soup-to-nuts acceptance testing. It uses a Wiki to both describe the tests and hold the test data.
  • DarkStar - A Java-based multiplayer game server. It handles the communication between clients in a multiplayer environment, rather than physics, rendering or authentication.
  • Grails - A web-application framework built using Spring (among other tools). It is intended as a development environment which uses the Groovy language as the "glue" to hold together Java business logic. You can write part of your application in Groovy, part in Java, and then deploy the whole thing as compiled Java bytecode, using a .war file. This last makes is particularly interesting, since deploying a .war gives you a wide selection of servers with no additional server-side configuration needed.
  • Selenium - A testing tool that runs tests through a browser. Instead of using a mock HTTP object to send tests to a server, Selenium is actually a "robot" that controls the browser of your choice, sends information through it, and checks the resulting page. It can use HTML tables or Java code (or C#, Python, and others) to control the 'bot. It does not solve the problem of cross-browser testing directly, but by running the same tests on different virtual machines, you can get around this.
So what did I take away from this? I really need to learn Groovy, review Spring, and install Grails to have the best of both worlds. Big fun!

Thanks to "LuChOeDu" for the "Geek 2.0" graphic.