%!TEX root = UserGuide.tex

MCMC is a surprisingly difficult and bug-prone algorithm to implement by hand. We find PyMC makes it much easier and less stressful. PyMC also makes our work more dynamic; getting hand-coded MCMC's working used to be so much work that we were reluctant to change anything, but with PyMC changing models is a breeze. We hope it does the same for you!

% \hypertarget{whatsnext}{}
% \section{What's next?} % (fold)
% \pdfbookmark[1]{What's next?}{whatsnext}
% 
% A partial list of the features we would like to include in future releases follows. Three stars means that only debugging and checking is needed, so the feature is likely to be available in release 2.1; two stars means that there are no conceptual hurdles to be overcome but there's a lot of work left to do; and one star means only experimental development has been done.
% \begin{itemize}
%    \item (***) Gibbs step methods to handle conjugate and nearly-conjugate submodels,
%    \item (***) Handling all-normal submodels with sparse linear algebra \citep{normalsubmodel}. This will help PyMC handle Markov random fields and time-series models based on the `dynamic linear model' \citep{westharrison} (among others) more efficiently, in some cases fitting them in closed form,
%    \item (**) Generic Monte Carlo EM and SEM algorithms,
%    \item (**) Parallelizing single chains with a thread pool,
%    \item (**) Terse syntax inspired by \cite{fbc} for creating variables: \code{C=A*B} should return a deterministic object if $A$ and/or $B$ is a PyMC variable,
%    \item (**) Distributing multiple chains across multiple processes,
%    \item (*) Parsers for model-definition syntax from R and WinBugs,
%    \item (*) Dirichlet processes and other stick-breaking processes \citep{stickbreak}.
% \end{itemize}
% These features will make their way into future releases as (and if) we are able to finish them and make them reliable.

\section{How to get involved} % (fold)

We welcome new contributors at all levels. If you would like to contribute new code, improve documentation, share your results or provide ideas for new features, please introduce yourself on our \href{pymc@googlegroups.com}{mailing list}. Our \href{http://code.google.com/p/pymc/w/list}{wiki page} also hosts a number of tutorials and examples from users that could give you some ideas. We have taken great care to make the code easy to extend, whether by adding new database backends, step methods or entirely new sampling algorithms. Contributing to open source projects is a great experience, so don't hesitate to jump in and become part of pymc !   


