She's right and I sympathize a lot, but I don't see much in the way of addressing the reasons for these trends, just a lot of bellyaching about them and calls to "do something." You can't do that without understanding the underlying forces driving all this.

The reality, I think, is that the Internet has collided with reality, and the only way to address the concerns she and so many others have is to examine the point of collision carefully and try to find solutions that preserve the positive values of the hacker ethic.

I'll pick on a few things:

* Intellectual property

It's very simple. Nothing in the real world is free, and not everyone has a trust fund. People must get paid for their work or they can't eat, pay their rent, save for retirement, etc. IP provides one mechanism to (imperfectly) accomplish this. You can't take IP away without providing an alternative, and so far the Internet has failed to do so.

* Ease of use / UI / UX

I hate cars. I have to drive a car to work, but if it doesn't start instantly and run it puts me into a rage. Just work, damn it, and get me where I'm going, and then get out of the way. There are car people who love cars and love to tinker with cars, and that's fine, but that's not me, and the qualities that a tinkerer wants in a car are not the qualities I want.

Most people are not "computer people," and they feel the same way about computers. They want their laptop and their smart phone to just work instantly, quickly, and with minimum friction, and if they don't they are just broken.

UI/UX costs a lot. I'm engaged in a product effort right now, and getting the product working was maybe ~25% of the work. Getting a good UX under it is most of the remaining ~75%. UI/UX also involves a lot of the sort of work programmers find dull and annoying, and therefore developers really have to be paid to do it.

As a result, paid, centralized, for-profit efforts have a huge intrinsic advantage in the UI/UX space. Consumer technology comes from big companies because big companies can pay people to torture themselves with the endless pain that's require to polish a product and work all the edge case bugs out.

* Centralization

There are a few big driving forces behind centralization, but UI/UX plays into it quite a bit. Due to the difficulty and overhead of decentralized protocols, centralized silos make the sort of deep interaction and complex state management required to achieve a slick UI/UX a lot easier to build.

Piracy is also a big factor. Putting your software in a closed silo and selling it as a service means nobody can pirate it. If information "wants" to be free then it's in the best interest of anyone who makes a living off it to lock it up as tight as it can so it can't get out. What the pirates don't get is that by tossing IP out the window they've actually created a powerful incentive not to share.

--

What I'm saying is that these are brutally hard real world problems.

You can't break an existing system like IP without having an alternative that does the things IP is there to do. Doing that will just lead to a reactionary backlash and a return to the old system. Sometimes it leads to a reactionary over-reaction and a doubling-down on the old system.

You can't fight centralization without understanding its causes. Doing that just means you're screaming into the wind. People will continue to engineer centralized silo systems not because they want it this way, but because you haven't offered them a good alternative.