One year ago (plus 5 days), I posted this here on my blog. I just found it again through my referral stats. Of course, that post isn't about Juliet, at all. Fun.
You've gotta love this sentence from here: "Pool resources to get additional UK Government and European Union funding."
This here on /. pretty much speaks for itself. (I didn't know I applied for a job in New York or posted my resume anywhere? Did I?)
Sir, why don't you come at least forward with your name and company name (the comment section here is a good place)? You can also send me email. The link is here on my blog site. If you choose this route, please include your slashdot post and please cc: your CTO/CIO on it. Thank you very much.
Das Beispiel von der Nachtsession zum Thema Transaktionen beim Technical Summit in Kassel ist hier zu finden. Und hier ist das passende Slidedeck.
In the last two days, I've been called a clueless idiot, a f*cking retard and somewhere I even read that I should be punched in the face for writing the open letter to Aiden (who is, by the way, a fictional character representing very many people I've spoken to). There are more than 1400 comments in a thread on slashdot referencing this post, some of them very insightful and thought provoking, some of them ignorant and some just pointlessly insulting. There are tons of weblogs and websites referencing the letter.
I think I've made my position quite clear so there's little for me to add to the discussion at this point except one topic: "Freedom". Very many folks have pointed out that I am missing the point and that OSS is about freedom and not about gratis. I know the argument and I think I understand it quite well, but coupling the term freedom with what is has become a gratis-by-default culture is deeply disturbing to me when I take it and put it into a broader context. Consider the following little political excursion before I get back to software:
I live in a stable society and I enjoy the luxury of living in peace in the middle of Europe, surrounded by friends. The stability, freedom and democracy that we enjoy in “old Europe”, in an unprecedented period of peaceful coexistence that is now lasting for almost 60 years, is supported to a large degree (but of course not entirely) by our society’s wealth – and a responsible approach to capitalism. Capital distribution is not fair and never will be, but we are wealthy enough that there is no war between rich and poor. People don't live in closed areas behind huge fences and one can walk through the inner cities in the middle of the night without much of a risk of being robbed and killed. Here in Germany, we support the ones that cannot care for themselves by affording a social net through which very few people can fall. If you cannot afford your rent or feed your children, you are entitled to get help. A social network like this is expensive and painful to afford as we currently see in our political debates about reforming our social systems. We can only afford it, because we have a capitalist system. We can only afford it, because the majority is employed and works hard, does their work for money and pays taxes and social insurance. We can only afford it, because companies pay taxes. This system gives people the freedom to make mistakes in their lifes or just have bad luck. To me, that aspect of freedom is the most precious -- even more than free speech.
Socialism tries to achieve fairness by making everyone equal, eliminate competition between people and production entities, and -- eventually, when the Nirvana of Communism is eventually reached -- make everyone work for the common good by mutually sharing their work results and goods so that they could enjoy freedom and live a comfortable life without pressure and exploitation by the capitalists. Communism is a great model and wonderfully attractive. In the late 1800's, when exploitation of workers without capital taking any social responsibility was the norm, this idea grew rapidly and found many supporters, because it is fundamentally about freedom from capitalist oppression. The Soviet Union was founded on the honest and actually well-intended belief that the model would work and even Pot Pot's much later "revolution" in Cambodia (next to the tragedy of the Holocaust one of the greatest horrors on the 20th century) was driven by the belief that communism can work - all given that everybody in the society plays along. The fact that everybody must play along for communism to work did cost millions of people their lives. If people were assigned to grow rice in Cambodia and they were caught catching fish from a nearby river so that their family would not starve, they got taken away and shot. A family having a fish while the other community members did not was considered a crime carrying the death penalty because they these people were apparently not agreeing that everyone is getting the same food. The oppression that we have seen in socialist and communist countries was initially rooted in the fact that the system had to convert people and get them to play along the rules so that communism could be successfully "booted". And eventually that oppression just became the norm. So while it all started with good intent, the communist idea has turned into a horror every time it has been tried.
Just to say it very clear: I am not making a statement about software here. Software does not kill people or oppress people, neither directly or indirectly (with the notable exception of software for weapon systems, of course). I am talking about the politics that are used to sell an idea, ok? I don’t want to see the Slashdot headline “Vasters says free software kills millions”.
However, what really worries me are the existing parallels in the ideology debates. The free software (as in freedom) ideology has a lot in common with the idealism of the well-intended communists of the late 1800s and early 1900s who believed in a great society of giving and sharing to achieve freedom. Probably I am totally wrong with my views and this set of ideas will work beautifully this time, in this century and scoped to the software industry. I have my doubts. I have my doubts that the ideology is honest. There are people managing large companies who certainly know the political game better than I do and they are acutely aware that the ideology works as an argument and works to their benefit. That's why I am deeply worried about the political angle of the debate.
***
I am not bold enough to predict what is going to happen to this industry as a whole in the next 10 or 20 years, but I doubt that the next truly great software innovations with coherent architectures will come out of a system where everyone shares a little bit and committees decide on architecture by casting a vote. I think -- and here's a quite daring claim -- that the free software movement actually plays into the hands of the established commercial software vendors by surrendering the innovation role to them. On Microsoft campus, 50 people can get into a room at any time and discuss architecture face to face. And in the end, there's a boss that makes a final decision on things. Email and newsgroups can't really replace that depth of interaction and community is not the same as an organization that has a power hierarchy. I am not claiming that the distributed development and architecture model does not work. Many OSS projects show that it does work. But how about true innovation on a grand scale that does not reuse the architectural blueprints of commercial software -- or the usability aspects? There are select instances where community developed OSS projects are truly innovative, but the majority seem to be re-implementing and gradually improving things that are already existing. How about a GUI shell that revolutionizes how we interact with computers and that doesn’t look like MacOS or Windows?
One thing seems quite clear to me: Hate them as much as you like, but because of the sheer fact that they are the largest commercial software vendor and have the money, resources and “pull” to get more and more incredibly smart people to live and work around Redmond and that they can put them into a room together to think about new stuff, Microsoft is going to out-innovate everyone else in the industry (laugh if you want) and any form of distributed development will be struggling to catch up. The “Longhorn wave” of technologies that was presented at their Professional Developers Conference is just a very tiny tip of a large iceberg of things brewing inside that company. They have a vision for a consistent and integrated architecture for all the software they produce and for absolute consistency across all programming models, lowering learning curves and increasing productivity across the board. They have a great vision how user interaction with computers will change. And on top of the growing innovative force on the inside, they know really well how to take innovative ideas from elsewhere and productize them so that they are accessible to the masses. That’s Microsoft’s reaction to free software. If someone is really interested in stopping them from legitimately dominating every aspect of the software market (market as in money) in the long run, they need to compete with them on the innovation front. For a distributed community that collaborates by sharing little things, that’s incredibly hard, even if some big spenders throw money at the problem. Will it be possible? Time will tell. I don’t know and you don’t know the answer either.
With this, I return to scheduled programming.
Of course my letter to Aiden is prompting some opposition. It may be worth noting that a very large proportion of the code that I write ends up being public and there's more stuff brewing as we speak. There is little need to educate me about giving. I am an educator. Sharing insight and therefore sharing manifestations of that insight in form of source code is my mission and part of my business. But this is not the business my clients are in and neither is it the business of most of the thousands of developers I am honored to speak for at conferences each year. Their business is about being paid for writing software. If they weren't paid, I wouldn't be paid. My job description is to figure out fundamental stuff and use my natural "understand very complex things thoroughly and rapidly" skill that I was luckily blessed with, so that I can explain those things to them and they can focus on solving customer problems. My free stuff helps my customers and is also playing a marketing role for me an my company. Our free stuff is a calculated investment. We can and do attach a number to it. dasBlog is a freebie for others but represents a significant investment that's worth several tens of thousands of Euros. It's not free, at all.
We support a project that brings us some indirect value. However, we do not in any way force any code republishing requirements upon the folks who'd like to reuse our code (we have a strict "no GPL" policy; our code is BSD licensed). We don't depend on a community of volunteers to turn dasBlog into a dominant blogging tool that we can benefit from by commerically supporting it. We believe that if we wanted to benefit from the software directly, we would have to rearchitect and rebuild it (or at least restrict ourselves to newtelligence contributions) and then sell it as a fully supported commercial product. My personal sense of respect and fairness tells me that I will not and should not exploit the others guys that have contributed to the free version of dasBlog. It's their hobby and their work is their work. I think a company like Red Hat, which is a public company (which did yield a significant "going public benefit" to their founders) and is profiting from the work of countless unpaid volunteers and enthusiasts, is a very clever, but deeply unethical entity.
I do believe in giving and I do believe that there is value for the community at large in sharing insight through source code. But we don't share the view that software is free or should be free. Someone pays for it. We have an investment in software that is free for others to use, MySQL has, HP has, IBM has, Sun has and - believe it or not - even Microsoft has. We do that as part of a well thought out and well understood business strategy.
I understand open source. I do open source. I do so because I am aware of what it can and can not do for a company. I think I have a pretty good understanding on what's going on in this business. If it becomes the norm that the people providing outsourcing, system administration, hardware, and consulting make orders of magnitudes more money than the creative force, the software engineers and architects who are envisioning and building the foundation for this industry, something is stinking. And it stinks a lot already.
Also, if you say that I am confusing "free software" and "open source". I am not. "Open" is the political argumentation line, "free" is the economic argumentation line of the same thing. If this sort of confusion exists for mostly everyone and one of the most often repeated line in OSS arguments is "you don't understand the difference", then that's caused by the simple fact that these terms are simply two angles of looking at the same story. The OSS "eco-system" only functions because both is true.
Matthew, selfish is not the one who wants to get a tangible reward for his work. Selfish is the one who denies that reward.
Dear Aiden,
I think you remember the conversation we had recently at this software
conference in Dublin. You came up to me and told me how the stuff I was talking
about was mostly useless, because it is closed-source, people need to pay for
it and that companies charging for software are evil anyways – especially
Microsoft. Unfortunately I don’t have your email, but I am sure this
will reach you.
First, I would like to thank you for the interesting conversation that
developed and to make sure that none of what was said just fades away,
I’ll tell you here once again what I am thinking about what you do, what
you think and – most importantly about your future.
When I was 21 – like you now – I was also at university and was
pursing a computer science master degree. Back then, I was very enthusiastic
about programming and creating stuff that mattered. And thought that I was the
best programmer the field has ever seen and everyone else was mostly worthless.
And I did indeed write some programs that mattered and made a difference. The
program I spent some 3 years writing in Turbo Pascal from when I was 18 was for
my father’s business. Because the business he’s in requires a lot
of bureaucracy, he and my mother spent about 2-3 daily hours on average doing
all of this stuff by hand. When I was done with my program and he started using
it, that time went from 3 hours to about 15 minutes a day. That was software
that absolutely improved the quality of life for the entire family! And his
friends and colleagues loved it, too. I didn’t sell many licenses at that
time (I think I had 3 customers), but each one was worth 1500 German Marks and
that was a huge heap of money for me. I mean – I was living at my
parent’s house, getting a monthly allowance of 120 German Marks and
worked as a cable grip for a couple of TV stations every once in a while
– maybe 2-3 times a month. And if I ever had 400 Marks per month I could
really consider myself massively rich at the time and for my age, because I had
very minimal additional expenses. So 4500 Marks on top of that? Fantastic.
Where did the money go? I can’t really remember where it all went, but I
guess “lot of partying” or “Girls, Drugs and
Rock’n’Roll” would be a reasonably good explanation. Hey, I
was 21 and that’s what one is supposed to do at that age, right?
That was in 1990 – let’s fast forward to 2004 and you. All
software that you and your father could possibly be interested in has already
been written. That’s probably not true, but it’s hard to think of
something, right? Ok, the software may not run on your favorite operation
system and may cost money, but what you can immediately think of is likely
there. So where do you put all your energy? Into this absolutely amazing
open-source project you co-coordinate. I mean, really, the stuff that you and
your buddies are doing there is truly impressive. There are a couple of things
I’d probably do differently in terms of design and architecture, but it
works well and that’s mostly what matters. And you do make an impact as
well. I know that hundreds of people and dozens of companies use your stuff.
That’s great.
However, I start to wonder where your benefit is. You are – out of
principle – not making any money out of this, because it is open-source
and you and your buddies insist that it must be absolutely free. So you are
putting all of that time and energy into this project for what? Fame? To found
a career? Come on.
If someone installs your work from disc 3 of some Linux distro, they
couldn’t care less who you are. The whole fame thing you are telling me
only works amongst geeks. The good looking, intelligent girl over there at the
bar that you’d really like to talk to doesn’t care much whether you
are famous amongst a group of geeks and neither does she even remotely fathom
why you’d be famous for that stuff in the first place. I mean – get
real here.
So once you get your degree from school, what’s the plan?
Right now, your university education is free like in many places in Europe and
you have plenty of time to work on your degree without too much financial
pressure. Over here in Germany things are a bit extreme in that it is not
uncommon that folks spend 6, 8 or even 10 years (!) in school until they
finally get their masters degree. So you may not have to think about this much
now and you probably don’t. But let’s talk about it anyways.
When you leave school, your parents will – honestly – be keen to
get you out of their house. They’ve spent 25 years of their life being
parents and now that they are in their early 50s, they want to enjoy their life
and I am sure that your dad is keen to play with grandchildren – but just
every once in a while. So you’ll have to take care of yourself.
How so? Well, you need to get a job that pays. And you’ll probably
want to have your own car, your own apartment and if you really want to have a
family you will have to be able to support it. All of that only works with
money. Where does it come from? If you believe that the result of your own work
must be free for everyone – who’s going to pay for it?
No – in the end you are going to settle for a job that pays for
your house, your car and your wife and children. You’ll be a developer
and, eventually, architect or project manager who produces software for money.
That’s your core skill and that’s what you invested 6 years and
more of your life into. That money will either come from some internal budget
of the company that you work for as a “corporate developer” or it
will come from the clients that license the software that your company
produces. In the end, there’s got to be money in your pocket. I know
that’s not very romantic and has very little to do with the “free
software is love” sort of thing, but it’s inevitable. Romantic is
what you can get out of that money and that’s a decent life with a house,
a car and a family.
Yes, I know the argument. Software is supposed to be free and the money is
made out of supporting it. Look around you. Read some industry magazines. Who
exactly is making money out of “free”? IBM does, HP does and the
large consulting companies do. They rake in the big bucks. But do they make the
money on open-source software? No, they make that money on outsourcing deals,
running data centers and selling hardware. That’s not the side of the IT
business that is at all concerned about creating software that you want to be
in. That is the side of the IT business that runs software.
Where money is made from creating software, software isn’t free.
Either the software is paid for directly or it is cross-subsidized from budgets
elsewhere in a company that also sells hardware or consulting services.
The whole thing about “free software” is a lie. It’s a
dream created and made popular by people who have a keen interest in having
cheap software so that they can drive down their own cost and profit more or by
people who can easily demand it, because they make their money out of speaking
at conferences or write books about how nice it is to have free software. At
the bottom of the food chain are people like you, who are easily fooled by the
“let’s make the world a better place” rhetoric and who are so
enthusiastic about technology that writing open-source – or any source
for that matter – is the absolutely best imaginable way to spend their
time. It doesn’t matter whether you love what you are doing and consider
this the hobby you want to spend 110% of your time on: It’s exploitation
by companies who are not at all interested in creating stuff. They want to use
your stuff for free. That’s why they trick you into doing it.
And I sure understand the whole altruistic aspect of this and the idea of
helping people to have better lives through free software. There’s a
saying that goes: “If you are 20 and you aren’t a communist you
have no heart.”, but it continues “if you are 30 and you still are
a communist, you lack rationality”.
In the end, Aiden, it’s your choice. Do you want to have a car, a
house and a family when you are 30? Do you love being a software engineer at
the same time? If so, you literally need to get a life. Forget the dream about
stuff being free and stop advocating it. It’s idiocy. It’s bigotry.
If you want to put your skills to work and you need to support a family, your
work and work results can’t be free. Software is the immediate result and
the manifestation of what your learned and what you know. How much is that
worth? Nothing? Think again.
With best wishes for your future
Clemens
If Sun were actually to open-source (that's a verb now, is it?) Java as IBM demands, IBM would finally own it. They've got more resources and they'd throw them at the problem, easily taking away the leadership in the Java space. Sun would just be sitting there, watching in disbelief what happens to what used to be their stuff. That's really what IBM wants and I am amazed how clever they are about it.
So, let's assume Sun would fall for it. Then there would be a core Java environment that's open-source and the J2EE (the stuff that really matters) implementations would still be closed? How much would that be worth? So the next logical call is to say "let's open up all those J2EE app servers and related infrastructures, too." And there we have IBM making WebSphere a freebie they throw into projects (isn't that done, anyways?) and killing off most of the software revenue models of their competition while happily buzzing along with their huge global services operation and their server hardware business.
Of course that's just an evil conspiracy theory.
Of course, there is really no unanimously agreed-upon definition of what’s absolutely fundamental to SOA – or even what SOA really is. But I think there are four things that most people agree on and I think I there’s even a fifth:
To me, the first four core principles are:
· Explicitness of boundaries [read: there’s stuff that is explicitly public and the rest isn’t], · Data exchange governed by an implementation independent message contract, · Compatibility of behaviors through negotiation of capabilities based on policies and · Service autonomy.
Number five is:
· Locating and binding to a remote service is always indirect [read: the most important design pattern is the factory pattern]
I hear that there's quite a bit of amusement among the more senior Microsoft folks (and people like me) that there’s a lot of "reinventing COM" going on. It’s not that there’s a push into that direction. It just seems to happen. All of a sudden folks are playing with (differently named) variants of monikers, class factories and all those things. Say what you will, the IClassFactory indirection is great thing to have – one place to find a service, one place to configure a proxy, one place to sneak in a mapper/wrapper that makes the actual service you talk to look like another service.
(Note that I don’t mention SOAP here. Must a service use SOAP? How about services that fall back to something without angle brackets because their respective policies indicate that they can?)
|