Here's my take on this:
- Both Mixcoin and CoinJoin work just fine with existing Bitcoin, no need for an altcoin or Bitcoin modification
- DarkWallet is already an implementation of CoinJoin, so you may just want to start there
- CoinJoin relies on some kind of matchmaking service, at least in the form of a public message board or chatroom. As far as I can tell, the DarkWallet implementation for now uses a central chat lobby for this purpose (or perhaps there are multiple lobbies, but you're only mixing with whoever is in that lobby) and does 2-person CoinJoins. I don't know any really great alternative to this kind of matchmaking that also prevents denial of service or sybils. Blockchain.info also implements a CoinJoin, they themselves act as the matchmaker.
- In Mixcoin, the implementation challenge is to build a mixing server, and a mixing client. The mix server can be fairly simple, needs a small amount of crypto (just ordinary signatures). The client is more complicated, as it needs to a) keep track of and interact with multiple mix servers b) monitor the blockchain (or some other channel) for fraud alerts about mixes c) schedule mix interactions automatically in the background.
So actually some of what remains to be implemented (like interacting with multiple servers) is the same for both Mixcoin and Coinjoin.