For those who aren't familiar with DotGNU, can you give an brief
description of what it does and its role in the GNU Project?
DotGNU coordinates the GNU efforts in the areas of webservices and
development tools for C# programs. We call this a "meta-project",
it's like an umbrella for several GNU projects.
You're one of the founders of DotGNU and member of the steering
committee, can you tell us a little about the how the project came
I'd describe it as three streams which decided to flow together and
form a river.
For DotGNU, the most important of these streams is the efforts of
Rhys Weatherley in Australia, an expert in the area of compiler
development who wanted to do a Free Software project. He took on the
challenge of .NET and C# because back then, no-one else was working on
a Free Software compiler for C#. The first public pre-alpha release
of Portable.NET was announced on Freshmeat on March 13, 2001.
A second stream was started independently by another Australian
programmer, Enzo-Adrian Reyes, who in May 2001 proposed a "DotGNU"
project on a mailing list for Free Software developers where I was
also subscribed. Some people expressed concerns that we need to be
careful to avoid unintentionally furthering Microsoft's monopolistic
goals. The resulting discussion made me realise this DotGNU project
is an important step in my long-term quest to create a viable
ecosystem of Free Software businesses, and for this reason I was
motivated to put a lot of energy into shaping the strategic vision
With the third stream I mean the phpGroupWare project and Dan
Kuykendall's vision of adding webservices functionality to it,
so that it is not only a suite of "web applications" that people
use by means of a browser, but it is also developing into a suite of
"webservice components", programs that can communicate via standard
webservice protocols such as XML-RPC, so that components of
phpGroupWare can easily be hooked together with other programs of
any kind, which may be implemented in a different programming language,
and which may run on any computer, on any operating system, anywhere.
What is the current status of the project? What areas are the
focus of development at the moment?
Currently we have three development projects in DotGNU that have
released code which others are downloading and putting to commercial
production use; these are:
* Portable.NET, which builds a highly portable runtime environment
for IL, the "Intermediate Language" of .NET, as well as libraries
and the cscc compiler suite which can translate multiple
programming languages, including C# and C, to IL. The aim of
DotGNU Portable.NET is to make it easy to develop ".NET
applications" so that they won't run only on Microsoft platforms
but really everywhere. Major goals for this year include making
significant further progress in the area of System.Windows.Forms
(so that it becomes really attractive to developers who today
create applications that can be used on Microsoft platforms only)
and significant performance improvements through the introduction
of a full JIT (Just-In-Time compiler) into the runtime system.
* DGEE, the "DotGNU Execution Environment" is our webservice server.
In its basic form, it allows the installation and removal of web
services within a repository, accepts XML-RPC requests for these
web services, and generates browsable documentation for these web
services in HTML and XML form. A major part of DGEE is the highly
scalable distributed middleware called "Goldwater".
* phpGroupWare, a groupware suite implemented in PHP, is designed
with the webservices philosophy in mind. The big idea here is
that webservice protocols such as XML-RPC make it easy to
integrate any kind of program with the groupware suite.
Further development projects will be added to this list over time, for
example there is a project to create a peer-to-peer service discovery
and marketing system, which is still in the research and design phase.
(It has turned out that this requires some serious research into
the economics of peer-to-peer systems).
Are you paid to work on DotGNU? If not, what other work do you do?
No, I don't get paid for DotGNU work. I do some consulting work on
matters related to mailservers, e-mail mailing lists, and the use of
webservice protocols for system integration purposes. I'm also looking
into starting a coaching and investments
company that will provide business know-how and (where needed)
also capital, specifically to Free Software businesses. Besides that,
I'm working on a Ph. D. thesis in mathematics, and recently I've
started to look into economics as well. You may be interested in my
paper "Market Economics of Peer-to-Peer Networks and of the Software
Industry", see http://norbert.ch/p2p.pdf .
What was your background before working on DotGNU?
A pretty diverse background touching many areas, the main ones being
christianity (the Bible-reading type :-), mathematics (with a focus on
partial differential equations), computer consulting (with a focus on
mailservers and programming in Perl and Python) and business coaching.
How did you become active in free software?
I've been using some Free Software such as GNU Emacs and LaTeX for
a long time, but what made me really think about matters of Free
Software philosophy was Microsoft's "Hailstorm" / "Passport" plan
which would, had it been successful, have undermined something that
I consider to be a key computer-related freedom right, namely the
right to privacy about what you do on your own PC: If computer
programs connect (via an untrusted network) to a central database
(which probably isn't totally trustworthy with respect to privacy
concerns) in order to verify that the user has the right to execute
a program, or in order to access some of the user's data, then that
means that anyone who is able to snoop on this process can gather a
lot of information of the "who does what at what time" type, that
would be a very serious breach of privacy. The next evil dictator,
regardless of whether it's the "Antichrist" described in Biblical
prophecy or someone like Saddam Hussein, could use this kind of
information to find out who are the "dangerous" people who have
learned to think independently and who hence cannot be manipulated
I decided that I don't want to simply bet that Microsoft's privacy-
violating plans won't work out, because there are very serious business
interests behind them, and Microsoft has the resources and the
stubbornness to try again and again until they manage to come up with
a plan that works for them.
So I thought about what can be done against this type of threat in
general, and I came to the conclusion that widespread use of Free
Software, and a viable ecosystem of Free Software businesses, is
the best defense. This convinced me that Free Software is truly a
matter of freedom for all computer users (and not only for hobby
programmers and for small businesses), and it led me to think about
what is the proper philosophical basis for telling people that they
should use Free Software and also contribute in some way.
What's your opinion of the "Liberty Alliance"?
It's the kind of industry organisation that corporations will start
when they are concerned about what would happen to their business
if Microsoft should succeed in achieving an effective monopoly on
federated identity services. Back in 2001 there were quite a few
people in the IT industry who were concerned about a possible loss
of economic freedom through becoming economically dependent on
Microsoft's "Passport" portal, and I think that it's very likely that
this kind of concern inspired the name of the "Liberty Alliance"
(which was founded in September 2001). Today this isn't a serious
concern anymore, and I think that the "Liberty Alliance" has
contributed to this positive change. For this reason I think that
it's good that the "Liberty Alliance" exists, even though they talk
about "liberty" without being genuinely concerned about personal
What do you think the proper philosophical basis for free software?
I actually think that there are two viable foundations for thinking
about software ethics, and they both lead to the same conclusions
that Free Software is good and that withholding the source code of a
program from its users is morally wrong.
One possible starting point is to consider it a commandment of God
to live a holy life and to love your neighbor as yourself. If you
accept these commandments as foundational principles of ethics,
you can use them to decide whether something that you consider doing
would be morally good or morally bad. For example, for a software
company it is morally bad to adopt a business strategy that requires
the company to withhold the source code of a computer program from its
users, because that strategy is bad for the program's users without
significantly increasing the company's probability of success (in the
sense of having a sustainable and profitable business) over
what is possible with a Free Software company. It wasn't always
like this, but I am firmly convinced that when someone starts a software
company today, the probability of success is far greater for a Free
Software company than for a company with a proprietary software strategy.
This is because it is becoming very difficult to economically justify
investments into proprietary software development in view of the
competition from so much excellent Free Software. Of course there are
people who would rather define success as "becoming really rich"
rather than merely having a sustainable and profitable business;
however living a holy life implies that such a desire to become rich
must not be considered when deciding questions of ethics.
The other possible starting point is that every human has some deep,
very personal convictions about what kinds of actions are morally good
and what is morally bad. These convictions of the conscience differ
somewhat from person to person, but there are some fundamental ethical
convictions that at least emotionally, almost everyone will agree
with. You can talk with many people about what they feel is good and
bad in order to learn what these almost universally supported ethical
convictions are, and I believe that almost everyone will agree that
there is a category of situations in which it is morally wrong not to
help your neighbor. Now the conscience is a matter of intuition, and
people are only able to answer a small part of all possible questions
from intuition. Most people haven't made the kind of experiences
that led Richard Stallman to form a strong intuition about software
ethics. However it is possible to formulate a statement of moral
principle which applies to the fundamental question of software ethics
while still being intuitively true. I'm thinking of a statement like
"it is morally wrong to take actions which result in many people
having less freedom, when the only motivation for taking these actions
is to increase one's own chance of becoming very rich".
When in 1991 I first read the information about the GNU project that
came with Emacs (recent versions come with a different text), the
arguments about the ethical imperative for Free Software didn't
convince me. Back then, at least for most types of computer programs,
commercial Free Software development was not yet a viable business
proposition, and hence the arguments which I have just presented were
not yet available. At that time the only way to convince people of
the fundamental principles of Free Software philosophy was to appeal
to intuition, and that didn't work with me, because my intuition
screamed "don't get caught up into an ideological political movement".
However today I think that the fundamental question of software ethics
it is very clear-cut, and I expect that everyone who considers the
issues carefully should come to the same major conclusions.
How do you view the Open Source Initiative, which regards ethical
issues as baggage, and discourages people from talking about them?
Well, according to their FAQ on the OpenSource.org website, "The Open
Source Initiative is a marketing program for free software." The
people who started this have observed that the ethical issues always
got in the way when they tried to "sell" Free Software to big,
well-established businesses. It is not difficult to understand why
this was the case. If you try to try to "sell" them a package which
contains both the challenge of being one of the first companies to
adopt a business strategy in which Free Software plays a significant
role, and the challenge of changing the corporation's value system,
it is not reasonable to expect any corporation to accept that. For
this reason, I think that it was quite reasonable of the folks behind
the Open Source Initiative to put just the pragmatic aspects of Free
Software into a package, which they call "open source". They're
pretty successful in selling this to big companies, and there are also
some pretty significant development contributions coming back to the
Free Software community from those big companies. I think that's great.
The next major challenge is to sell them also on the ethical aspects of
the Free Software movement. I believe that now is a good time to
create a separate "marketing program" for convincing companies to
update their value system so that proper attention is given to matters
of ethics. This is important also for my goal of helping to create a
viable ecosystem of Free Software businesses.
What is your vision for free software movement in the next five
I'd say that a vision is not something that you formulate for a short
time frame like five years. A vision is something big that motivates
you to go forward no matter how long it may take to get there. The
vision of the Free Software movement is a future where software always
comes with the important freedom rights to use the program for any
purpose, to read the source code, to modify it, and to redistribute
the program in original or modified form. I think that it's probably
only a matter of a few more years until GNU/Linux becomes the market
leader in the area of desktop operating systems, however it will take
much longer, perhaps twenty years, until the market for proprietary
software disappears completely. But one day you will have to go to a
museum if you want to show your children or grandchildren one of those
old PCs which came with a lot of proprietary software.