
The Web is full of programming libraries that look like they'd be a lot of fun to play with, but many of them are complex enough to scare away casual developers, or they lack good documentation, or they are no longer supported.
How does one find out the best places to start? One thing I want to do is start a recreational programming magazine and set of resources for people who are interested in such things. Until those things are created, I'll start a list below.
Here is a list of programming libraries that you can use to do really cool stuff. These libraries are easy to use and well-documented. I've also tried to pick tools that serve as good jumping points to other things you can explore. Enjoy!
- JFugue - Create music programmatically in Java. Here's a short example:
new Player().play("C D E F G"). (Full disclosure: Of course JFugue is good - I wrote it!). Once you've mastered simple music, you can play around with interesting ways to experiment with musical patterns. - JavaFX - Just announced on May 8, JavaFX includes a scripting language that makes it easy to develop Rich Internet Applications (RIAs). This had previously been known as Form Follows Function (F3).
- Processing - Create animations and graphic designs without getting mired in programming. Processing is related to another project called Wiring, which allows you to develop interactive hardware.
- Greenfoot - A Java programming libary intended for learners to discover programming concepts while developing 2D games and simulations.
- PyGame - Create games in Python. I haven't experienced the API first-hand, but it looks like a lot of people are doing neat things with it.
- Lego Mindstorms Advanced User Resources - A collection of programming environments and firmware replacements for your Mindstorms kit. Check out "Not eXactly C" (NXC), the "Not Quite C" (NQC) analogue for the Mindstorms NXT kit.
Below is a list of programming libraries that I'm checking out now. I can't vouch too much for them, but they might be worth a further look.
- Java Monkey Engine - Build 3D games!