I'm *covering* foocamp remotely, which is to say I'm nowhere near Sebastopol, CA. I'm simply following the Twitter echo and reporting on one or two things of interest. Think of this as maintaining a particle detector far away from a very active proton-proton interaction and registering a few odd quarks energetic enough to strike Chicago, IL.
Sitting down to my twitter feed, I noticed an odd message from peterneubauer on Twitter at 9:30 PST.
Wait? That can't be right, something new and interesting happening in Java? At Foocamp? This can't be right. My curiousity subsystem now fully activated, I check out the site. Here's what the site (Neo4j.org) has to say:
Neo is a graph database. It is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables. A graph (mathematical lingo for a network) is a flexible data structure that allows a more agile and rapid style of development.
You can think of Neo as a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables -- yet enjoys all the benefits of a fully transactional, enterprise-strength database.
Go the project site and read it for yourself. Here are some of the features that jump out at me:
massive scalability. Neo can handle graphs of several billion nodes/relationships/properties on single-machine hardware. (Tim: Ok, you've got my attention, I've been banging my head against MySQL performance all week.)
a small footprint. Neo consists of a single <500k jar. (Tim: Now that's certainly smaller than the Oracle installation media, right?)
It is a graph database (and it is not immediately clear what the difference is between a graph database and a network database). If you have a spare cycle, read the Getting Started in One Minute Guide for a sense of what is involved. If you are like me you are going to read the 1-minute guide and think... "hold on, what am I missing? this is to easy t be believable." There's a NeoService, a Node, and a Relationship object, and you just call some methods. Can it be this easy?
For a slight longer intro, check of the Getting Start Guide, and you'll see a full explanation of what is involved to start using Neo4j. There's a very well-written 8-page PDF on the neo4j documentation page which describes the motivation for the development of neo. This document talks about the limitations of a relational database: orm impedance mismatch, difficulty "evolving" rigid schemas, poor at storing "semi-structured" data, and difficulty traversing network-oriented data.
Suffering from all these problems with its relational database backend, a crew from Windh Technologies - a software house specializing in development of highend Enterprise Content Management services - set out in 2000 to create a transactional persistence engine with high performance, scalability and robustness but without the inherent disadvantages of the relational model. We dubbed the project and its resulting software Neo.
This image is from the introductory PDF it displays the main characters of the movie The Matrix as a set of nodes and relationships.
And, in other news...
Expect More Bad Java News
The industry seems to be consumed with Sun's latest financials, and Barron's is openly speculating that Johnaton Schwartz is on his way out. I've written before that I think Schwartz is safe, if Sun hadn't acquired MySQL they would be turning a profit. I believe there is cold, calculating, and necesarry logic at work...the Board and Schwartz both agree that they needed a good excuse to get rid of institutional dead weight and make the organization leaner. Laying off thousands and thousands (more layoff will come, I have no doubt), on positive financials wouldn't be good for the company's image and the drive for what seems to be Schwartz' singular focus - developer adoption.
Again, I could be wrong, and Barron's could be right. Maybe there is a CEO search underway? Despite the rantings on Glassdoor (and I think we should expect complaints from Sun employees during the layoff period), many Sun employees I've spoken to see the layoffs as essential to the continued survival of the company.
In that context, Mike Hendrickson is getting ready to publish his review of the first half of '08 BookScan data. I won't give away the details, but I'll give you a hint..... the language rankings have changed.
psst. (If you really want to get the scoop, look at mikehatora on Twitter.)
All I can say to my fellow Java partisans is this. Prepare to defend yourself against an onslaught of apocalyptic, sky-is-falling, "Java is Dead" FUD. I think it is premature, and I think Java is still very much relevant and alive. If you are reading this and believe that Java is dead, you need to make yourself known. I think Java is doing fine, and I have my theories about the way books are classified..... (Is a JRuby book a Java book or a Ruby book? How about a book Flex development that includes a lot of information about BlazeDS and Maven?)