what exactly you are trying to do? if we know the problem domain, we may be able to give more focused comparison, but in general:
1) juju 's primary domain model is a service, not a server. Chef on the other hand is a configuration management tool, where a node or physical/virtual server is primary domain model. chef dont have service as a first class domain model.
2) juju is also an orchestration engine. i.e you'll be able to specify what cross server order of operations. this is not possible with chef. chef allows you to search for other servers but the order of chef-run (and the command invocations inside them) is not enforced or provided by chef. you do it externally
3) juju is written in python (afaik) and people extend juju using charms, which is bunch of yaml (config etc) and scripts (mostly bash, but can be python or anything else as well), while chef uses recipes/cookbooks as extension mechanism. chef recipe/cookbooks are pure ruby. Its a matter of in house expertise and programming taste which one you would prefer (i'll not prefer bash for anything that involves lot of coding).
4) you can use juju to orchestrate chef-runs. that way you can get simplify charms (attaining idempotency at lower level, keeping the ability to reuse chef artifacts outside juju, where orchestration might not be necessary, e.g spinning up developer boxes) , while leveraging juju's orchestration capabilities, fancy UI to do drag and drop way of building environment etc.
there are lot other differences (like juju is mostly used with ubuntu, while chef is popular across distributions/platforms etc, difference in communities, difference in available extensions [cookbooks.opscode.com
] their quality and volume etc), but these were main ones i can think of