Hacker News new | ask | show | jobs
by tcelfer 4358 days ago
It is Google's responsibility to be a positive actor in the Internet ecosystem on behalf of end-consumers. If not because it is the "right" thing to do and also essential to the long term vision and success of the company.

Let me be expository on this for a moment, please.

Right now there are three competing visions for the future of the internet:

1. The GNU vision: the internet becomes decentralized and every individual has the tools to replicate and manage small, individual infrastructural tasks.

2. The Google/Microsoft vision, where a series of non-government economic entities create centralized and competing infrastructure while being supervised by governments in the jurisdictions they operate in.

3. The Centrist vision where the internet is essentially a public utility and operated by a quasi-governmental agency or a series of joint governmental agencies.

Currently our Internet is somewhere between 2 and 3, with a lot of talented individuals trying to write software and doing research to make #1 more feasible.

But #1 is inherently never going to work. Moore's law should tip us off, if not the current state of affairs in the world. As software and computing get better, its rate of improvement (or just change, take your pick) increases. This means that it's progressively harder to stay abreast of security, devops, and software products. With the best of intentions but a quintessentially first-world outlook, #1 simply creates a series of digital under-classes and rewards the people with the huge time investment and economic support structure implied by people who are currently good at computers.

#3 could work, but it assumes that Governments ultimately start to shape up and actually reflect the collective will of their population (as contradictory as that can be). It's possible, but I'm a sceptical.

#2 is the closest to working, providing a tension between government and corporation that resembles the tensions present in the American constitution. What's more, economic and technical concerns reward this approach. It's cheaper to centralize computer infrastructure and when done correctly it's a huge cost and materials savings. Competition between said environments also works to keep Corporations focused on the people abandoned by approach #1, keeping their products approachable and with low overhead for starting up.

But if Google is seen to constantly violate their user trust and not act as a sufficiently strong user advocate, eventually the populace will demand scenario #3 be enacted (or something with so much governmental input that it is indistinguishable from #3) and we'll be in a terrible situation.

The biggest benefit to the current system is that Google, Microsoft, and even Baidu all have so much to lose. They need to be receptive to government arguments while all competing with each other.

So yes. Google needs to be a white knight in shining armour because they benefit from user trust in a big way. The benefit in the short term with better engagement and margins. They benefit in the long term with superior positioning and longevity for their corporate rights.

2 comments

First, I disagree that the "GNU vision" (although that is stereotyping, there are a lot of non-gnu or anti-gnu communities and individuals who would like the internet to fullfill it's original premise of decentralized communications) will fail. Because the race to complexity is not inherent, it's contrived. Either a) corporations use technology in increasingly complex ways, which is a reflection of a bloated equities market and societal excess, OR b) technology providers intentionally make things obfuscated. I work as a devops contractor and I've seen this my whole life. Half the complexity in the world is because someone decided to re-write unix, "only different" (meaning, poorly). The "GNU" vision shares thoughts with the unix philosophy of do something, do it well. One shouldn't needlessly rewrite and re-create in the hopes that you'll get lucky and pull a zuckerberg before the next crash. Instead, invest in well-done, simple technology. As you said, many talented individuals are already working to this end.

They will join the heritage of Donald Knuth, Ritchie, Ken Thompson, RMS, ESR etc etc. They existed in a time when there were thousands of engineers writing very complex systems for large companies. All those systems are gone, never to be seen again. Useless. gcc, emacs, vim have their source code in thousands of git repos around the world and are used daily all the time. The next step will be possible!

> Half the complexity in the world is because someone decided to re-write unix, "only different" (meaning, poorly). The "GNU" vision shares thoughts with the unix philosophy of do something, do it well. One shouldn't needlessly rewrite and re-create in the hopes that you'll get lucky and pull a zuckerberg before the next crash. Instead, invest in well-done, simple technology. As you said, many talented individuals are already working to this end.

I'm sorry, but the problem is not the talented individuals or their efforts. Its that fundamentally new and different ways of computing and approaching computing problems arise as technology continues to progress.

We can sit here and grouchily state that reimplementing UNIX is the problem, but even within the ebb and flow of Linux we see substantial change and reformation over the arc of 5 years. And that's ignoring the actual GUI toolkits which have been in a constant state of flux and only partial levels of functionality.

These are challenges that the community has been happy to dismiss even as they create increasingly obvious and increasingly difficult barriers to entry in the community. They do so because they do not inherently feel the problem as acutely, they're the beneficiaries of education and opportunity (or more succinctly, privilege) that they are happy to dismiss as something that anyone could have. It is not so, but try telling them that.

I'm curious, as you've mentioned barriers of privilege twice now: are you referring to 3rd world disadvantaged individuals who don't have access to electricity and a PC and internet, or are you referring to millions in first world countries with ADSL 3 tablets, 2 smartphones and a PC gathering dust in the garage? I think it's simplistic to say "there aren't enough people on board because of poverty". I don't know why one suberbia can produce both an RMS and also facebook drones.
> I think it's simplistic to say "there aren't enough people on board because of poverty".

I think that is a part of it, for sure. But even in first world countries like America you see lots of kids with inadequate nutrition, no access to modern education, and no cultural inculcation. And of course, that sort of pretends IQs themselves don't fall along a normal distribution and that there aren't gender and racial issues discouraging a large class of people from pursuing an education in this field.

Even if these issues were addressed socially, I think economic barriers are hard to ignore.

First, even though I disagree with several of your points (GNU vision failure, your teleological view of innovation), I don't disagree with all (what's good for Google, #2 being strong currently).

Change (innovation) is hard to predict, and tends to happen in areas we least expect[1]. In particular, I fail to see why the people in the Free Software community would be any worse than those doing similar work in the corporate or government environment in security or other areas. In fact, there are several data points that suggest that are better in some areas.

The fallacy, I suspect, is the assumption that those supporting the "GNU vision" are a distinct group from the others, when in reality there is a lot of overlap between your three categories. A good example is IBM, who - upon remembering they are in the business of selling "solutions" and service contracts - opened up a lot their software, and participated a lot more in the FS and OSS communities.

Also, I'll mention that we should hope some version of your "GNU" future happens, at least where communications over the internet is concerned, as "proprietary" and "encryption" don't really work together if you ever want to trust it.

An alternative, vision of the future you may want to consider: most software is (and will be) fancy plumbing.

In each field, once you have the initial discoveries made (e.g. Knuth's tAoCP, the basic hydrological theories necessary to move water that we take for granted today) the rate of real discovery slows down considerably and becomes much more specialized. Innovation happens in both. New valves and fixtures are made, etc, but most of the time you just need to hire some plumber to setup your building, or you need to hire some software professional to keep your data backed up and your invoices generated properly.

To achieve this, just like how "standard parts" are far more common than proprietary parts in plumbing, having an free and open body of software to draw on makes the equivalent job in software far easier, too. I suspect this will be true with the internet and without.

None of this suggests the corporate or government players will go away - they will simply gain the benefits a free and open library as well.

[1] first paragraph: http://en.wikipedia.org/wiki/Connections_%28TV_series%29#Con...

> Also, I'll mention that we should hope some version of your "GNU" future happens, at least where communications over the internet is concerned, as "proprietary" and "encryption" don't really work together if you ever want to trust it.

While this future would be advantageous for me, I am not sure I am onboard with everyone being responsible for their own infrastructure. Not only is it quite wasteful in terms of physical resources (and very sub optimal on energy consumed), but it requires that every individual community have several experts with a high degree of skill (for reasons previously discussed of which I see no actual rebuttals)

> To achieve this, just like how "standard parts" are far more common than proprietary parts in plumbing, having an free and open body of software to draw on makes the equivalent job in software far easier, too. I suspect this will be true with the internet and without.

This is not an impossible future, but people have talked about it over and over, and every time a new language or paradigm comes out that is supposedly the "key" to unlocking truly modular and reusable software. Heck, even Brad Cox thought he was doing it with Objective-C and look at how much code is duplicated between iPhone apps.

> responsible for their own infrastructure

So you'd suggest we go back to the Ma-Bell model where you couldn't plug anything into the phone network yourself? Or do you like being responsible for your own phone and modem? While it was a clever hack, the acoustic coupler should never have been necessary.

> but it requires that every individual community

No, it only requires enough communities have such experts such that a "herd immunity" is established.

> I see no actual rebuttals

Your decision to totally ignore my point about these groups having a high degree of overlap is noted.

The assumption that "expertise" only happens with "commercial" (or government) was disproved a long time ago.

> modular and reusable software

"standard parts" isn't really about modular programming - I mean stuff like: Apache, glibc, zlib, etc.

Really, I'm just sketching out what is done every day to meet the mundane needs of "business software". A typical business generally doesn't need someone to invent a new data storage technique - they just need someone to make the necessary tables in postgres/oracle/whatever and the necessary forms/report-generators.

These needs never go away, and are the kind of task that benefits greatly from having a collection of commonly-used tools to draw from.