blob: 2202a083d58cffbdd0991fc385f2179426f069af [file] [log] [blame]
% future/future.tex
% mainfile: ../perfbook.tex
% SPDX-License-Identifier: CC-BY-SA-3.0
\QuickQuizChapter{chp:Conflicting Visions of the Future}{Conflicting Visions of the Future}{qqzfuture}
%
\Epigraph{Prediction is very difficult, especially about the future.}
{Niels Bohr}
This chapter presents some conflicting visions of the future of parallel
programming.
It is not clear which of these will come to pass, in fact, it is not
clear that any of them will.
They are nevertheless important because each vision has its devoted
adherents, and if enough people believe in something fervently enough,
you will need to deal with that thing's existence in the form of its
influence on the thoughts, words, and deeds of its adherents.
Besides which, one or more of these visions will actually come to pass.
But most are bogus.
Tell which is which and you'll be rich~\cite{KeithRSpitz1977}!
Therefore, the following sections give an overview of transactional
memory, hardware transactional memory,
formal verification in regression testing, and
parallel functional programming.
But first, a cautionary tale on prognostication taken from the early 2000s.
\input{future/cpu.tex}
\IfTwoColumn{}{\FloatBarrier}
\input{future/tm.tex}
\IfTwoColumn{}{\FloatBarrier}
\input{future/htm.tex}
\input{future/formalregress.tex}
\input{future/fp.tex}
% @@@ Maybe add quantum computing back in, but heavily summarized.
\section{Summary}
\label{sec:future:Summary}
%
\epigraph{Life can only be understood backwards;
but it must be lived forwards.}
{S{\o}ren Kierkegaard}
This chapter has taken a quick tour of a number of possible futures,
including multicore, transactional memory, formal verification as
a regression test, and concurrent functional programming.
Any of these futures might come true, but it is more likely that, as in
the past, the future will be far stranger than we can possibly imagine.
\QuickQuizAnswersChp{qqzfuture}