(Not logged on) | Register | Log On

You can subscribe to this discussion group using an RSS feed reader. The Joel on Software Discussion Group

A place to discuss Joel on Software

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Mercurial vs Joel's 5 Worlds

It's great that Fogbugz plans to add version control support and that's probably the best thing for 4 of 5 of Joel's 5 worlds

http://www.joelonsoftware.com/articles/FiveWorlds.html

But Mercurial sucks for the last one, games. We need to manage terabytes of binary data. Our teams are less than 25% software engineers. Instead our teams are full of artists making terabytes of assets.

In order not to step on each other toes the artists actually need a version control system that LOCKS the files when one artist is editing because changes can not be merged so, unlike a software engineer, an artist needs to know that no one else is working on the same file.

Here's hoping fogbugz can be made to support perforce (fast) and/or subversion (cheap), both of which support both an edit/merge/commit model (good for software) AND a lock/edit/submit model (good for assets)  vs mercurial which only supports the format because of its distributed nature.
Gregg Tavares Send private email
Monday, November 02, 2009
 
 
When talking about games, the main differentiator that he came up with was the Quality requirements of embedded software combined with the hit vs failure business model.  I'd argue that Shrinkwrap and Embedded have the same economics issues. That kind of leaves Games out in the cold. 

I would say there is a legitimate 5th world there, but not for the same reasons.  Instead, I'll call this world "Epic" software: projects so large that thousands of people are potentially working on them.  Large, mass market 3D games still fall into this category.  But now so do things like operating systems and database engines.  Some common factors they share is a mix of very high-level (user interface) programming, very low level (performance critical, written in assembler) programming, and support work (more graphic design, armies of testers, projects managers, etc). 

I bring this up because I think in this case you can separate out the graphic designers into the 'support' role.  I'll use that term loosely, because you could just as well say the programmers support the graphic design team. The important thing is that you don't necessarily want them using the same tools the programmers do.  And even if you do, you could also argue that they still fall outside of FogCreek's core mission.
Joel Coehoorn Send private email
Tuesday, November 03, 2009
 
 
I would argue that one of the worlds that Joel mentions - throwaway - is naturally not something that benefits a lot from version control or bug-tracking or any of that. For example, if I write on the command line a small regexp search command to search among files of different types. For example this command: (taken out of my Bash history)

<<<<<<
grep -i closed-books FreeNode-*
>>>>>>

This short grep command will take much more time and be much more verbose in ANSI C. But I'm not even going to put it in a file, because typing it on the command line directly will be faster for me. There are even shorter commands in my arsenal : "ls", "cd $this", etc. - all of them throwaway.

Nevertheless, throwaway code is very important - it's hard for me to estimate how much throwaway code is written every day, but it's probably a very significant volume. It's like a large amount of the speech in the world is stuff like "Hi!", "Good morning.", "Do you want tea?" or "I'll have the cheeseburger." which is throwaway and never recorded. I think part of the reason many languages and technologies languish is because they have not been made suitable for throwaway code, and other "quick and dirty hacks". For reference, see:

* http://www.perl.com/pub/a/2007/12/06/soto-11.html

* http://www.paulgraham.com/popular.html (see "5 Throwaway" there).

I should note that I once had plans of creating a very enhanced version of GNU readline called "eatline" with many nice philosophical enhancements including a pluggable database backend. I was demotivated a little after I discovered that there was already NetBSD's "editline" which was under a BSD-style licence and also an X11L replacement (though its scope was much smaller than eatline's scope)

Moreover, I recently started using version control for my shell's history file
(Subversion in my case) but that was as part of a cron script that backs it up because it sometimes gets truncated from some reason.

Regards,

-- Shlomi Fish
Shlomi Fish Send private email
Sunday, November 08, 2009
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz