Sunday, December 24, 2006

Mercurial, Git and a sprinkle of ZFS

Looks like there's some activity again on the project porting ZFS to Linux via FUSE. I was starting to get worried that it had been dropped. And there's still a chance Sun will commit to a GPL release of OpenSolaris.

I've been playing around with Mercurial a little, since Sun announced it would be used for OpenJDK (the Java source code). It seems similar to Git in many ways. The Python implementation is nice in terms of cross platform support. But I dislike the need to have a separate repository for each branch. It just seems so unnecessary after Git. The "hg serve" command is kinda nice. No need for a web server and CGI setup.

Despite being a Linux fan, I imagine Git could get a lot more mindshare with a Windows version. It'd be nice if somebody did a second implementation of Git (and maybe Cogito) in Python (or Ruby). You'd think Windows users would want to share in a tool that's this useful.

Thursday, December 14, 2006

System Complexity

A lot has been written about Software Complexity. Usually the author is referring to code complexity, and gives the very sensible guideline of keeping things simple wherever you can.

But more and more projects now involve a multitude of systems, each one of which is extremely complex in its own right. And they're supposed to integrate.

A portal server here, an application server there, database of course, ORM mapper, application framework library, third party security layer, maybe a business rules engine will give us more flexibility, some AJAX libraries to give the UI a bit of sizzle, and SOA architecture. Would you like some Web 2.0 with that?

And at some point you're supposed to be implementing the business logic. What do you mean the first use case doesn't run yet? It'll be how hard to add single field to a screen and have it go out the database? And you have that work around code for all the problems in the vendors products that haven't been fixed yet?

Life can be complex. Really complex. And as we watch people struggle with it it's becoming increasingly clear that complexity is the major limiting factor. And I'm sure that this is not just the case in software.

Imagine you are a top notch (check all that apply):
  • Software developer
  • Brain surgeon
  • Astronaut
  • Fighter pilot
  • Antitrust lawyer
  • Theoretical physicist
  • etc.
Maybe you don't have to imagine. But look at that list and consider what might be the number one thing preventing you from being twice as productive. I'll bet it's complexity.

In many professions a person's ability to deal with complexity is now the major limiting factor.

Note that previous sentence. There are two factors. The complexity, and the ability of humans to deal with it. We need to work on both.

Labels:

Monday, December 11, 2006

Stepping out

Great post here about Saving the World. Yes, sometimes our unwillingness to call a spade a spade causes innocent people needless deaths. Why don't we just stop? At least it would be step #1.