Thursday, May 6, 2010

What do open source folks worry about?

I'm looking at the session lists for two upcoming open source conferences, and I've noticed something: There are few sessions for Java and no -- none at all -- sessons for C or C++. The sessions cover a variety of topics, from Perl and Python to NoSQL databases, from project leadership to legal issues.

But nothing on C or C++.

There are no sessions on C# or .NET technologies, not even the 'mono' project.

This dearth of C sessions might be due to a bias on the part of the conference organizers. They select the presentations for the conference and may have decided to avoid C and C++ topics.

Yet the conference organizers must select courses from a pool of submissions. If no one submits presentations on C or C++, then the organizers cannot select them. Also, the organizers must select sessions that will attract attendees, lest they have a very small conference.

So I conclude that there is little interest in the open source community for C and C++. Or perhaps I should conclude that there is *more* interest in other topics, such as the latest version of Perl and techniques for building communities.

If we accept this conclusion, then we can make some other deductions:

People using open source have little concern for hard-core run-time performance. C and C++ provide programs that run fast. Despite the efforts of Microsoft with C# and .NET, and Sun with Java and its JVM, and even the folks maintaining Perl and Python and Ruby, C and C++ have the capability of creating fast programs.

But that doesn't mean that C and C++ let you create programs quickly. C and C++ offer high performance at run-time, at the price of careful design and construction. Java and C# (combined with their IDEs) let you develop programs faster, although the programs themselves won't run as fast.

The same goes for Perl and Python and Ruby. One can develop programs faster, but the programs will run slower than their C counterparts.

Besides program performance, folks in open source are more interested in languages for individuals. C++, C#, and Java are languages for large teams. The supporting libraries and development tools are built for teams of people. (Especially so for the Microsoft stack.) Languages such as Perl and Ruby are designed for individuals and small teams. The libraries are smaller, the development stacks are smaller and lighter.

Interestingly, I believe cost is not an issue. Perl, Python, and Ruby are available for free. Yet so is Java and its Eclipse IDE. And so are C and C++ in the GCC compiler set. Microsoft offers "Express" versions of Visual Studio for free, so one can use C# at no cost.

So to summarize: people working with open source are not concerned (overly) with run-time performance, nor are they concerned about building large development teams, nor are they concerned with the cost of their tools.

So what are they thinking?


No comments: