[HN Gopher] Looking Back at Postgres
       ___________________________________________________________________
        
       Looking Back at Postgres
        
       Author : craigkerstiens
       Score  : 180 points
       Date   : 2020-06-15 17:16 UTC (5 hours ago)
        
 (HTM) web link (arxiv.org)
 (TXT) w3m dump (arxiv.org)
        
       | felixge wrote:
       | I love PostgreSQL history, so this was tons of fun to read me for
       | me.
       | 
       | While reading, I also ended up highlighting and sharing some of
       | my favorite parts on twitter:
       | https://twitter.com/felixge/status/1272613965219139585
        
       | danielovichdk wrote:
       | I find Postgres a really good database but with really poor
       | tools.
       | 
       | I don't want to stir up a religious battle here, but the tooling
       | around MSSQL is just that much better.
       | 
       | And the sql dialect is imo more to my taste.
        
         | kiwicopple wrote:
         | I also found this when I switched from MySQL. After a while you
         | discover the right tool for the job, and often some tolls that
         | don't exist for other databases (things like PostgREST come to
         | mind). Sometime I wish it was a bit more idiomatic though.
         | 
         | We're working on a lot of tooling at https://supabase.io. We're
         | open source too. If there is anything in particular you're
         | missing, let me know
        
       | parhamn wrote:
       | > The highest-order lesson I draw comes from the fact that that
       | Postgres defied Fred Brooks' "Second System Effect" [Bro75].
       | Brooks argued that designers often follow up on a successful
       | first system with a second system that fails due to being
       | overburdened with features and ideas. Postgres was Stonebraker's
       | second system...
       | 
       | I really hope we pull off some of these software adages.
        
         | debaserab2 wrote:
         | I don't think the fact that someone made a second version
         | without succumbing to second system effect disproves the adage
         | outright; for the vast majority of new programmers it's still
         | worthwhile advice to adhere to.
         | 
         | Like any principle or adage, if you are experienced enough to
         | deeply understand the reason for it, you will know when it does
         | or does not apply.
        
           | parhamn wrote:
           | > if you are experienced enough to deeply understand the
           | reason for it, you will know when it does or does not apply.
           | 
           | You wont have that experience (or use it really) if you stop
           | at your first system!
           | 
           | Seriously though, I agree, it's by definition that adages
           | reveal truth. This one just feels so pessimistic and boring.
           | 
           | My version of this would be "the third system is the best
           | one". Make it once, learn the space and the limitations of
           | your solution. Make it second time, learn what isn't useful.
           | Make it just right on the third try!
        
           | redler wrote:
           | Postgres is truly an exception that proves the rule. "Sure,
           | not every second system falls prey to this phenomenon, but
           | you practically have to be Postgres to avoid it."
        
             | fnord123 wrote:
             | >Postgres is truly an exception that proves the rule.
             | 
             | That's not what "an exception that proves the rule" means.
             | It means "you may walk here" implies (proves the rule)
             | there is a rule that you can't walk elsewhere.
             | 
             | In any event, plenty of second systems are fine. It's
             | ridiculously outdated advice. Any time someone replaces
             | their Flask web app with a go or rust version, qed.
        
               | redler wrote:
               | An "exception proving the rule" is a colloquial phrase
               | that can be interpreted in several ways. Yours is one of
               | them. I'm using it here as a fun way to underscore the
               | decades of consistent greatness of Postgres[QL], and the
               | folly of using one of the most successful open source
               | projects in history as a counterexample to Brooks's
               | "second system".
        
               | syncsynchalt wrote:
               | You're right that colloquial meaning has drifted, and I
               | won't correct anyone on that (and please don't read this
               | as a rebuttal or direct reply to your post, which I'm
               | just using as an attachment point).
               | 
               | Interestingly, "proves the rule" is based on an earlier
               | definition/synonym of "prove" meaning "test". When you
               | read it as "{x} _tests_ the rule that {y}" then usage
               | (especially older usage) of the phrase will usually make
               | more sense.
        
         | mjw1007 wrote:
         | On the other hand, a lot of what made the original Postgres
         | distinctive has ended up being either removed or considerably
         | downplayed: the "object-relational" features, rules, versioned
         | data, and so on.
         | 
         | (I think what the paper refers to as "versioned data" is the
         | "time-travel queries" stuff, not multi-version concurrency
         | control which was added after Stonebraker's time.)
        
           | sbuttgereit wrote:
           | I would agree with you on rules point... at least relatively
           | recently so once instead of triggers for views were on the
           | scene... but I see some fairly robust use of the object-
           | relational features and don't see much downplaying of them.
           | Mind you, that doesn't mean they're necessarily commonplace
           | (or necessarily should be)...
           | 
           | My guess is the audience here on HN is less likely to run
           | into these features in their day-to-day lives. By my
           | observations, the HN audience tends to be generalist
           | developer types that will readily just hand off database
           | specialization to the most popular ORM layer for their first
           | class development environment. And I would agree they'll not
           | encounter these things... and if they do, they'll largely be
           | annoyances.
           | 
           | I work in "enterprise" type software and I see and do a lot
           | of specifically database development (for PostgreSQL usually
           | these days). If we consider PostgreSQL's type system as part
           | of the object-relational feature set, I find I make use of
           | that fairly frequently, for example compound types... also
           | understanding that object-relational shouldn't be confused
           | with "object-oriented". In my own work it's primarily the
           | more advanced typing that shows up in both procedural code I
           | write as well as queries in certain cases. Less so, though
           | not completely absent is the inheritance feature; there are
           | uses for it for sure, but a rather narrow set of cases (I
           | mean outside of partitioning, which is the most common use
           | case).
           | 
           | Anyway... I'm not so sure it's really a matter of downplayed
           | as much as it is less generally understood as PostgreSQL has
           | become more popular.
        
         | VectorLock wrote:
         | >Postgres was Stonebraker's second system.
         | 
         | What was his first system?
        
           | arminiusreturns wrote:
           | I am really interested in his latest work with SciDB and
           | VoltDB also. Cool stuff to check out if you haven't yet.
        
           | [deleted]
        
           | fiddlerwoaroof wrote:
           | Ingres. https://en.m.wikipedia.org/wiki/Ingres_(database)
           | 
           | However, if you look at the projects he's worked on, he has a
           | track record of writing database engines that end up in
           | delivered database systems.
        
           | jonas21 wrote:
           | Ingres. The "post" in Postgres refers to the fact that it was
           | the follow-up to Ingres.
        
       | jansan wrote:
       | Totally off-topic, but anybody who is into databases should at
       | least have heard the name dBase, which was the most successful
       | database in the 80s. However, they totally fucked up the release
       | of version IV, which had serious reliability issues (not
       | something you want in a database, in case you did not know). This
       | lead to a dramatic decline and eventually the death of dBase. Who
       | knows how the database and software landscape would look like had
       | they released a version without major bugs.
        
         | beagle3 wrote:
         | I think it wasn't the IV version that killed it; After all,
         | there were many dBase compatible programs at the time, e.g.
         | FoxBase which were at least as good and comparably bug free.
         | 
         | I suspect it's actually Microsoft Office with Access and a
         | mature Excel that did it. Everyone was using office at the time
         | (for Word, Excel, Powerpoint and the emerging Outlook), so
         | access was "free"; and many things that dBase&co were used for,
         | were actually becoming easier to do in Excel.
        
         | typh00n wrote:
         | Not kidding, my dad still uses dBase databases in his five-man
         | company to this day. (non-IT company) I even re-wrote some of
         | his programs in C# 10 years ago, so he can use some of them
         | with a modern GUI, but not replacing the database to stay
         | compatible with his original software and tools.
         | 
         | I was surprised that databases are contained in *.dbf files,
         | and no real database-service is present to process database-
         | calls.
        
           | eropple wrote:
           | At the time, and depending on the OS...where would the
           | service _be_? ;)
        
       | sxcurry wrote:
       | One of the first C programs I wrote pulled data from an Ingres
       | Database, all running on a PDP 11/34. I now use PostgreSQL
       | heavily on AWS. Thanks Michael Stonebraker!
        
         | fcatalan wrote:
         | I'm still developing web services connected to an Ingres
         | instance running on a rickety ~22 year old Sun server with lots
         | of bits and pieces cannibalized from its long dead siblings.
         | 
         | We have the replacement system almost ready but won't really be
         | able to swap the thing until the project owner retires (yay
         | politics!).
         | 
         | It's important but not time-critical, so if it dies before he
         | goes we can just eat the downtime and take a couple of weeks to
         | migrate.
        
       | kcolford wrote:
       | Is this the same Postgres as the PostgreSQL database we all know
       | and love here on HN?
        
         | breakingcups wrote:
         | Yes, although originally it did not support SQL but QUEL.
         | 
         | see https://en.wikipedia.org/wiki/PostgreSQL#History and
         | https://en.wikipedia.org/wiki/QUEL_query_languages
        
         | spearo77 wrote:
         | Yes, the abstract doesn't mention it, but the PDF has this-
         | > 1 OPENING         >          > Postgres was Michael
         | Stonebraker's most ambitious project--his grand effort to build
         | a one-size-fits-all database system.
        
         | ryanmjacobs wrote:
         | Yessir. Originally inspired by a db system called "Ingress", it
         | was called "Postgres" then eventual PostgreSQL to emphasize the
         | SQL part
        
       | RedShift1 wrote:
       | A good read but man these PDF's are terrible to read on mobile.
        
         | gen220 wrote:
         | Do submitters write academic papers in "native" LaTex these
         | days? Or do they write in some intermediary format like
         | markdown?
         | 
         | If it's the latter, it'd be pretty trivial to generate a more
         | mobile-friendly html format. I wonder if arxiv supports
         | something like this.
        
           | ufo wrote:
           | Most academic papers are still written directly in Latex.
        
           | davidgerard wrote:
           | You would be unsurprised how many working scientists I know
           | who confess to doing their papers in Word or LO and setting
           | the font to Computer Modern.
           | 
           | There's even a (humorous) economics paper on why this is an
           | advantageous method:
           | https://onlinelibrary.wiley.com/doi/abs/10.1111/joes.12318
        
           | scott_s wrote:
           | As others said, yes, academic papers are still written in
           | LaTex. However, arXiv does not actually accept a pdf for
           | submissions, but require the actual LaTex sources and they
           | generate their own pdf. As LaTex-to-HTML improves, they could
           | always generate it for all of the submissions for which they
           | have the source.
        
           | zozbot234 wrote:
           | LaTeX2html is a thing too.
        
         | scott_s wrote:
         | On an iPhone, I don't have much difficulty as double-tapping a
         | column zooms into that column in a readable way.
        
       | boshomi wrote:
       | See also: "The Postgres and Illustra Codelines" by Wei Hong:
       | 
       | https://dl.acm.org/doi/pdf/10.1145/3226595.3226623
        
       ___________________________________________________________________
       (page generated 2020-06-15 23:00 UTC)