This is the best way to frame the "tech laws problem" I've seen in a long time. I'm curious: what is the best way to approach the bikeshedding issue?
On the one hand, the people who recognize the issue tend to be technical. On the other, the solution will inevitably be a social one, unless something comes along that makes patents and technological laws moot.
Here are three social avenues I could see being helpful, but none of them seems to solve the problem. I'd love to know what people are doing in this area.
a) Improve technical education for the general public so that they can call BS, or make reasonable decisions.
b) Improve technical education of public servants that make crucial decisions regarding technology. I'm not competent to rule in a legal case about pollution, so why should we assume judges are competent to rule in a legal case about code? (How do you measure that? Certifications? - egh).
c) Improve social outreach for technical people. Most technical people probably want to build cool things instead of sit in Congress, knock on doors, or otherwise get involved. I've talked with engineers who despise legal proceedings so much they started trolling the lawyers in depositions. Honestly I'd rather build something cool than think for five hours about how to get people to care about patent law. Maybe that should change.
I'd love feedback on this, because the bikeshedding issue is the scariest social problem I can't think of a solution to. It doesn't just affect a specific patent, it affects the way we rule on them in general.
If you are both a lawyer and technical, I would really love your feedback, here, or via email.
If tech people want a world with sensible tech laws, the first thing they have to do is internalize one simple fact: computer tech isn't special. It's no different, in the grand scheme of things, than petrochemical refining or agriculture. It's just one specialized problem domain within a larger society.
That realization is simultaneously humbling and empowering. If tech is the same as everything else, then that means the same social tools that work for everything else can be leveraged to work for tech! And that means (c), lots and lots of (c).
But not just (c), even though (c) is the starting step. Ultimately, through (c) you can do (b). For example, a judge isn't a domain expert in petro-chemical refining either, but they make rulings on petro-chemical refining all the time and it works more or less well. That's because the system is structured so as to not require judges to be experts in everything. It is structured so people versed in a specific problem domain, be it petro-chemical refining or code, can explain in plain terms the moving parts of his case, and the judge, generally a highly intelligent person, can make decisions based on those explanations. And ultimately, through (c) you get to (a). Ultimately, the burden is on tech people to convince the public at large to care about the things that they care about.
I've used this example elsewhere, but I think it's a really important one. The tech industry complains up and down about its inability to fight the "big money" of the media companies. Yet, the entire U.S. movies and music industry put together are about $50 billion in domestic revenue per year, or equivalent to just Apple's revenues in just one quarter. You're telling me that the tech industry can't fight the "big money" of an industry that's a fraction of its size? Please! Another example: Apple's revenues and profits are about the same as Goldman Sachs, Morgan Stanley, and JP Morgan Chase combined. Tech isn't the skinny schoolboy getting picked on by the big kids--it's the behemoth. The only sector that can compare is the petro-chemical sector.
We live in a democracy. In a democracy, you can't just sit around waiting for everyone else to realize how wonderful and special you are and legislate to further your interests. You have to integrate. You have to participate in the political process. You have to explain to policymakers the moving parts of your industry, and you have to convince the public to care about the things you care about. And you have to accept that the policy makers sometimes will not agree with you (because they're balancing a broader array of interests than just your own), and you'll have to accept that the public won't necessarily buy into your worldview. But when that happens it's not an excuse to take your marbles and go home.
For a contra-example, look at environmental legislation. Environmentalists have been incredibly successful considering there is very little money behind the movement, and that the people on the opposing side of the table are petro-chemical giants, each of which are 2-10x as large as the entire domestic media industry that tech people think are too monied to be overcome. Yet they have been remarkably successful given those odds! Why? Because they don't hole themselves up in ivory towers. They participate in the political process. They translate their value systems into things that perk up the ears of politicians (this environmental bill might cost a few jobs, but it will be more than made up for by the avoided health costs from the reduction in pollution!) Jobs, costs, etc. Those are things politicians care about, and indeed those are the things they're elected to care about! Sometimes, they even fight dirty. They participate in the war that is living in a democratic society with competing factions.
That said, I agree completely with your point about integration. The worst thing we can do as a community is step aside and allow others to create legislation that is not in the interest of technology or the good of the people at large.
Edit: minor grammar.
True, however I wonder if people think computer tech is simpler because they own some. Ask someone if they understand petro-chemical processing and they'll probably say no, but ask if they understand computers and they might think they know a lot because they use one all the time. They've even had to change some options in a password-protected preferences panel, or use a keyboard shortcut! They can get their phone to sync with their two computers, and it all just works.
Tech has (particularly recently) has become common and very simple, and we live now in a time when you can get your granny an iPad with Siri and she can use it. With driving the usability of everything up, we've also been pushing the idea that "it's simple, really! Don't be scared" and that's worked wonders. I get frustrated when a confirmation email takes more than a few seconds to show up in gmail, how ludicrous is that? I got annoyed when skype went blocky and the sound kinda crackled while talking to someone on the other side of the world for free, while on wifi. I caught myself thinking "But you just send the thing from here to there, it's so simple!" and thought about it more.
I think that was the point of this article, it's phenomenal complexity hidden behind a fantastically simple interface. A lot of people have poured a huge amount of money into making it feel simpler, Apple are a great example of that. You can talk to your phone and it'll sass you back.
I wonder which other fields have this same problem? I know there will be some, because I'll be one of the people thinking it's really simple when it isn't. Maybe medicine? People might think it's complicated for some things but there is a culture of 'Just make the right type of pill, duh'.
The case of the media industry is special because what they lack in dollars they more than make up for in airtime. Major media organizations can very easily make or break a candidate or an issue just in selecting which stories to cover.
This is starting to change with the internet, but there are still millions of voters whose primary source of information is cable news. Over time this is likely to change, the trouble is how to mitigate it in the meantime.
How do we force technical information into the brains of our government employees?
OR
What incentives do we need to provide tech workers to be more politically active?
"Non-technical people" will be replaced by ones who don't think of computers and programming as technology, any more than we do books and math. Programming magnifies individual task completion potential, allowing one person to accomplish through scripted automation what would otherwise require manual delegation. It's not software that's eating the world, it's programming. Software is computational state, but programming is a state of mind.
The "Computer Revolution" has happened, but programming illiteracy is still very high, programming fluency very low, and programming languages very primitive.
Around the French Revolution, over 200 years ago, when the modern printing press had already been around for almost 350 years, the literacy rate in France was just crossing 50%. [1] And world illiteracy has over halved since the Unix epoch, 43 years ago. [2]
The only solution I see is to help spread "programmacy".
1. http://en.wikipedia.org/wiki/File:Illiteracy_france.png
2. http://en.wikipedia.org/wiki/File:World_illiteracy_1970-2010...
The great majority of them have informed their congresscritters and helped get the word out in some way as well.
Now if only there was a way to parlay that short term political interest into something more long term and substantial..
As far as how to appoint leaders or czars for the new technocratic branch, I'm stuck, but I'm sure someone could figure out a good way to incentivize nonpartisan experts to get involved. Maybe simply wikitize legislation, allowing a very decentralized passing of legislation.
You have to be careful with things like this because of regulatory capture. And also because setting up a group of people whose stated purpose is to regulate something causes them to try to slowly regulate every part of it, even in cases where private ordering would lead to better outcomes. A huge part of the existing problem is instances where Congress doesn't need to act but does anyway.
This could be a very good thing.
People didn't understand cars, or electricity, or electronics either, but now everyone has a basic knowledge about the working of these, and they can get what the repair guy is saying.
IMHO for any new technology there is a minimum time measured in years or decades depending on the complexity to have it properly assimilated. Mainstream internet is 20 years old ? Congress people should all be knowledgeable about it in 10 or 20 years.
Required background reading for anyone who hasn't seen it: bikeshed.com
Regarding (a): Give people lots of choices, and they'll learn to pick the right ones. There is a reason the two main smartphone platforms have completely won out over the older stuff. It's just really sad there there aren't more to choose from, since iOS and Android both have major areas of suckage.
Regarding (b): Public servants should not be making crucial decisions about technology. The government could never build the massively complex system described by OP, and regulation would have killed it quickly (probably by cementing an AT&T/IBM duopoly in technology).
Simple, isn't it?
What just actually happened?
You engaged a cascade of motor neurons to coordinate the contraction of thousands of muscle cells, which pulls a lever attached to your calcium crystalline framework, grinds across a glucosamine joint. This forces your calcium crystalline frame-member to depress, compressing your saline-filled lipid-polymer foam skin against the keyboard. As you do this, you constantly measure the pressure against the lipid-polymer walls to ensure you are not deforming your muscle cells too much or too little.
---
Reality has inordinate complexity. When humans build roads or build narratives or build websites, we are simplifying reality for ourselves and others, including other animals.
The electromagnetic forces comprising the atomic structure of your fingertip repelled against those of the plastic polymer forming the key with which you made 'contact'. The two atomic matrices combine kinetically to move in the direction of overall force...
To add to your penultimate sentence: "Reality has fractal inordinate complexity".
"You just baked an apple pie from scratch. What just happened?"
"Laws" of physics... Big bang... cooling... particles... hydrogen... stars... fusion... heavier elements...
Oh, no cosmology? Okay, the entire history of evolution, then civilization, then industry leading to humans with electricity and ovens and supermarkets.
Can you imagine computer science if we had no prior knowledge of computers and had to research the entire process starting at the end point? What a task.
Not quite. A huge group of someones in aggregate understood what is going on. There is still no single expert who designed the system originally. Eventually, or perhaps already in many cases, some portion of the system has no living expert who designed it.
I can imagine a future where expertise on some deep components of the system has been lost to the sands of time, and people have to study them blindly to determine their function in just the same way that we currently study nature.
Neat.
edit: I think raelshark and Carl Sagan said it better than I did.
No one, nowhere fully understands how technology like a computer works. That's because it's possible to design systems on top of systems without fully understanding the nuances of all the dependencies.
Though I guess I can sort of understand how that works. What I can't understand is that I can understand anything... I simply can't fathom how the human brain works...
Look for some popularized science articles (e.g. from arstechnica.com/science) and books (e.g. from Ray Kurzweil) that mention neural networks, fMRI, connectome, cellular automata, etc. There are competing theories, but there's enough accessible information out there to dispel some of the mystery.
Now if we dig down into the details both look seemingly impossible. For hard drives we have read heads that must sweep so close to the spinning platter that they use the wing ground effect to float just over the surface. We no longer can read data with the write coil (not enough gain) so instead we use spin polarization sensors that pass currents of electrons with only one intrinsic spin and then measure the effect the magnetic field of the platter had on the spin of the electrons in the current.
In the case of solid state memory, we are able to pattern silicon wafers with a minimum feature size of 22nm and falling. A single chip is a seemingly miraculous network of chemically deposited thin films and optically patterned cutouts all at a size that beats the detraction limit of light. The mask (imagine an overhead projector's transparency) can not be shaped the same as the intended end-shape pattern of silicon due to very small scale refraction but never fear! We have figured out how to calculate what our mask must look like to beat the diffraction limit. Its all amazing stuff.
I disagree with the conclusion though. I think the reason Steve Jobs' death impacted people more than Dennis Ritchie's is that Jobs was taken in his prime. Who knows what the world lost by his premature death.
This article has been posted at least once onto HN, and I liked reading it then, too. One of the first major insights I remember from my CS curriculum was the concept of abstraction -- in CS it's applied to code-as-data, the OSI model, etc, but it exists everywhere, including all engineering, large bureaucracies, etc. Thank you Prof Harvey!
"Any technology distinguishable from magic is insufficiently advanced"
Complexity is there every day, we just abstract it away in order to focus on the task at hand.
If you are widely read or have worked in multiple fields, and/or multiple levels of the "stack", both hardware and software, then it's a bit more apparent.
I've seen discussions on LinkedIn about how one gets into embedded systems engineering. Nobody seems to have a clear answer.
I've seen people get all hyped up on using small eval/dev boards like Raspberry Pi, but don't get much farther than loading a desktop or XBMC on it. There's hope in the Arduino crowd, but blinking LEDs isn't even putting the training wheels on the bike.
"On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things."
Ultimately, computer architectures serve real world use cases. Innovation in use cases results in innovation in architectures. There are countless new technologies that exist because of the products that Apple invented.
The iPhone drove the creation of the modern smartphone market. Before 2007, only businessmen carried Blackberries. Now pre-teens have smartphones. There's a really powerful image NBC posted comparing the Papal Conclave in 2005 and 2013[1] that tells the whole story. Similarly, the iPad is driving the tablet market.
And that's just 3 recent consumer-facing categories. The list goes on as you dig deeper or farther back. If you're using Chrome, guess who started Webkit?
1: https://twitter.com/neilgupta/status/312317589432971264
Edit: I should have said, guess who popularized Webkit. We can debate semantics on whether forking KHTML to Webkit makes Apple the author of Webkit or not, but I think we can agree Apple popularized it.
You could dispute any given example, because there's always a precursor (even if only visible in hindsight, http://booksofnote.blogspot.com/2012/10/kafka-and-his-precur...).
The biggest problem isn't that modern computers depend on some piece of technology or process that is lost to us. It's that all the people who understand every step in that chain, from survivalist blacksmiths who can smelt ore to make tools to industrial chemists who can fashion substances that nature doesn't readily provide to electrical engineers and developers who will actually program the damn computer in year 9, are currently widely dispersed. Put them together and give them what they need and I think they could get the job done more quickly than you think.
Of course, it's more likely that everything and everyone you need will be scattered around the world when this instant occurs, and if that's the case, I'd honestly bet it would take hundreds of years to independently reinvent a modern computer because you'd need to reinvent most of modern society to gather the people and the materials to do that.
Anyone who has an opinion on patents, especially software patents, should be keeping up with the roundtable events. And, I'm not saying that because I went either, stuff is being talked about at these events that will either be ignored or shape the patent system in one way or another. In either case, it's in our best interest to stay involved in the process.
Edit: Spelling
Aren't most prototypes "made" in software nowadays and only final products are really fully produced.
In generally I think I agree with what you're saying. In Europe software patents, as such [!], are not allowed but patents to software have always been allowed that made a technical effect, ie performed a real physical change to a system. It's very hard to pin down the boundary but I think that this is something the board got right.
That said I think personally that all manufacturing rates have increased greatly since patent terms were set and that the terms should be decreased to compensate for this change in the rate of development.
Dizzying but invisible depth
You just went to the Google home page.
Simple, isn't it?
What just actually happened?
Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
Let's simplify.
You just connected your computer to www.google.com.
Simple, isn't it?
What just actually happened?
Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
Let's simplify.
You just typed www.google.com in the location bar of your browser.
Simple, isn't it?
What just actually happened?
Well, when you know a bit about how operating systems work, it's not quite that simple. You've just put into play a kernel, a USB host stack, an input dispatcher, an event handler, a font hinter, a sub-pixel rasterizer, a windowing system, a graphics driver, and more, all of those written in high-level languages that get processed by compilers, linkers, optimizers, interpreters, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
Let's simplify.
You just pressed a key on your keyboard.
Simple, isn't it?
What just actually happened?
Well, when you know about bit about how input peripherals work, it's not quite that simple. You've just put into play a power regulator, a debouncer, an input multiplexer, a USB device stack, a USB hub stack, all of that implemented in a single chip. That chip is built around thinly sliced wafers of highly purified single-crystal silicon ingot, doped with minute quantities of other atoms that are blasted into the crystal structure, interconnected with multiple layers of aluminum or copper, that are deposited according to patterns of high-energy ultraviolet light that are focused to a precision of a fraction of a micron, connected to the outside world via thin gold wires, all inside a packaging made of a dimensionally and thermally stable resin. The doping patterns and the interconnects implement transistors, which are grouped together to create logic gates. In some parts of the chip, logic gates are combined to create arithmetic and bitwise functions, which are combined to create an ALU. In another part of the chip, logic gates are combined into bistable loops, which are lined up into rows, which are combined with selectors to create a register bank. In another part of the chip, logic gates are combined into bus controllers and instruction decoders and microcode to create an execution scheduler. In another part of the chip, they're combined into address and data multiplexers and timing circuitry to create a memory controller. There's even more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
Can we simplify further?
In fact, very scarily, no, we can't. We can barely comprehend the complexity of a single chip in a computer keyboard, and yet there's no simpler level. The next step takes us to the software that is used to design the chip's logic, and that software itself has a level of complexity that requires to go back to the top of the loop.
Today's computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You'd have to go through many such loops to get back to a level that could possibly be re-built from scratch.
Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.
For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it's impossible for most users to be able to do anything about any error.
That is also why it's so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it's not even possible any more to have a single person be an intermediate between those two groups, and that's why e.g. we end up with those convoluted technical support call centers and their multiple tiers. Without such deep support structures, you end up with the frustrating situation that we see when end users have access to a bug database that is directly used by engineers: neither the end users nor the engineers get the information that they need to accomplish their goals.
That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre-Ritchie world.
Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.
CC:BY 3.0
(²) not valid for search results of course, but even they could be sent to you in a more efficient, less privacy-destroying way if only some corporation's interests weren't more important than your own
[1] http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...
Before long computers will be able to conceptualize the whole complex mess.
Consider how we acquire knowledge (perhaps like http://matt.might.net/articles/phd-school-in-pictures/). The more we've learned, the more we need to know about how to learn. At each level of knowledge we gain knowledge by accessing new knowledge and combining it with what we know. Eventually the supply of new knowledge dwindles and the only tool we can rely on is learning; the only tool we can rely on is that ability to combine knowledge.
This is much harder than taking in new knowledge; especially for computers! However, computers are getting better and better at it. Whereas many of us are out of college, computers are still in middle school, but they're getting better and better at both large scale and high complexity learning, so they'll move on to high school and college soon. Moreover, they're moving at an exponential pace! (see Ray Kruzwell and his ideas on the exponential growth of technology) Eventually, no... soon, computers will be able to conceptualize and intuit the scale and complexity of something like google.com. No person can come close to this, so we have no idea what that ability will bring.
Or a guy from sales just received a call, but what just happened? The client was recommended by a friend after a splendid experience with the product, the client spent bunch of time reading number of sites and reviews and he is just about to purchase a product when sales guy's computer has crashed and he lost a client. We always try to make people understand the IT more and the other guys will try to makes understand their processes more, yet it is going to be never ending dialogue, process, fight..
As a web company, you generally want potential employees to at least mention "HTTP" in the response. DNS is great. TCP/IP too. You'll definitely weed out some people who don't have a clue.
also, we quite understand how chips are automatically organized by other chips. it's because we don't understand it that computers are "building" computers. its because they're way faster at those repetitive tasks (and yes i'm talking about automatic chip layouts, for example)
Even thus it's not exactly TFA's point, since TFA goes pages and pages on complexity for pointing out that people care about what they see, not what it really does, I though that's worth mentioning.
I can't imagine going trough this life without having the faintest idea of how a lot of the stuff I use everyday actually works.
Because of the huge amount of complexity described, it becomes impossible for one developer -- or one group of developers working on the same project -- to understand at one time much more than their current specialization. This makes it hard to talk to peers working on other projects.
But he takes it to another level. There's a lot to be said on this, and education is super important, but ultimately one has to sort of ... surrender, at least to some degree.
Sorry, couldn't resist