, 16 tweets, 10 min read
My Authors
Read all threads
.@patrickc (@stripe co-founder) asks: "Will end-user applications ever be truly programmable? If so, how?". My take: First, I'll define end user apps (hopefully aligned w/ Patrick's conceptualization), then define programmable, then delve into "how". patrickcollison.com/questions 1/n
@patrickc @stripe Defining end user apps: Patrick cites web / mobile apps. I'll explicitly categorize "end user apps" as apps that largely non-technical consumers (general computer users) use daily ~, i.e. Facebook, Twitter (social networks) and Amazon, Google (eCommerce, Search).
@patrickc @stripe Patrick refers to those consumer/end user apps as "less a bicycle and more a monorail for the mind"! Bicycles are highly extensible, configurable, customizable.. Monorails are quite the opposite: black-box systems that serve one purpose and evolve at an (ironically) slow pace!
@patrickc @stripe So, we've established that end user apps are not "programmable", but I'll define what I think programmable means: I believe full programmability requires transparent access + visibility into the implementation details and core logic, i.e source (code) of a given app/system.
@patrickc @stripe If full (vs partial) programmability of a given system/app did, in fact, require full source code access, what would that actually look like? How do these end user apps start to look more like bicycles instead of monorails? I believe the answer is simple: Open Source at the core.
@patrickc @stripe Open Source at the core of end user applications already exists today in spades: 90%+ of source code ultimately compiled together to serve these beautiful billion-user ++ consumer apps to end users is already open source!
@patrickc @stripe However, unfortunately the companies behind these end user apps do not allow *external* app user/consumer visibility or programmability contribution to these code bases for two big reasons: 1) competitive business logic IP dynamics, 2) no compelling reason to (end users != devs).
@patrickc @stripe Consequently, end user apps are vastly fully/wholly proprietary and zero programmability is allowed (in terms of customization or extensibility of the core experiences/feature sets/access into the tech stack primitives/implementation details, etc).
@patrickc @stripe Getting to the "how"... If the currently "closed cores" of these end user apps evolved towards "open source cores", we could fundamentally solve for the full programmability element.
@patrickc @stripe Additional things that need to occur in order for this end user empowerment equilibrium to be realized: End users need to develop empathy for the fundamentals of open source while also becoming equipped w/ the ability to contribute perhaps _without_ learning how to code.
@patrickc @stripe Today, there are 4 billion humans online, but only 40 million can code and contribute to open source. Big problem! Even if literally every end user app transitioned to an open core paradigm overnight, this realization of full programmability would still be a pipe dream!
@patrickc @stripe Here's a vision for empowering billions of end users today and, in the future, billions more (only 50%~ of humanity is online): We need to democratize non-technical end user understanding of full programmability by making obvious the benefits of improved UX, transparency, trust.
@patrickc @stripe In order to truly democratize the understanding of programmability, end users need to actually learn about what programmability means and WHY it could make their lives materially better, their data more secure, their experiences more trusted, their UX more exciting.
@patrickc @stripe Today, empathetic knowledge of Open Source fundamentals lives largely in the domain of computer/app source code programmers - not end users. For the next billion programmers, this education effort is far less important.. for the current 4B online and the next 4B, it is critical.
@patrickc @stripe Additionally, we need a common industry movement towards the merits of open core as a compelling paradigm at the platform/end user app level. Today, this is heavily concentrated at the infra layer (middleware) where open core is the common, increasingly default path.
@patrickc @stripe In summary, is a solution to end user programmability that 1) end users learn to code + 2) end user apps transition to open vs closed cores? Perhaps not literally, but directionally IMHO, yes. The definition of "coding" and "open source contribution" will evolve, over time. Fin!
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Joseph (JJ) Jacks

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!