timeblock (culture): timed and refined
This is way too long; it needs to be gutted even further. But the substance must remain---this is an important, core part of my talk, and it's important that everyone take home this message---the message of the fundamnetal problem with today's Web.master
parent
9c63a44946
commit
a9e48abdd9
243
talk.tex
243
talk.tex
|
@ -702,57 +702,51 @@
|
|||
|
||||
|
||||
|
||||
%%%=== BEGIN TIMEBLOCK Nm ==============================================
|
||||
%%% !!! way too long
|
||||
%%%=== BEGIN TIMEBLOCK 10m ==============================================
|
||||
|
||||
\begin{frame}{The Web Is Easy}
|
||||
\lecture{Let's explore another aspect of why the Web is so appealing for
|
||||
software developers.}
|
||||
|
||||
%% TODO: let's emphasize the benefits a bit more
|
||||
\begin{itemize}[<+->]
|
||||
\begin{itemize}
|
||||
\item Low Barrier To Entry
|
||||
\lecture{Most everyone has a web browser. Everything rendered in that
|
||||
browser uses standardized document and styling formats---HTML
|
||||
and CSS---which have been used for decades to represent
|
||||
documents. This retrofitting of sorts makes it easy to
|
||||
inspect programs' UIs and play with them. Every modern
|
||||
browser comes with debugging tools for inspecting the DOM and
|
||||
running scripts, for monitoring and inspecting network
|
||||
traffic, for debugging scripts. This is \emph{great} for a
|
||||
free Web---it encourages studying and tinkering. So
|
||||
interested users can easily tweak the page, or type some
|
||||
scripts in the browser's console to see what happens. And
|
||||
when they start writing software, they can see it in the
|
||||
familiar environment that is their web browser. There's not
|
||||
much that is alien to them; if you introduce someone to shell
|
||||
scripting, C, Perl, Python, etc, they're diving into a world
|
||||
that is entirely hidden from their perspective as a
|
||||
\emph{user} of software.}
|
||||
browser uses standardized document and styling formats. This
|
||||
retrofitting of sorts makes it easy to inspect programs' UIs
|
||||
and play with them. Every major browser comes with debugging
|
||||
tools for inspecting the DOM, monitoring and inspecting
|
||||
network traffic, debugging scripts, and much more. This is
|
||||
\emph{great} for a free Web---it encourages studying and
|
||||
tinkering. And when users start writing software, they can
|
||||
see it in the familiar environment that is their web
|
||||
browser. There's not much that is alien to them; if you
|
||||
introduce someone to shell scripting, C, Perl, Python, etc,
|
||||
they're diving into a world that is entirely hidden from
|
||||
their perspective as a \emph{user} of software.}
|
||||
|
||||
\item Huge number of libraries and tools for web development
|
||||
\lecture{Now, the leap from a document format to a program can be a
|
||||
bit daunting. But, because of all the reasons I mentioned,
|
||||
the number of libraries focused on web development is growing
|
||||
at an \emph{unbelievable} rate. You can have working
|
||||
software running on most every modern operating systems
|
||||
quickly and easily, and not even have to worry about how
|
||||
you're going to package and distribute it! And most of these
|
||||
popular libraries are free software. The most daunting task
|
||||
for new web developers is often what library to pick.}
|
||||
at a startling rate. You can have working software running
|
||||
on most every modern operating system quickly and easily,
|
||||
and not even have to worry about how you're going to package
|
||||
and distribute it! And most of these popular libraries are
|
||||
free software. The most daunting task for new web developers
|
||||
is often what library to pick.}
|
||||
|
||||
\item Even desktop software using web libraries
|
||||
\item Even server/desktop software [substitutes] using web libraries
|
||||
\lecture{And then we have software like Node.js that allows running
|
||||
code written for the web directly, without a web browser. So
|
||||
it often makes sense to write software in JavaScript or a
|
||||
language that compiles into it, because then you can share
|
||||
code between the server and client. It makes sense to write
|
||||
your UI using HTML and CSS, because you can execute the
|
||||
program in a way that it doesn't look like a website;
|
||||
Chromium, for example, has a ``app'' mode that makes the
|
||||
loaded page look like a normal program. And then you have
|
||||
those that only really know web development, but are now able
|
||||
to take that knowledge and apply it directly to the server or
|
||||
the desktop.}
|
||||
program in a way that it doesn't look like a website.
|
||||
And then you have those that only really know web
|
||||
development, but are now able to take that knowledge and
|
||||
apply it directly to the server or the desktop.}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -777,12 +771,12 @@
|
|||
making it easy for the bad guys! And there's an explanation for
|
||||
that.}
|
||||
|
||||
\begin{itemize}[<+->]
|
||||
\item We have a licensing problem.
|
||||
\begin{itemize}
|
||||
\item<2-> We have a licensing problem.
|
||||
\lecture{What we have is a licensing problem! We have a \emph{lot} of
|
||||
free software,}
|
||||
|
||||
\item Permissive licensing \emph{enables} proprietary software
|
||||
\item<3-> Permissive licensing \emph{enables} proprietary software
|
||||
\lecture{but most of it is licensed under a permissive license---the
|
||||
most popular being the MIT~Expat license, which allows for
|
||||
non-free derivatives. What this means is that proprietary
|
||||
|
@ -796,33 +790,32 @@
|
|||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Philosophy/Culture Problem}
|
||||
\lecture{The predominant underlying reason of the licensing problem is a
|
||||
philosophical and cultural one.}
|
||||
|
||||
%% this frame: 3--3.5m
|
||||
\begin{frame}{Philosophy/Culture Problem}
|
||||
\begin{itemize}
|
||||
\item<2-> ``Open source almost everything''---Tom Preston-Werner
|
||||
\item<1-> ``Open source almost everything''---Tom Preston-Werner (GitHub)
|
||||
\lecture{If you've listened to any in-depth criticism about licensing
|
||||
practices of the modern web development community, then
|
||||
you've probably heard of Tom Preston-Werner's post entitled
|
||||
``Open source almost everything''. It has some startling
|
||||
statements that illustrate the mindset of the larger web
|
||||
development community, and the open source community in
|
||||
general. Let's take a look at a few. Now, just a warning,
|
||||
some of what you are about to see may shock and confuse
|
||||
you. Viewer discretion is advised.}
|
||||
``Open source almost everything''. Now, I want to go over
|
||||
some snippets, because this is an incredibly important topic
|
||||
and his post has some startling statements that illustrate
|
||||
the mindset of the larger web development community, and the
|
||||
open source community in general. Some of what you are about
|
||||
to see may shock and confuse you. Viewer discretion is
|
||||
advised.}
|
||||
\end{itemize}
|
||||
|
||||
\only<3>{
|
||||
\only<2>{
|
||||
\begin{quote}
|
||||
\hangleft{``}If you do it right, open sourcing code is \textbf{great
|
||||
advertising} for you and your company. [...] we like to talk publicly
|
||||
about libraries and systems we've written that are still closed but
|
||||
destined to become open source. [...] It helps determine what to open
|
||||
source [...]. We recently open sourced [...] our chat bot
|
||||
[...]. Within two days it had 500 watchers on GitHub and 409 upvotes
|
||||
on Hacker News. This translates into goodwill for GitHub and more
|
||||
superfans than ever before.'' (Emphasis \emph{not} mine.)
|
||||
\hangleft{``}If you do it right, open sourcing~[sic] code is
|
||||
\textbf{great advertising} for you and your company. [...] we like to
|
||||
talk publicly about libraries and systems we've written that are still
|
||||
closed [sic] but destined to become open source~[sic]. [...] It helps
|
||||
determine what to open source~[sic] [...] This translates into
|
||||
goodwill for GitHub and more superfans than ever before.'' (Emphasis
|
||||
\emph{not} mine.)
|
||||
\end{quote}
|
||||
\lecture{This is an excellent example of why we should reject ``open
|
||||
source''---as a development methodology, it ignores users' freedoms
|
||||
|
@ -833,7 +826,7 @@
|
|||
to do.}
|
||||
}
|
||||
|
||||
\only<4>{
|
||||
\only<3>{
|
||||
\begin{quote}
|
||||
\hangleft{``}If your code is popular enough to attract outside
|
||||
contributions, you will have created a \textbf{force multiplier} that
|
||||
|
@ -845,9 +838,9 @@
|
|||
community writes the rest of the software for them.}
|
||||
}
|
||||
|
||||
\only<5>{
|
||||
\only<4>{
|
||||
\begin{quote}
|
||||
\hangleft{``}When you open source useful code, you \textbf{attract
|
||||
\hangleft{``}When you open source~[sic] useful code, you \textbf{attract
|
||||
talent}. Every time a talented developer cracks open the code to one
|
||||
of your projects, you win.'' (Emphasis \emph{not} mine.)
|
||||
\end{quote}
|
||||
|
@ -856,99 +849,89 @@
|
|||
proprietary software.}
|
||||
}
|
||||
|
||||
\only<6>{
|
||||
\only<5>{
|
||||
\begin{quote}
|
||||
\hangleft{``}Ok, then what shouldn't I open source? That's
|
||||
easy. Don't open source anything that represents core business
|
||||
\hangleft{``}Ok, then what shouldn't I open source~[sic]? That's
|
||||
easy. Don't open source~[sic] anything that represents core business
|
||||
value.''
|
||||
\end{quote}
|
||||
\lecture{But what about the stuff that is truly innovative and valuable
|
||||
enough that you consider it a core part of your business? The
|
||||
stuff that you think is the most valuable to you? The stuff
|
||||
that the free software community needs to compete with this
|
||||
ever-growing proprietary world? You hide it. And you suggest
|
||||
that others do the same.}
|
||||
enough that you consider it a core part of your business?
|
||||
The stuff that the free software community needs to compete
|
||||
with this ever-growing proprietary world? You keep it
|
||||
hidden. And you suggest that others do the same.}
|
||||
}
|
||||
|
||||
\lecture{Alright, now this last quote blows my mind.}
|
||||
|
||||
\only<7>{
|
||||
\only<6>{
|
||||
\begin{quote}
|
||||
\hangleft{``}Lastly, \textbf{it's the right thing to do}. It's almost
|
||||
impossible to do anything these days without directly or indirectly
|
||||
executing huge amounts of open source code. If you use the internet,
|
||||
you're using open source. That code represents millions of man-hours
|
||||
of time that has been spent and then given away so that everyone may
|
||||
benefit. We all enjoy the benefits of open source software, and I
|
||||
believe we are all morally obligated to give back to that community.''
|
||||
(Emphasis \emph{not} mine.)
|
||||
executing huge amounts of open source [sic] code. If you use the
|
||||
internet, you're using open source [sic]. That code represents
|
||||
millions of man-hours of time that has been spent and then given away
|
||||
so that everyone may benefit. We all enjoy the benefits of open
|
||||
source software [sic], and I believe we are all morally obligated to
|
||||
give back to that community.'' (Emphasis \emph{not} mine.)
|
||||
\end{quote}
|
||||
}
|
||||
|
||||
\lecture{What!? We are all \emph{``morally obligated''}, he says. This
|
||||
is baffling. He recognizes how much he benefits from the free
|
||||
software community after talking about how to exploit it and
|
||||
contribute back only what might benefit their business by
|
||||
attracting free labor and good talent. To quote Bradley~Kuhn
|
||||
from one of his talks, this is incredibly self-serving.}
|
||||
\lecture{To quote Bradley~Kuhn from one of his talks, this is incredibly
|
||||
self-serving.}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}{The Web Scene}
|
||||
\lecture{Tom's philosophy is pervasive throughout the modern web
|
||||
development community. And if we look at the composition, we can
|
||||
see why:}
|
||||
development community. His post has influenced it. And, if we
|
||||
take a look at the community, we can see why:}
|
||||
|
||||
\begin{itemize}
|
||||
\item<2-5> Contributions by large corporations (e.g. Google, Facebook,
|
||||
Twitter, GitHub)
|
||||
%% TODO: Examples
|
||||
\lecture{It's no question that life today is largely online, and there
|
||||
are many major corporations that play a big role in
|
||||
that. Many of the popular free libraries for the web are
|
||||
written by those corporations and used within their own
|
||||
proprietary software as well.}
|
||||
|
||||
\item<3-5> Startups (e.g. YCombinator-funded)
|
||||
\item<2-> Startups (e.g. YCombinator-funded)
|
||||
\lecture{Most new software startups today are going to have some sort
|
||||
of online component---if even just for the social
|
||||
aspect. But as has already been discussed, the web is an
|
||||
aspect. As has already been discussed, the web is an
|
||||
attractive platform, and an easy way to create vendor
|
||||
lock-in---something that many misguided startups will
|
||||
consider to be a very important thing for their long-term
|
||||
success. For this to happen---for these young startups to be
|
||||
able to get software out cheaply and quickly with limited
|
||||
resources---they need free software. So there is immense
|
||||
community pressure to create permissively licensed software;
|
||||
it's more difficult to distribute proprietary software for
|
||||
the web when the client libraries carry a copyleft.}
|
||||
consider to be vital to their long-term success. For this to
|
||||
happen---for these young startups to be able to get software
|
||||
out cheaply and quickly with limited resources---they need
|
||||
free software. So there is immense community pressure to
|
||||
create permissively licensed software; it's more difficult to
|
||||
distribute proprietary software for the web when the client
|
||||
libraries carry a copyleft.}
|
||||
|
||||
\item<4-5> New programmers, new culture
|
||||
\item<3-> New programmers, new culture
|
||||
\lecture{And speaking of that community pressure---the web development
|
||||
community is home to many new or inexperienced
|
||||
programmers. Those programmers are immersed in a culture that
|
||||
talks about ``rockstar'' and ``10x'' programmers; about
|
||||
``brogrammers'' and ``hipster'' languages---these are very
|
||||
different terms than hackers are used to, and highlight very
|
||||
different concepts. Importantly, they focus on
|
||||
\emph{methodology}---performance, producing something that is
|
||||
cool and will be accepted by your peers. This is not a focus
|
||||
on freedom at all. ``Copyleft'' is a dirty word: if you want
|
||||
to be accepted by your peers---\emph{especially} in the
|
||||
startup community, which you might want to be a part of
|
||||
yourself---you'd better license your libraries
|
||||
permissively. If you don't, someone's going to ask you to
|
||||
relicense so that they can use it in their own proprietary
|
||||
software, and lecture you on how copyleft restricts their
|
||||
freedom as a developer. But that's assuming that you've even
|
||||
been introduced to the concept of copyleft to begin
|
||||
with. And besides, all your friends are doing it, and
|
||||
they're all 10x rockstars!}
|
||||
different concepts.}
|
||||
\begin{itemize}
|
||||
\item<3-> ``Open Source''
|
||||
\lecture{Importantly, they focus on
|
||||
\emph{methodology}---performance, producing something
|
||||
that is cool and will be accepted by your peers. This is
|
||||
not a focus on freedom.}
|
||||
\item<3-> ``Copyleft'' is a dirty word
|
||||
\lecture{``Copyleft'' is a dirty word: if you want
|
||||
to be accepted by your peers, you'd better license your
|
||||
libraries permissively. If you don't, someone's either going
|
||||
to ask you to relicense so that they can use it in their own
|
||||
proprietary software, and lecture you on how copyleft
|
||||
restricts their freedom as a developer, or your project will
|
||||
be shunned. But many haven't even been introduced to the
|
||||
concept of copyleft to begin with.}
|
||||
\end{itemize}
|
||||
|
||||
\item<5> Peer pressure
|
||||
\lecture{So there is immense peer pressure---pressure to ignore
|
||||
talking about the awkward politics and philosophy of freedom
|
||||
entirely and just stick to the brogramming, man.}
|
||||
\item<4-> Peer pressure
|
||||
\lecture{And besides, all your friends are doing it, and they're all
|
||||
10x rockstars! So there is immense peer pressure---pressure
|
||||
to ignore talking about the awkward politics and philosophy
|
||||
of software freedom, and just stick to writing software.}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -962,25 +945,29 @@
|
|||
arguments---which are hard, because they involve
|
||||
confrontation. It's therefore trivial to push ``open
|
||||
source'' and permissive licensing with the end goal of
|
||||
fighting copyleft, without actually bringing up the issue
|
||||
most of the time, thereby creating a large community that
|
||||
works against copyleft without actually \emph{thinking} about
|
||||
fighting copyleft, without actually bringing up the issue,
|
||||
thereby creating a large community that works against
|
||||
copyleft without actually \emph{thinking} about
|
||||
copyleft. This is very dangerous. As I know many others
|
||||
here have witnessed when trying to defend copyleft, it can be
|
||||
very hard to explain these issues to someone who isn't aware
|
||||
that issues even exist. It's an army of ignorance; an army
|
||||
of non-enemies that we can't just tear down, because they
|
||||
might not know better, and we'd do best to try to convince
|
||||
them that their freedoms are important, and that users'
|
||||
freedoms are too. And when we go after the leaders---the
|
||||
mentors---the army swarms to their defense.}
|
||||
that issues even exist. And when we go after the
|
||||
leaders---the mentors---the army swarms to their
|
||||
defense. It's an army of ignorance; an army of non-enemies
|
||||
that we can't just tear down, because they might not know
|
||||
better, and we'd do best to try to convince them that their
|
||||
freedoms are important, and that users' freedoms are too.}
|
||||
\end{center}
|
||||
|
||||
\lecture{Well, having spoken of Bradley Kuhn: as of last month, we even
|
||||
have a term describing broad issue. And, no, it's not a hipster
|
||||
word.}
|
||||
have a term describing this broad issue. And, no, it's not a
|
||||
hipster word.}
|
||||
\end{frame}
|
||||
|
||||
%%%=== END TIMEBLOCK 10m ==============================================
|
||||
|
||||
|
||||
%%%=== BEGIN TIMEBLOCK Nm ==============================================
|
||||
|
||||
\begin{frame}
|
||||
\lecture{Kuhn's paradox!}
|
||||
|
|
Loading…
Reference in New Issue