If you are developing code for someone else then you should choose the tools that are known by the majority of the coders or technical staff so that the code can be maintained and supported after you are gone.
<Joke>
Now why would you ever do that? It's much better to ensure that the written contract declares that any maintaining done by you will cost extra (ie: not included in the project price itself). You then code the project using methods that could only ever make sense to yourself. Presto, you will now be called in for all required maintenance and some extra money in your pocket!
</Joke>