Think about it like this: In the Book of Genesis, God is the ultimate
programmer, creating all of existence in a monster six-day hackathon.
Or, if you don’t like Biblical metaphors, you can think about it in simpler terms. Robert Moses
was a programmer, shaping and re-shaping the layout of New York City
for more than 50 years. Drug developers are programmers, twiddling
enzymes to cure what ails us. Even pickup artists and conmen are
programmers, running social scripts on people to elicit certain
emotional results.
Everyone is becoming a programmer. The next step is to realize that everything is a program.
The point is that, much like the computer on your desk or the iPhone in
your hand, the entire Universe is programmable. Just as you can build
apps for your smartphones and new services for the internet, so can you
shape and re-shape almost anything in this world, from landscapes and
buildings to medicines and surgeries to, well, ideas — as long as you
know the code.
That may sound like little more than an exercise in semantics. But it’s
actually a meaningful shift in thinking. If we look at the Universe as
programmable, we can start treating it like software. In short, we can
improve almost everything we do with the same simple techniques that
have remade the creation of software in recent years, things like APIs, open source code, and the massively popular code-sharing service GitHub.
The great thing about the modern software world is that you don’t have
to build everything from scratch. Apple provides APIs, or application
programming interfaces, that can help you build apps on their devices.
And though Tim Cook and company only give you part of what you need, you
can find all sorts of other helpful tools elsewhere, thanks to the open
source software community.
The same is true if you’re building, say, an online social network.
There are countless open source software tools you can use as the basic
building blocks — many of them open sourced by Facebook.
If you’re creating almost any piece of software, you can find tools and
documentation that will help you fashion at least a small part of it.
Chances are, someone has been there before, and they’ve left some
instructions for you.
Now we need to discover and document the APIs for the Universe. We need
a standard way of organizing our knowledge and sharing it with the
world at large, a problem for which programmers already have good
solutions. We need to give everyone a way of handling tasks the way we
build software. Such a system, if it can ever exist, is still years away
— decades at the very least — and the average Joe is hardly ready for
it. But this is changing. Nowadays, programming skills and the DIY ethos
are slowly spreading throughout the population. Everyone is becoming a
programmer. The next step is to realize that everything is a program.
What Is an API?
The API may sound like just another arcane computer acronym. But it’s
really one of the most profound metaphors of our time, an idea hiding
beneath the surface of each piece of tech we use everyday, from iPhone
apps to Facebook. To understand what APIs are and why they’re useful,
let’s look at how programmers operate.
If I’m building a smartphone app, I’m gonna need — among so many other
things — a way of validating a signup form on a webpage to make sure a
user doesn’t, say, mistype their email address. That validation has
nothing to do with the guts of my app, and it’s surprisingly
complicated, so I don’t really want to build it from scratch. Apple
doesn’t help me with that, so I start looking on the web for software
frameworks, plugins, Software Developer Kits (SDKs) — anything that will
help me build my signup tool.
So the name is actually quite explanatory: Application Programming
Interface. An API is essentially an instruction manual for a piece of
software.
Hopefully, I’ll find one. And if I do, chances are it will include some
sort of documentation or “Readme file” explaining how this piece of
code is supposed to be used so that I can tailor it to my app. This
Readme file should contain installation instructions as well as the API
for the code. Basically, an API lays out the code’s inputs and outputs.
It shows what me what I have to send the code and what it will spit back
out. It shows how I bolt it onto my signup form. So the name is
actually quite explanatory: Application Programming Interface. An API is
essentially an instruction manual for a piece of software.
Now, let’s combine this with the idea that everything is an
application: molecules, galaxies, dogs, people, emotional states,
abstract concepts like chaos. If you do something to any these things,
they’ll respond in some way. Like software, they have inputs and
outputs. What we need to do is discover and document their APIs.
We aren’t dealing with software code here. Inputs and outputs can
themselves be anything. But we can closely document these inputs and
their outputs — take what we know about how we interface with something
and record it in a standard way that it can be used over and over again.
We can create a Readme file for everything.
We can start by doing this in small, relatively easy ways. How about
APIs for our cities? New Zealand just open sourced aerial images of about 95 percent of its land.
We could write APIs for what we know about building in those areas,
from properties of the soil to seasonal weather patterns to zoning laws.
All this knowledge exists but it hasn’t been organized and packaged for
use by anyone who is interested. And we could go still further — much
further.
For example, between the science community, the medical industry and
the billions of human experiences, we could probably have a pretty
extensive API mapped out of the human stomach — one that I’d love to
access when I’m up at 3am with abdominal pains. Maybe my microbiome is
out of whack and there’s something I have on-hand that I could ingest to
make it better. Or what if we cracked the API for the signals between
our eyes and our brain? We wouldn’t need to worry about looking like
Glassholes to get access to always-on augmented reality. We could just
get an implant. Yes, these APIs will be slightly different for everyone,
but that brings me to the next thing we need.
A GitHub for Everything
We don’t just need a Readme for the Universe. We need a way of sharing
this Readme and changing it as need be. In short, we need a system like
GitHub, the popular online service that lets people share and
collaborate on software code.
Let’s go back to the form validator I found earlier. Say I made some
modifications to it that I think other programmers would find useful. If
the validator is on GitHub, I can create a separate but related version
— a fork — that people can find and contribute to, in the same way I
first did with the original software.
This creates a tree of knowledge, with giant groups of people creating
and merging branches, working on their small section and then giving it
back to the whole.
GitHub not only enables this collaboration, but every change is logged
into separate versions. If someone were so inclined, they could go back
and replay the building of the validator, from the very first save all
the way up to my changes and whoever changes it after me. This creates a
tree of knowledge, with giant groups of people creating and merging
branches, working on their small section and then giving it back to the
whole.
We should be able to funnel all existing knowledge of how things work —
not just software code — into a similar system. That way, if my
brain-eye interface needs to be different, I (or my personal eye
technician) can “fork” the API. In a way, this sort of thing is already
starting to happen. People are using GitHub to sharegovernment laws, policy documents, Gregorian chants, and the list goes on. The ultimate goal should be to share everything.
Yes, this idea is similar to what you see on sites like Wikipedia, but
the stuff that’s shared on Wikipedia doesn’t let you build much more
than another piece of text. We don’t just need to know what things are.
We need to know how they work in ways that let us operate on them.
The Open Source Epiphany
If you’ve never programmed, all this can sound a bit, well, abstract.
But once you enter the coding world, getting a loose grasp on the
fundamentals of programming, you instantly see the utility of open
source software. “Oooohhh, I don’t have to build this all myself,” you
say. “Thank God for the open source community.” Because so many smart
people contribute to open source, it helps get the less knowledgeable up
to speed quickly. Those acolytes then pay it forward with their own
contributions once they’ve learned enough.
Once you enter the coding world, getting a loose grasp on the
fundamentals of programming, you instantly see the utility of open
source software.
Today, more and more people are jumping on this train. More and more
people are becoming programmers of some shape or form. It wasn’t so long
ago that basic knowledge of HTML was considered specialized geek speak.
But now, it’s a common requirement for almost any desk job. Gone are
the days when kids made fun of their parents for not being able to set
the clock on the VCR. Now they get mocked for mis-cropping their
Facebook profile photos.
These changes are all part of the tech takeover of our lives that is
trickling down to the masses. It’s like how the widespread use of cars
brought a general mechanical understanding of engines to dads
everywhere. And this general increase in aptitude is accelerating along
with the technology itself.
Steps are being taken to make programming a skill that most kids get
early in school along with general reading, writing, and math. In the
not too distant future, people will need to program in some form for
their daily lives. Imagine the world before the average person knew how
to write a letter, or divide two numbers, compared to now. A similar
leap is around the corner.
It’s a momentum that, if every person on Earth was involved, could
crack the secrets of the Cosmos. But we must expand this trend beyond
software, and we have to engender the sort of sharing we see on GitHub.
The Corporate Conundrum
The real trick is getting the corporations and governments of the world
to play this game. Sorry, right-wing capitalists, this is where we part
ways. If we are ever able to live on Mars, geo engineer the planet, or
make any other course correction to avoid gassing ourselves out of a
home, there’s no way we can keep big scientific breakthroughs bottled up
inside of corporate or government organizations. How much human time
and innovation have we already wasted on the pattent wars? At some
point, the knowledge of how the world works needs to find its way into a
public repository so that we can overclock the collective human brain.
This isn’t just a Utopian thought experiment. There needs to be a more
intentional, structured way to store knowledge about how the world works
to solve the problems affecting the length and quality of our lives.
What happens when we can manipulate DNA and our genes to given
specifications? What happens when we understand the API of cancer? Are
we content continuing to let private companies own this knowledge and
prevent innovation on the most ubiquitous platform there is? I
understand why it works that way now, but should it continue to?
If tomorrow we found a spaceship from an advanced race, sunk deep in
the ocean, would we turn it over to Boeing and let them patent the
technology so they could sell it back to us, just because we can’t
muster the political will for public science funding?
Organic matter, and specifically humans, is that spaceship. We are
incredibly advanced technology. Often times we fit the bill of being indistinguishable from magic.
So does the entire Universe, for that matter. The whole symphony of
existence arises from a set of rules, and we are slowly uncovering them.
As we do, it increases our ability to manipulate reality to our needs.
We are living in the Matrix, and the red pill is programming.
Source: Extraa Education
0 comments:
Post a Comment