[Solar-general] Shedding Bikes: Programming Culture And Philosophy

Nicolás Reynolds fauno en kiwwwi.com.ar
Jue Oct 14 21:51:12 CEST 2010


Shedding Bikes: Programming Culture And Philosophy

Shedding Bikes

What do you think? [1]post en sheddingbikes.com

By Zed A. Shaw

The Long Beard's Revenge

I recently heard that RMS is pissed at cloud service companies because they
are causing the decline of open source. I do have to say I agree with him
that there's a decline in open source, but I'm going to lay out a completely
different reason why. This is based on my experience as being classified a
"Long Beard" during an era where consumer internet shifted and the front-end
became king. Take it with a grain of salt, since it's just my observation
and guess.

Stallman's Argument

Richard Stallman's argument about cloud services is that they use many open
source technologies, but they don't have to release their derivative works
because they are a network enabled service. This is apparently the
motivation behind the AGPL, which aims to force a company using a piece of
free software to release their contributions no matter what.

His worry is that there will be a decline in FLOSS contributions because
corporations will simply steal and never give back.

It's my belief that he's right about the decline of open source, but /wrong/
about why. It has nothing to do with cloud services and them "stealing" but
everything to do with the simple economics of open source back-end software
and the current cultural climate that pits "Product Guys" vs. "Long Beards".

Is There A Decline?

Of course, first we have to establish that there is a decline. I'll give two
indicators.

First, a graph came up today from [2]Oholoh showing open source contribution
declining and that got me interested in writing my ideas on this. If you
look at this graph you see there's a marked decline across the board in open
source contribution.

Second, you're starting to see projects that have been closed old boy's
clubs open up and consider a more liberal commit access. It's common enough
that I'm starting to think it has less to do with a sudden change of heart
and more to do with the fact these projects can't find new blood. If you
look at many of the long established projects the contributors are getting
older and are not as active. In the past finding new people to help was
easy, but I'm seeing all projects having a harder time (minus any that have
insane fadish popularity).

For the sake of argument, let's say there is a decline in open source
contribution and creation of new projects, or at least the /start/ of a
decline. It's possible for say github to have stats that counter this, but
let's go with it for now and talk about what might be causing it.

"We Don't Need Backend Guys"

The first clue is the complete lack of respect many companies that benefit
from open source have for the people who make their tools. I recently heard
that [3]Quora basically said they don't need back-end people anymore. Of
course, a few days before they said that Facebook had a huge outage that I'm
sure didn't require /any/ Long Beards to fix (that's sarcasm).

Another example of the disrespect is Meebo and their use of libpurple
without ever giving credit, and in fact claiming they did it all on their
own. Every time I mention this some pissed off libpurple fan or developer
emails me about it.

As I've [4]said before the operations at a company are all about cost
reduction. They're the other half of making a /profit/ (revenue - cost =
profit). If you are just a company that needs to build up insane revenue for
a giant IPO and can gather enough investment to maintain operations loss
levels then yes, you do not need operations to be that good.

The rise of consumer internet companies, Product People, and cheap small
scale hosting means you can actually run a company for a very long time with
a minimal knowledge of operations. Many of these consumer internet companies
then run for as long as possible, but because they never try to get off
these more expensive-at-scale hosting options they tend to [5]grind out.
Their technical debt effectively limits their growth.

The only way these companies can exist however is if there's /free/ software
they can use. If they tried to build the same companies on Microsoft or
Oracle technologies they'd need a much /much/ larger infusion of investment
to even get started. With PHP, Apache, MySQL and a $12/month VPS they can
get started and service quite a few customers before even considering
investment.

Instead of realizing this dependency on FLOSS software and communities, many
of these companies just scoff at the programmers powering their world as if
they aren't needed. They fail to give out recognition, offer ridiculous low
paying "sysadmin" positions, openly disrespect in the name of "User
Experience", and are generally just rude and condescending to the people
running their operations.

The Unwritten FLOSS Contract

What has happened though isn't so much that these companies are "stealing"
but that they forgot the contract. The unwritten contract held between
corporations and FLOSS developers was basically this:

"I, FLOSS developer, agree to create software and release it for free so
long as you, corporation, give me recognition, a job, or at least help build
it."

Consumer internet companies however are just not bothering with this. They
frequently will use software and then slander the author of it claiming it's
"crap". They often will hide the software they use rather than admit they
couldn't build it all themselves. And, as RMS is finding, they keep
innovations and improvements to themselves rather than share.

As this trend rises, the value proposition for releasing software for free
begins to dwindle. If you're not really going to get that great a job, and
nobody can see who's using your software, and even worse the companies using
it claim it's crap even though they use it, well then why bother?

But, people who are classified "Long Beards" still like writing this
software, even if they're never trusted to implement it when they get hired.
What are they to do then?

Enter Cloud Services

Before the cloud if you wanted to hack on a web server, or virtual machine,
or some cool piece of hosting software, you pretty much just did it on your
own and released it, or did it at a company and let them sell it. Very
rarely would you find an employer willing to release the software open
source if you wrote it on their dime. In some states even just being
employed by them means they own it.

As consumer internet increased and started taking advantage of open source
(in both the positive and negative meaning of "taking advantage") you saw
people who wanted to write server back-end software flee to web frameworks.
A web framework let you work on the back-end, but had the interesting
quality that anyone who used it pretty much had to admit it or contact you.
If the web framework was tied to a specific platform (Python, Ruby, Java,
.NET, JavaScript) then it was even better.

Then the latest trend of putting a service online and calling it a "cloud
service" gave a new out for back-end people. If you could write
documentation, create a REST or email interface, and build some servers you
could put your cool back-end up for people to buy /without actually having
to give them the software/.

This was key because now the Long Beards could have their revenge. They
could take advantage of the same economies of scale Product People
exploited, but /also/ use their skills at cost reduction to make the price
good enough that Product People wanted to buy it. Since consumer internet
companies are all about the front-end user experience they're very into not
having to deal with any icky hardware and servers.

Now a someone who's purely back-end can actually take software he's written,
and just throw it on some EC2 instances and sell it directly to consumer
internet companies. There's no need to take a job with these companies now
and.../there's no need to release your software/.

In fact, releasing your new software hurts your business except in a few
special cases.

Another way to put this is the Long Beards aren't stupid. They want to write
this kind of software, and they see that the contract is broken in open
source, so now they just go and make a service and sell it. Simple.

My Predictions

This is where RMS is wrong, the decline of open source won't be because of a
reduction in contributions to /existing/ projects, but because cloud
services and the rise of consumer internet will reduce /new/ projects.
Existing projects will simply just slowly stagnate until an extinction event
wipes them out like the internet wiped out BBSes.

However I can see this inflexion point going one of two ways, and I'll make
a few predictions with some indicators to watch. In fact you could see both
trends play out for years before something changes it.

The first possible trend will be internet services cannibalizing new open
source, but a rise in the number of and quality of the available services. I
think this next wave of *AAS will be similar to the recent switch in
consumer internet from "crappy Enterprise looking web apps" to "Web 2.0 user
experience web apps". You'll see a shift from "crappy strung together with
duct tape horrible docs services" to "well designed cost effective well
documented services".

This next wave of internet services is what I'm aiming Mongrel2 squarely at
(and yes I understand the irony of giving Mongrel2 away). I think the
indicator for this trend will actually be improved documentation and a focus
on language agnosticism. Yes, that's what Mongrel2 has, and that's why it
has it.

The second possible trend though is that the consumer internet companies get
their head out of their asses and realize they need a /Total Product
Experience/ not just a user experience. They'll realize that what keeps them
from going the distance and becoming huge is the massive technical debt they
build up from poor infrastructure and a general lack of operations and
system quality. They'll then actually start hiring and treating their
operations people with the respect they deserve, and probably start holding
up the original contract they had with FLOSS.

Additionally, I think people working on cloud services right now should be
aiming to bring this trend to the consumer internet companies by focusing on
providing the operations quality they seem to be unable to create for
themselves.

I believe, and you'll call me crazy, but the indicator for this second trend
will be a focus on automated testing (not just unit testing) and operations
cost at consumer internet companies. Right now I think maybe 5% or 10% of
consumer internet companies even run one bit of test automation, hell
automation at all. Look for this as an indicator that they've figured out
automation reduces costs and increases agility.

The interesting thing about these two trends is that they're not mutually
exclusive, and they're not very new. Both of these parts of the technology
business machinery have been around for a while, it's just they have been at
odds with each other mostly. My overall prediction is that there will be a
general focus on this Total Product Experience idea, and getting away from
the stupid "Back-end Long Beard Old Guy" vs. "Hot Young Front-end Product
Person" attitude we have now.

[6]Mongrel2.org
    Programming Language Agnostic Web Server.
[7]FretWar.com
    Guitar Competition and Education.
[8]Andt.hn
    Collaborative choose your own adventure never ending concept album.
[9]Shedding Bikes
    Essays on programming culture and philosophy.
[10]Oppugn.us
    Rants by everyone.
[11]Gear.FM
    Music Gear.
[12]SongBe.At
    A music microblog.
[13]@zedshaw
    My Twitter.
[14]Librelist.com
    Free mailing lists for open source projects.

  ------------------------------------------------------------------------

[Image]


 References:
   1. mailto:post en sheddingbikes.com
   2. http://www.ohloh.net/languages/compare?commit=Update&l0=c&l1=html&l2=java&l3=php&l4=ruby&l5=shell&l6=xml&l7=python&l8=-1&measure=commits
   3. http://quora.com
   4. http://sheddingbikes.com/posts/1285436217.html
   5. http://techcrunch.com/2010/10/03/if-web-1-0%E2%80%99s-kryptonite-was-the-bust-web-2-0-kryptonite-was-the-grind/
   6. http://mongrel2.org
   7. http://fretwar.com
   8. http://andt.hn
   9. http://sheddingbikes.com
  10. http://oppugn.us
  11. http://gear.fm
  12. http://songbe.at
  13. http://twitter.com/zedshaw
  14. http://librelist.com/



-- 
Salud!
Nicolás Reynolds,
xmpp:fauno en kiwwwi.com.ar
omb:http://identi.ca/fauno
blog:http://selfdandi.com.ar/

gnu/linux user #455044



Más información sobre la lista de distribución Solar-general