jarvuschris
Joined 14 years ago
Joined 14 years ago
ALL markets are BORN of regulations. A market is what emerges when you lay some shared ground rules: here's what a pound is, here's a standard currency, here's some laws about commerce, here's a court system for mediating disputes.
So the question isn't ever really about free or not free—it's what are the rules and who sets them
99 out of 100 times the people spending money pushing the virtue of a "free market" really just want to be the ones setting the rules and steering them in their favor
Replace "free market" with "competitive market"—what most people actually want when they talk about free markets—and suddenly a lot of what Bezos is going to argue for stops making sense
Points 1 and 3 aren't relevant if they aren't recording the data. Companies in other jurisdictions have no magic invulnerability you can trust to their data getting out (legally or illegally) if they're storing it.
Points 2 and 5 are equally true of any open source project unless you run it yourself from source. There are _plenty_ of examples of users getting phished by maliciously built/hosted open source tools
Point 4 is obviously not malicious tracking and a mistake any project could make
At the end of the day though, unless you're going to run everything yourself (which most people aren't) you have to pick who to trust -- some random person running a server somewhere, or a company with hundreds of employees recruited under the premise of working on a privacy-centric search engine who could all turn whistleblower
It's kind of sad because it's a far better way to manage deployments and environments...but it takes 1-2 years of practice to really get proficient at
I think this reinforces OP' point though: what we really need are descriptions more specific than "software developer" but less specific than "$language developer"
> some languages force you to learn so much other "stuff" before you can be professionally productive in it
And it's exactly that stuff that should be the focus of describing the role. e.g. you're looking for a low-level network software developer with proficiency in memory management. If you were recruiting someone to help you with a Go or Rust codebase in that domain, you wouldn't pass over someone with a ton of relevant experience via C++ who hadn't spent much time with Rust/Go yet.
Focusing on the language rather than the skills/application (even when there's a heavy correlation between the language and associated skills) excludes good candidates and includes irrelevant ones
You're talking about a world though where only large enterprises are served well by tailored software. Malleable systems don't make sense in large enterprises and global-scale solutions
But what about all the spaces currently underserved by current "best practices"? Smaller organizations, closer to the ground, where things are inherently less scalable.
Think of all the places it makes sense to use WordPress, but where information/workflow tools being having a website are needed
Proper software engineers will poo-poo all day on WordPress' bad architecture and the messes users make with it
But also, it has empowered millions to create and by some estimates it powers ~30% of the internet
These facts are not unrelated. Sometimes it's OK to let people make messes, sometimes "good engineering" isn't as important as creative liberty
In those cases you have a ecosystems where you can pick from a plurality of base systems maintained by large projects to start from. Someone who is an expert in something else can get up and running with a functioning system without learning a ton (e.g. installing Ubuntu to build a shared workstation, initializing a WordPress site via Pantheon). You can put your own business content into the system and get your own workflow going. Then you can learn to find and load addons from a community that address shared use cases (e.g. apps, packages, themes, plugins), customizing your system and workflow further to support whatever your operation is. Then you can learn to configure things manually to further tune things to your cases. Then you can hire developers or start learning to code yourself to layer your own scripting and extensions on top that are specific to only your use cases. It's easy to dismiss such installations as poorly architected and unmaintainable, but the 20-year old backoffice desktops and cobbled together wordpress sites are the real workhorses of small orgs operating over the last couple decades.
What is the industry working on to bring these sorts of dynamics to the next 10,000 sorts of on-the-ground operations that are repeated around the world. People are jamming this into WordPress all over the place and it's overloading the publishing platform's design. Where's the hot new app framework that's all about creating ecosystems?
We've built all these tools for developers (npm, composer, etc), but not for implementers and experts of human-scale operational systems that we have thousands of around the world because they're inherently actually connected to humans to scale globally.
For example, consider [Courtbot](https://discourse.codeforamerica.org/c/projects/courtbot)
The courtbot project aims to deploy friendly user interfaces county-by-county that help residents navigate interactions with their local court systems. This is an inherently local problem/opportunity, each county's systems and processes are going to infinitely vary. There's no nationally-scalable business model or system that can be built to solve this, but does that need to mean technology can't help the people alreadying doing these things manually in their communities?
There are a handful of court systems that tons of counties use, the Courtbot deployers all around the world should be able to collectively maintain a handful of base distributions that onboarding communities could get started with quickly if their data can be grabbed from one of the common systems. There can be toolkits and tutorials for those that need to build their own base systems. What template and toolkit do the core developers have to follow for setting up. Everyone is pretty much on their own right now like before all the pieces came together to make Personal Computers successful, and making the Macs and Windows and Linux of that transformation is the next big leap we need.
When need hardened FOSS architectures for multi-user online environments, a next iteration in the lineage of GNU/Linux and WordPress and in many ways a sort of hybrid of the two. Core developers standing up projects for public primary schools, or libraries, or public defenders, or independent/small-chain restaurants, or expungement projects, need patterns and tools to draw from so what they create can spawn wordpress-like ecosystems from the start, without them having to spend 10 years and 6 major iterations to shake out how to make config and plugins and themes and 3rd-party managed devops (i.e. pantheon, wpengine, wordpress.com) ecosystem stable.
How to act on it: pick any civic technology project and start solving the problems of making them easy to redeploy to thousands of communities that need to do more options than forking or requesting increasingly complex and specific new configuration options. If you figure out some stable patterns for that that work, make a project of it and start sharing it with other verticals.
The PC revolution happened when people become empowered to work together fluidly in a pyramid of specialization and cost sharing
Where we need to focus is opportunistic clustering, both of development and operations