The Linux community is filled with friction and diversity. One of the advantages of open source software is the diversity that leads to innovative approaches to improve the computing environment.
But can the diversity go too far? Is it a defining characteristic that kills programming creativity?
The news cycle surrounding open source technology is fed by ongoing arguments about PulseAudio versus ALSA Sound in one Linux distro or another. Hotly debated discussions ensue about the merits of Systemd replacing init. Some disputes lead to key developers forking a project. Others force particular project developers or contributors to quit.
“I don’t think you can have too much diversity of opinion. It only makes the product better. Having more people explaining what they need and what something should do always leads to good conversation. In a monoculture of people always in agreement, yes things can move quickly, but what if they are moving in the wrong direction?” Todd Ross Nienkerk, Managing partner at Web design and development firm Four Kitchens, told LinuxInsider.
Coding Slugfest
Some open source contributors caught in the fray of diversity may not welcome the idea of never having too much diversity of opinion. Take, for example, an experience within the Nools community.
C2FO open sourced Nools, which is a JavaScript rules engine that runs on Node.js. Node.js is the open source JavaScript engine.
The Node.js community recently lost its longtime project leader Isaac Schuleter, who worked for Joyent, the company that sponsors and maintains Node.js’s development. He is creating his own Node.js-related product under a company he started called NPM Inc. C2FO has no connection to Joyent.
“We have seen that a lot in the JavaScript community with dissension over the way syntax is done. You see a lot of this in the Github community where there are flame wars over which way is better to do something,” Doug Martin, Principal Engineer at C2FO, told LinuxInsider.
Dissension causes a lot of stress in the community. In the end people look at the coding skills as an art. That can deter people from trying to contribute to your product, he explained.
“There can be fear that a contribution can be rejected over something as silly as a syntax. There can be too much emphases over a discussion on something that was trivial to begin with,” he said.
Hardened Creativity
That kind of community infighting has no effect on creativity. But it might damage the users’ perceptions, noted John Christopher, C2FO’s Vice President of Engineering.
“I can certainly see companies not wanting to invest in an open source project if there is strife in that project. There is always risk of starting to work on something, and there is not a good path laid out on where the project is going,” he told LinuxInsider.
Christopher acknowledged the dissension the community is currently experiencing. He said the threat of a fork is looming nearby. He attributed the rift to certain aspects of the community being driven by a corporate entity.
“I don’t think that the rift has taken away from our creativity at all. But it does make you wonder from a rift situation do I need to start looking for another platform. At the same time, if you have the technical capabilities, it gives you the motivation to get more involved in the direction that the community is going,” he said.
No Pain, No Gain
Dissension is a critical part of being part of any community. Open source is a collaboration between people and companies contributing, offered C2FO’s Martin.
“Maintainers have only the best interests of the project in mind. When comments are made critical about somebody’s code contributed to a project, it can be taken as a personal attack. That should be left out of the community,” said Martin.
Contributors need to set aside their personal beliefs in order to advance the project and get new features included. Otherwise, personal views can cause issues, he added.
Wanted: Clearly Focused Manager
“Open source communities are filled with very passionate people. The friction that flares up is healthy for stimulating creativity,” Itamar Haber, Chief Developers Advocate for Redis Labs, told LinuxInsider.
Sometimes the only solution for those who feel discontent is to pull away and go in their own direction. Popular and useful projects tend to survive bouts of diversity within communities, he noted.
“I have not seen many situations where friction has stifled creativity within a project,” Haber said.
The primary goal of any open source community leader is to keep the focus on what is best for the development of the project. That process often becomes a balancing act between diversity and creativity.
The situation in some ways is the same for management circles within a corporate setting. But open source projects have a different element in that at the end of the day the focus is always on the technology, he agreed.
Forking to the Rescue
Diversity versus creativity is always a hotly debated topic, according to Imad Sousou, Intel’s Vice President of Software and Services Group and general manager of the Intel Open Source Technology Center. It falls under the umbrella of forking.
“Forking is a good thing for open source. It is not a detriment,” Sousou told LinuxInsider.
To the outside view forking is typically seen in a negative way. It is much like a group of developers taking their marbles out of the game to do their own thing, he explained.
But to the inside view the vast majority of core developers see forking in a very positive light. The open source definition has embedded in it what Sousou calls the right or freedom to fork.
“This is a very important part of the open source process. Forking is what makes open source work in a lot of places,” he said.
Examples Abound
When you look at Linux, forking the kernel is an integral part of the development process. The key thing to understand is the need to fork something to do a specific thing to benefit a project.
“The key item is that you merge them back,” said Sousou.
Forking is what distributors do. For example, Red Hat maintains a kernel fork. Ubuntu maintains a kernel fork. All these companies maintain a fork and attach it to the kernel. Over time they merge back, he explained.
“You could call this the unforced or friendly fork. This is embedded in the entire open source development process. That is how innovation actually happens in Linux. It is why Linux is so friendly,” Sousou said.
Forceful Forking
Without the process of forking, it would be very difficult to maintain open source products. This is especially true for forks over which people disagree, such as some of the mobile forks.
“Some of these code changes were hotly contested. They were effectively forks. But the process itself was something that we in the Linux community strongly support,” said Sousou.
For instance, you can find many examples of different types of forks where people get upset. There are small forks resulting from projects that just started going in the wrong direction. Or forks where projects are horribly managed, he noted.
“The forks that happen in more contentious ways generally die off or are maintained out of sheer determination but have very little following. Bad forks tend to die out,” Sousou said.
Stabbing At Success
Usually forks happen for some fundamental and good reason, according to Sousou. Typically they are not hostile. They just go against the will of the project leaders. Generally, it is healthy for the community.
“It is what drives innovation. It is what allows Linux to be so widely successful. This is true in not just Linux. It is found across the board in many open source projects. It is a very integral part of open source itself,” he said.
What typically happens is a significant number of thought leaders in that specific project just give up. An example of that is that is the forking of xfree to x.org or WebKit to Blink.
“The LibreOffice fork from OpenOffice is more complicated. It remains to be seen what happens. But so far that fork is actually pretty successful,” Sousou said.
Means to an End
People leaving the open-source community does not mean there is a problem, according to Nienkerk. It is not tantamount to giving open source a bad name.
For example in the Drupal community, people leaving the community tends to be a reflection of change and growth. Just as people tend to leave jobs or volunteer positions when they sense significant changes setting in.
“People don’t agree with the direction the community is heading, or they think the reason they first got involved has fundamentally changed so they no longer fit into the organization, or some people simply get burnt out,” said Nienkerk.
Most people do not realize how important the forks are to innovation and diversity, according to Sousou. In fact, open source communities often develop certain tools to do things. This actually makes it easy for others to fork the project.
“Many people do not understand the extent to which this is healthy for open source,” said Sousou. “I have yet to see a fork that creates long-term damage that would not have been done without that fork. Sometimes, proposing a fork to end a conflict works out okay.”
Stacking Up Options
Creativity may be a quality for software that lives higher up the stack. The end goal is serving business needs with software, according to Sean Allen, Director of Product Marketing at OutSystems.
“That goal is advancing competitive stance, creating apps that matter; doing work that impacts the bottom line,” Allen told LinuxInsider.
Slice the technology stack up into stratum/layers. Where open source lives is generally at a lower level, he noted. This is the realm of open source operating systems, programming languages, programming tools, build tools and promotion tools.
“It is tough to be creative when you are spending all your time weaving that mess into something remotely cohesive. That entire layer is low value when compared to the actual end goal: an unfortunate means to an end for those that don’t know about the new normal,” Allen said.
Blocking Up Creativity
If you look at the actual reason why enterprise developers do what they do, you realize that stuff happening at this layer is a blocker, not an enabler, noted Allen. So if you use abstraction to create stability and efficiency, and if you increase creativity without losing capability, you win.
Why should you care about the churn that is occurring at this layer? What value does that bring to you?
Programmers might better spend their energy focusing their considerable talents on solving the actual problem, he suggested.