Thread: About the psycopg2 name
Does anybody know the history behind the psycopg2 name?
Thanks, Reuben
On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote: > Does anybody know the history behind the psycopg2 name? The 2 was added after a major rewrite, for what that's worth :-) Karsten -- GPG key ID E4071346 @ eu.pool.sks-keyservers.net E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346
On 24/02/18 11:29, Karsten Hilbert wrote: > On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote: > >> Does anybody know the history behind the psycopg2 name? > > The 2 was added after a major rewrite, for what that's worth :-) IIRC Federico Di Gregorio (who should know the story behind the name) was a psychology major (just kidding :-). Joe
On 24/02/18 18:20, Joe Abbate wrote: > On 24/02/18 11:29, Karsten Hilbert wrote: >> On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote: >> >>> Does anybody know the history behind the psycopg2 name? >> >> The 2 was added after a major rewrite, for what that's worth :-) > > IIRC Federico Di Gregorio (who should know the story behind the name) > was a psychology major (just kidding :-). Ah ah, no. At the time I was just fresh out of university (biophysics) and working for a "free software" company during the dot.com bubble. Like always, the name was a joke, and a badly worded one. At the time, all PostgreSQL Python drivers were pure s**t and my company gave to two interns the job to write a new driver. They produced s**t^2 by writing first a server that connected to PostgreSQL using libpq and then a Python client that was supposed to connect to the server and pass through it all the SQL for the backend. After a couple of month the whole thing still didn't work: the worse bug was that for apparently no reason it opened connections to the backend like _crazy_. So, in about a weekend I wrote the core of psycopg 1, just to demonstrate that you can write something that works without over-engineering it. I wanted to call it psychopg (a reference to their psychotic driver) but I typed the name wrong. Fast forward a couple of week: psycopg 1 is much better than anything else (that says a lot about the state of the other drivers) and we have our first adopter outside the company[1] :) And the name just stuck. To be honest, we later decided that the name was ok, given that, at the time, psycopg was the only driver able to support multi-threaded Python applications without dying an horrible death. Something along the lines that the driver should be a bit "psycho" to manage all the threads. Or something like that. federico [1] If you're curious about that, just have a look at the docs/SUCCESS file in the source distribution. Is a gathering of the email we received after checking with the users if a particularly nasty bug was gone and asking for success stories while preparing the 1.0 release back in 2001. -- Federico Di Gregorio federico.digregorio@dndg.it DNDG srl http://dndg.it I porcellini di terra sono davvero Crostacei! Non lo sapevo! Certo che sono crostacei, hanno la crosta! Allora la pizza è un crostaceo?! -- discorso all'ESC2k07
On Tue, Feb 27, 2018 at 8:44 AM, Federico Di Gregorio <fog@dndg.it> wrote: > On 24/02/18 18:20, Joe Abbate wrote: >> >> On 24/02/18 11:29, Karsten Hilbert wrote: >>> >>> On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote: >>> >>>> Does anybody know the history behind the psycopg2 name? >>> >>> >>> The 2 was added after a major rewrite, for what that's worth :-) >> >> >> IIRC Federico Di Gregorio (who should know the story behind the name) was >> a psychology major (just kidding :-). > > > Ah ah, no. At the time I was just fresh out of university (biophysics) and > working for a "free software" company during the dot.com bubble. > > Like always, the name was a joke, and a badly worded one. At the time, all > PostgreSQL Python drivers were pure s**t and my company gave to two interns > the job to write a new driver. They produced s**t^2 by writing first a > server that connected to PostgreSQL using libpq and then a Python client > that was supposed to connect to the server and pass through it all the SQL > for the backend. After a couple of month the whole thing still didn't work: > the worse bug was that for apparently no reason it opened connections to the > backend like _crazy_. today we call this PGBouncer :) > > So, in about a weekend I wrote the core of psycopg 1, just to demonstrate > that you can write something that works without over-engineering it. I > wanted to call it psychopg (a reference to their psychotic driver) but I > typed the name wrong. I always thought it was related to Psyco (http://psyco.sourceforge.net/), like you tried using that at first or something like that. > > Fast forward a couple of week: psycopg 1 is much better than anything else > (that says a lot about the state of the other drivers) and we have our first > adopter outside the company[1] :) > > And the name just stuck. > > To be honest, we later decided that the name was ok, given that, at the > time, psycopg was the only driver able to support multi-threaded Python > applications without dying an horrible death. Something along the lines that > the driver should be a bit "psycho" to manage all the threads. Or something > like that. > > federico > > [1] If you're curious about that, just have a look at the docs/SUCCESS file > in the source distribution. Is a gathering of the email we received after > checking with the users if a particularly nasty bug was gone and asking for > success stories while preparing the 1.0 release back in 2001. > > -- > Federico Di Gregorio federico.digregorio@dndg.it > DNDG srl http://dndg.it > I porcellini di terra sono davvero Crostacei! Non lo sapevo! > Certo che sono crostacei, hanno la crosta! > Allora la pizza è un crostaceo?! -- discorso all'ESC2k07 >