Dave Winer has done more laps around the programming track than most of us. He’s seen the same code recreated again and again on each new platform, as the next generation of developers thinks they can start from a clean sheet of paper and not make the same mistakes as everyone else.
I won’t say they’re completely wrong … they manage to add some new mistakes every time.
It’s not just the code; they keep reinventing the same business models, too. For example: Create an open platform, get independent developers to target your platform, then shut off the API once you’ve reached critical mass.
Older guys see this play coming a mile away, but younger guys always seem to think this time is different, no matter how many times you warn them. But you have to keep warning them anyway, don’t you?
I think so, and I thought Dave did, too. That’s why I was so surprised by his response to a comment I left on his blog.
I like the idea of Twitter going back to its roots with developers. It plays to its strength as a platform. The challenge here is due to how many have been burned. On the flip side, there aren’t a lot of obvious alternatives.
The cynic in me says that’s not a challenge at all. There’s always a fresh pool of developers who haven’t been burned yet. And they never listen to the “old guys” who have seen it happen again and again.
Everyone has heard that opinion, it’s what gets said over and over. Try to add new ideas.
Which honestly confuses me. Yes, it gets said over and over. Because it’s true over and over. And companies will keep pulling the same shit with developers as long as it keeps being true.
Dave has tried dropping out, ignoring the latest re-hash of the same stuff he was writing in the 80s. He even deleted his Facebook account and avoided the platform for more than two years. Eventually he started working with them because, “Facebook delivers more readers and engagement. And despite all the advantages of blogging, Facebook is winning.”
Makes sense. If you want people to hear what you’re saying you have to go where they’re listening. And if you’ve been around the block a few times you go in with your eyes open.
But when someone suggests that a company can’t do something because of how they’ve burned developers in the past, don’t those of us who have seen it have an obligation to stand up again and tell the story?
Whether a falsehood is stated through ignorance or malice, if no one disagrees it becomes the conventional wisdom.
If you’ve been online long enough to have found this article you’ve probably seen, or even participated in, a flamewar. Seen from the outside, you know you’re looking at two people exactly like this guy:
You don’t normally see flamewars in real life except in special-interest forums: politics, academia, sports,cosmology.
Then there are those special people, the polyflamers who will argue on any topic. No, not lawyers. Geeks.
Something in the geek psyche makes them — okay, us — prone to obsess over pedantic distinctions that ordinary people just don’t care about. If you think about flaming in geek terms, though, you see a way out.
When writing code, a programmer usually writes instructions that are in (somewhat) human-readable form. These instructions are then “compiled” into commands that a computer can interpret and execute. If the output from the computer is wrong, either the commands the programmer entered were wrong, or the compiler didn’t work correctly.
Experienced programmers quickly learn that it’s very unlikely they’ve found a new compiler bug. If there’s a problem, it’s almost always the code they wrote. Sometimes, though, there really is a bug in the compiler. Compilers can get fixed, but not quickly, and not often. The changes have to be small enough that they don’t introduce new problems. And they will potentially break any code that was designed to work around the bugs. Which is exactly what programmers do: They work around the bugs.
Now think about a political campaign as a computer program. The campaign staff is writing instructions (commercials) that they hope will cause the public to exhibit specific behavior. But the target platform is the brain of each individual voter. Each one has its own rules, so every compiler works differently. But here’s the important part: You can’t fix the compiler. No matter how broken you think someone’s thinking is you can’t change the basic rules.
What you can do is figure out what rules they’re using. Which means stereotyping people. pigeonholing them based on a few characteristics you’re sure of, and assuming that a whole bunch of other things are probably also true. The sad fact about humanity — sad if you’re a fan of individuality, that is — is that this tends to work pretty well.
These are not the earmarks you were looking for
So now that you know each brain is wired differently, and you don’t have much chance to “fix” it, what are you supposed to do about it? Stop using arguments that work on you, and start using ones that work on them. Whoever “them” happens to be at the moment.
 Combine two and you get the observation that academic politics are so vicious precisely because the stakes are so small. Attributed to Woodrow Wilson after his time as president of Princeton University.
All the talk of people pirating music — and movies, and software — is enough to make you think it’s a hard problem to solve. But it’s not, really. All you have to do is disincentivise copying. (That’s sarcasm, for those who missed it.)
The MPAA and RIAA have tried licensing, lawsuits, lobbying (I didn’t do that on purpose, I swear) but the copying doesn’t stop. People are amoral thieves!
Or … maybe people remember that when the compact disc format came out, it was supposed to be cheaper than cassettes. They cost less to produce, so as soon as the studios recouped the cost of building the new technology we’d see prices drop. It’s been over 27 years now, have they recouped that investment yet?
In Yet Another Internet Forum Discussion About Offshoring (I hereby claim authorship of the acronym YAIFDAO) someone wrote:
A lot of decisions should NOT be left to developers to make. imho, the time to think out of the box is gone by the time it is TIME TO CODE. It’s not time to think about alternatives to what to do.
That is absolutely right. You never want developers talking to end users. They might suggest some other plan than what was painstakingly shepherded through four levels of approvals.
And let’s just squash the notion right now that sometimes there are trade offs to consider. Just because the analyst’s solution will take three weeks of coding effort and a new application server, while the programmer knows of a reusable component that will take one hour and no increased hardware, is no reason to institute the Change Control Process.
Alternatives should always be considered in isolation from the impact they cause. Implementation issues should never be allowed to intrude into the world of business decisions.
Next thing you know someone’s going to suggest that maybe mere programmers could have a meaningful contribution to make to the business process. What rubbish.
BOSTON – The Free Software Foundation is reviewing Novell Inc.’s right to sell new versions of Linux operating system software after the open-source community criticized Novell for teaming up with Microsoft Corp.
No, they want all the components on which they hold the copyrights to be protected by those copyrights. And they want those components to be freely available to anyone who agrees to make their modifications available under the same terms.
You can’t modify and distribute Microsoft’s code without permission.
You can’t modify and distribute GPL code without permission.
The way you get permission to distribute Microsoft’s code is to pay them a lot of money, or cross-license your own code.
The way you get permission to distribute GPL code is to release your modifications under the GPL.
Microsoft can destroy your business model by bundling a version of what you make.
GPL-using authors can destroy your business model by releasing a free version of what you make.
If you don’t want to be bound by Microsoft’s terms, write your own code.
If you don’t want to be bound by the GPL, write your own code.
More Than a Gigabuck: Estimating GNU/Linux’s Size, a 2001 study of Red Hat Linux 7.1, found that this distribution contained 30 million source lines of code. … Slightly over half of all lines of code were licensed under the GPL. The Linux kernel was 2.4 million lines of code, or 8% of the total.
So the first point is that no, the FSF can not ban Novell from selling a GNU/Linux-based distribution, as long as all the current license terms are followed.
However, the holder of the Linux trademark, Linux Torvalds, could choose to prohibit them from using that mark to describe what they’re selling. (See Micosoft / Sun / Java™) Though I haven’t seen anything suggesting he plans to do so.
Next, the Linux kernel is covered under the GPL, so even if the the FSF doesn’t hold the copyright it’s entirely possible the kernel authors could ask the FSF to pursue any violations on their behalf. And I suspect Stallman and Moglen would be more than happy to do so.
The bottom line, I think, is that business people who don’t understand the technicalities will either see a deal with Microsoft as a reason to choose Novell for any Linux plans, or they will see the controversy as a reason to avoid Linux plans altogether. Either conclusion benefits Microsoft.
People who do understand the details will see that Novell offers them a conditional, time-limited right to use a specific version of Linux, which may or may not interoperate better with Windows systems, which can be effectively “end-of-lifed” at any time by Microsoft.
There are certain milestones in the life of a product when developers are free to ask if it’s time to change the platform it’s developed on. Typically you’ve shipped a major version and gone into maintenance mode. Planning has started for the next version, and you wonder if you should stick with what you’ve got or if, knowing what you know now, it might be better to switch from .NET to PHP, or from PHP to Java.
You might think that checking Netcraft would be a good idea. You can see if your current platform is gaining or losing market share, and who doesn’t like market share? If you look at the latest chart you’ll see that Microsoft is gaining on Apache.
But keep in mind that while Apache’s market share has gone down marginally, the total number of sites has still gone up. Most of Microsoft’s gain is from new sites, not from existing sites switching. (The exception being large site-parking operations switching to IIS.)
But really the important question is whether your preferred platform faces a reasonable possibility of becoming obsolete/unsupported. This is actually one place where the Unix world’s slower upgrade cycles help. You rarely have applications “sunsetted” by the manufacturer.
Am I arguing in favor of dropping .NET? Not at all. I think you should use what works for you. What I’m saying is unless your chosen platform is in danger of becoming unsupported, and that causes a problem for you, then looking at market share charts should never get you to switch.
Now if you hadn’t already chosen a platform, and you wanted to know what platform had a larger market, then you’d care about market share. But that’s a subject for another post.
If you listen to geeks, locking out development of third-party applications will doom the iPhone in the market. But remember the now-famous review when the iPod was released:
No wireless. Less space than a nomad. Lame.
The market quickly decided they didn’t care about wireless and bought the things in droves. And current versions have more space than the nomad did when the iPod came out. Now that the iPhone has been shown, geeks are againclaiming that it’s going to fail. This time because it’s not going to be open to third-party applications.
Apple doesn’t care if you can extend it because they believe their target customer doesn’t want it extended. They want something that works well, the same way, every time. The iPod wins because it does pretty much what people want, close enough to how they want, without making them think about how to do it.
The iPhone may not be open to developers, but it’s upgradable. When Apple finishes writing software to make the Wi-Fi automatically pick up a hotspot and act as a VoIP phone, that functionality can be rolled out transparently. First-gen iPhones will become second-gen iPhones without the users having to do anything.
The upgrade path will be to higher HD capacity, so people can carry more movies with them. I see these things as hugely popular for people who take trains to work. If I could take a train where I work now, I’d already be on a waiting list for an iPhone.