Been poking around the web because I was curious as to why they called it that but haven’t found anything yet. Anyone know?
(I checked the FAQ and it wasn’t clear if questions on history/origins were OK to put here or not, but I figured it wouldn’t be good on StackOverflow, feel free to start closing it if it is out of scope and I will delete.)
3
Gavin King created Hibernate for Java back in 2001 as an alternative to EJBs. His project was later taken over/sponsored by JBoss, which is now part of Red Hat.
There was another alternative at the time called TopLink for Java, originally by Object People, then bought by BEA, and now owned by Oracle. Hibernate borrowed TopLink’s concept of object/relational mapping (ORM) to simplify the translation of Java objects to relational database records and vice versa.
Anyhow, the idea is that often you need your data to go into stasis for an indefinite period of time–that is, until somebody needs it again. This is not the sort of thing you want to leave in volatile memory–you want it to be persistent.
This is what hibernation is all about. When a bear goes into hibernation in the winter, his bodily systems slow down to the point where they consume almost no energy–thus he doesn’t have to do typical bear things like hunting. Hibernation is going into a sort of stasis until activity is required again.
So, when Gavin was looking for a name for his project, he came up with “Hibernate” as a fairly descriptive name. Hibernate was then ported to platforms other than Java, most notably to .NET. In order to avoid confusion with the original Hibernate (which is a Java tool) they called it nHibernate, with the “N” standing for .NET.
5
It’s the .NET port of Hibernate. At least it started out as such.
It’s a somewhat popular naming pattern for .NET ports of existing projects to just stick an “N” in front or a “#” in the back. E.g. NUnit, a port of JUnit (itself a port of SUnit). Noda Time, a port of Joda Time.
6