We’ve recently refreshed the look and content of our code.enthought.com site, so I thought I’d provide my thoughts about what the site is about and what it means to Enthought (and the world). I’ll apologize in advance for rambling.
For several years Enthought has hosted code.enthought.com as a site for the Open Source tools that we’ve developed and used in our business of custom application development. The collective set of tools is called the Enthought Tool Suite (ETS). The impetus for the site came from some technologies that we believe will change the landscape of scientific computing and which we believe should be software commodities.
What do we mean by Software Commodity?
A commodity is a product that you don’t ship and your competition does Jonathan Schwartz, Sun Microsystems
There are many aspects of traditional commodities that provide nuance to the idea of commodity software, like equilibrium price, interoperability, fungibility, substitution, etc. My working definition for the purpose of Enthought’s mission hearkens to the French commodit, or even better, the Latin commoditas, which both connote convenience, appropriateness, suitability, general usefulness, or common utility. So any piece of software about which you may say “No one should ever have to write another ____” fits into my meaning. Some examples we’ve come up with:
- No one should ever have to write another 2-D visualization library (Chaco)
- No one should ever have to write another 3-D visualization library/general application (Mayavi, thanks to Prabhu’s vision and hard work)
- No one should ever have to write another event model (Traits)
- No one should ever have to write another adapter library (Traits)
- No one should ever have to write another interface library for Python (Traits)
- No one should ever have to write another GUI abstraction layer (TraitsGUI)
- and many more…
So what’s our mechanism for the commoditization of software? In three words, the BSD license. There’s nothing new here. Commodity is an important by-product of Open Source. It’s a beautiful way to compete very aggressively on price (free!) and marshal a community of academic and commercial interests. It doesn’t alienate (most of) the Open Source world and it doesn’t frighten (most of) the commercial world. It provides the most liberal license for an extremely free use of the software while allowing us to protect the aspects of our clients’ business that they view as a competitive advantage (no copyleft). To my thinking, it not only creates commodity, it creates abundance. While there are many benefits to open licensing, the most important to us is the community it creates.
Speaking of Community…
Forming and working on the experiment that we call “Enthought” has been a wild ride. I can’t imagine a more lasting thing I’ll help create (except my kids; and my contribution there was stunningly trivial). We’ve worked with a community of others to create tools that should outlive us all. The truth about open source community interaction, however, is that it’s hard. It’s messy. It’s not immune to politics. It takes work. We’ve been fortunate in that the SciPy, ETS and the other Python communities are made of extraordinarily bright, thoughtful, slightly crazy peopleso tedious squabbles are very rare. Good things happen because a community can rally around a vision of common utility, esteem for contributions is based on the calculus of that utility and, for the most part, everyone’s goals are aligned. It’s a virtuous circle.
Our hope as an organization is that we can help foster this environmentto equip the community without directing it, to contribute without owning, to create common utility. How does this jibe with the following facts?
- Enthought is in business to make money.
- We don’t work for free.
- We are self interested.
- We need to feed those kids somehow.
We founded our company with the quaint, yet earnest, belief that we could do well by doing good. And you know what? It worked. We’ll let others judge the amount of good we’re doing, but we have created a thriving business with a model that leans heavily on using and creating Open Source software.
We fully recognize that there will be folks who are skeptical about what Enthought is aboutthey should be. Any representations we make about our company should be borne out by our actions. We invest heavily in open source software. We do see the benefitsboth in leveraged utility and in the area of marketing our company.
So what does this have to do with the changes at code.enthought.com?
We’re excited about finally committing some resources to spruce up the site and provide some content that’s actually useful. We’ll continue to invest in the tools and in helping the growing community of developers and users. That said, the site is the product of a community effort and we hope that our efforts are just priming the pump.
There are actually two venues of content available for folks interested in these tools. The more-static, more-business-like code.enthought.com site that was recently refurbished, and the constantly-changing, wild party that happens on the trac instance (issue-tracking, wikis, roadmaps, etc.) that supports the community development efforts. These two areas cooperate in what has been eloquently called a mullet strategy by some (business in the front, party in the backthanks to Janet for the reference). The mullet appoach makes a lot of sense for a community site, (and it’s fully neologism compliant: see the pro-am movement, the long tail, crowdsourcing, etc. 😉 ). Cynicism aside, we think it’s a nice way to balance content consistency and relevance.
Both the code.enthought.com site and the trac instance are community sites. If you can get some utility from participating in the community or if you want to pay commodity prices (or less), join us.
There is serious work happening in both professional and academic settings using these tools. The productivity gains afforded are nothing short of astonishing. I encourage anyone who is interested to read the front matter of the site and provide feedback We hope it makes a strong business case for utilizing the tools.
All that said, there are many great ideas that have yet to be implemented. If you’re interested in joining the conversation and getting elbow-deep in code I encourage you to get involved. Come join the party out back.