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.)
2 Answers 2
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.
-
Thank you for the story but the bear analogy is wrong. In fact bears don't hibernate, they just winterize. Dormice for instance (on NHibernate logo) do hibernate.bN_– bN_2021年09月21日 07:48:34 +00:00Commented Sep 21, 2021 at 7:48
-
1@bN_ - that's curious. So these guys are wrong? yellowstone.org/bear-hibernation-5-fun-factsMatthew Flynn– Matthew Flynn2021年09月22日 14:51:03 +00:00Commented Sep 22, 2021 at 14:51
-
1Oh sorry, it seems that in English you have only one word which is "hibernation". In French we have two words : "hibernation" and "hivernation" to distinct the two different strategies used by animals to pass winter. I thought that "winterizing" was the translation for "hivernation" but I was wrong. sciencepost.fr/hivernation-hibernation-cest-quoi-difference that said the animal on NHibernate logo is a dormouse and not a bear ;)bN_– bN_2021年09月23日 19:44:37 +00:00Commented Sep 23, 2021 at 19:44
-
1Coincidentally, Gavin King (i.e., the creator of Hibernate) is from Australia, where there are neither bears nor dormice.Matthew Flynn– Matthew Flynn2021年09月27日 14:52:17 +00:00Commented Sep 27, 2021 at 14:52
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.
-
3So... why is Hibernate called that?Oded– Oded2013年06月19日 13:22:27 +00:00Commented Jun 19, 2013 at 13:22
-
4Well... because ripping objects from an address space, putting them at rest in a database, and later reawakening them in a different process is rather like hibernating. I can't really think of a more directly applicable name.Kilian Foth– Kilian Foth2013年06月19日 13:30:06 +00:00Commented Jun 19, 2013 at 13:30
-
2@kilianFoth sounds more like kidnapping :-)Dan Pichelman– Dan Pichelman2013年06月19日 14:00:15 +00:00Commented Jun 19, 2013 at 14:00
-
2@DanPichelman: Only if the database refuses to give the objects back to the application unless the application pays large amounts of money in cash. :PFrustratedWithFormsDesigner– FrustratedWithFormsDesigner2013年06月19日 14:32:31 +00:00Commented Jun 19, 2013 at 14:32
-
1@FrustratedWithFormsDesigner I hate it when DBAs get all uppity like that..Jimmy Hoffa– Jimmy Hoffa2013年06月19日 14:45:53 +00:00Commented Jun 19, 2013 at 14:45
.NET
I guess. See stackoverflow.com/q/1332147/995876 for hibernate