Galileo Onwards
Published in

Galileo Onwards

Presto sails on the Ship of Theseus

In November 2013, Facebook released the software Presto as Free/Open Source. At the time, its three primary developers were (alphabetically): Dain Sundstrom, David Phillips, and Martin Traverso. They were also employees of Facebook.

After its release, the software was hugely successful. It was adopted by several of the bigwigs in the software industry such as Netflix, Twitter, Alibaba, Uber, among others. Amazon offered it as part of its AWS platform. The database company, Teradata, also offered support for Presto.

In January 2019, these three developers launched the Presto Software Foundation (PSF, hereonwards), a non-profit organization that was, according to the press release, “dedicated to the advancement of the Presto open source distributed SQL query engine”. [prweb]

They released the software as-is (with minor namespace changes) on a different website and in a new repository too. They named their software… Presto.

As you might expect, their decision has led to some confusion amongst users. For instance, just a month after the PSF was founded, on Mar 2019, there was a rather simple question [LIST1]:

We have seen a new website with entirely new package and version 314, with url https://prestosql.io and version as 314.
And I have been living for the last four years with prestodb.io.
Can anyone please explain what’s the motive behind changing package name and version number and maintaining a new site ?

Best,
Ron.

This confusion continues to this day. Nine months after the project’s founding, in September 2019, a user posted this on the mailing list: “prestodb vs. prestosql is just too similar and confusing for (prospective) end users. Add onto that the fact that both projects use the same logo too!” [LIST2]. A few days ago, came the same question: “What is the difference between prestodb.io and prestosql.io ?” [LIST3]

Facebook had earlier clarified that they would not participate in the PSF [FB1] and they saw PSF’s Presto as a fork [FB2]. In the Free Software community, a “fork” is when an existing software is developed in a different location.

The PSF founders reject the characterization as a fork. They argue “the original founders and the major contributors that are still active (who wrote the majority of the codebase) are developing on this [the PSF] repository” hence, they argue, their version is Presto, not a fork [PSFGH1].

Funnily enough, this is a popular problem in philosophy. We’ll quickly review the philosophical problem and return to the current discussion.

The Ship of Theseus

In his 1976 book Person and Object, the philosopher Robert M. Chisolm introduces us to a strange ship¹:

[L]et us imagine a ship — the Ship of Theseus — that was made entirely of wood when it came into being. One day a wooden plank is cast off and replaced by an aluminum one. Since the change is only slight, there is no question as to the survival of the Ship of Theseus. We still have the ship we had before; that is to say, the ship that we have now is identical with the ship we had before. On another day, another wooden plank is cast off and also replaced by an aluminum one. Still the same ship, since, as before, the change is only slight. The changes continue, in a similar way, and finally the Ship of Theseus is made entirely of aluminum. The aluminum ship, one may well argue, is the wooden ship we started with, for the ship we started with survived each particular change, and identity, after all, is transitive.

We start with a ship and we replace one by one its every plank. Done slowly enough², we will be happy to say this is still the same ship. This is a simple and straightforward conclusion to make. After all, think about ourselves. We are not made of any of the atoms we consisted of when we were born but we’re still ourselves.³

But wait, continues Chisolm citing the first philosopher to pose this problem, Thomas Hobbes:

‘If some man had kept the old planks as they were taken out, and by putting them afterwards together in the same order, had again made a ship of them, this, without doubt, had also been the same numerical ship with that which was at the beginning; and so there would have been two ships numerically the same, which is absurd.’

If you rebuild the ship with the discarded planks “in the same order”, do you now have two ships of Theseus? Which, then, is the real Ship?

The tale of two Prestos

The argument from origin

The argument from the PSF folks is that identity is conferred on the basis of original authors. They also argue that the top contributing developers (in raw bytes, not necessarily impact), were working on PSF’s software [LIST4]. In other words, their argument is that the second ship is the true ship of Theseus and that this holds because it’s made of the first planks that were on the ship and many crew members have also, pardon the pun, jumped ship.

Facebook’s argument is that theirs is Presto as they continue their “development efforts in the original prestodb Github repository” [LIST5] and that “Presto was developed at Facebook by a group of its employees. A few months ago, three of them left the company and forked the project” [LIST6].

Does the majority of original participants confer identity? If so PSF’s is Presto and Facebook’s isn’t (though nobody describes what it is).

The argument from purpose

The argument from one of PSF’s Presto is that both softwares can remain with the same name because they soon diverge even in their behavior. Dain Sundstrom, one of Presto’s original authors, and a cofounder of the PSF, took this view in April 2019. He pointed out the two codebases were significantly different in size since PSF was formed and were also architecturally “taking very different approaches to major change[s]”. [LIST7]

Does divergence in behavior and name confer identity? If one sticks with the original purpose and the other changes what it does, which shall we describe as the Presto?

For instance, the popular chewing gum brand Wrigley’s was originally company that sold soap and baking soda. They ditched the soap and switched to gum. Did the company change during this transition or did it remain the same company?

Which software, then, is Presto?

As rapper Eminem might put it, Will the real Presto please stand up?

Footnotes

¹ My own reference is from Chapter 21 of the book, Metaphysics: An Anthology (1999), edited by Jaegwon Kim, Ernest Sosa. Blackwell Publishing Ltd.

² I make no attempt to quantify my “slowly enough”.

³ According to this article in the NPR, 98% of the atoms in our body are replaced every year. To put this in perspective, supposing a baby is born with x atoms, after five years, it’ll only have 0.000016% of those original atoms. Given that babies grow, this is vanishingly small. When the child is 16, the fraction of atoms remaining is 6.5536×10⁻²⁸. Perhaps some fraction of atoms are recycled but the point remains.

⁴ Apr 2008 article in the Guardian, “Wrigley’s sold to Warren Buffet”, by Graeme Wearden and Andrew Clark. Available online at https://www.theguardian.com/business/2008/apr/28/fooddrinks1.

Epilogue

My 2¢? The Facebook Presto is Presto and PSF is a fork. One curiously common assumption everyone who opines on this matter makes is that the Presto maintained by Presto just is Presto. All requests to rename go to PSF’s Presto. The latter organization, have only defended their own rights to use the same name, but have not, to my knowledge, stated that Facebook’s Presto must change its own name which, as I see it, is a tell. Philosophy don’t run on popularity or majority but when close to unanimous populations intuitively feel one is the real Presto and the other the fork, there’s something to observe there.

A ship named Theseus. Source: Wikimedia. License: public domain.

--

--

--

Notes on philosophy, art, computer science, economics.

Recommended from Medium

Edimax 7822 wifi USB dongle on Raspberry Pi 4

“Why should I leave?”

How to Schedule Notifications and Add Badges in SwiftUI

Everything You Always Wanted to Know About VPC Peering* (*But Were Afraid to Ask)

Good Habits That Every Programmer Should Have

http://twitter.com/SQLstream/status/827212793522774016

SKILup Day: Continuous Testing Highlights

Top 5 best logging on clouds in 2019

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vijay Lakshminarayanan

Vijay Lakshminarayanan

Infrequent writer

More from Medium

The World’s Worst Regression Test

Berkeley MEng celebrates 670 graduates

Part 1 [Reliability Engineering]: Every system will fail eventually!

MPI and Distributed Computing