The answer is indeed 'evolution'. Here a brief summary:
- Donald Knuth initially developed TeX starting around 1977, because he was unhappy about how his books looked like.
- By that time, the document formats PS and PDF were not existent, just DVI
- DVI was developed from 1979 onwards
- PS was developed from 1984 onwards
- PDF was developed from 1993 onwards
- LaTeX development started 1980 (Laslie Lamport)
- First way to obtain a document from .tex files was:
latex doc.tex obtaining a DVI
- Later on, after PS was developed, you could then type
dvips doc.dvi to obtain a PS
- All three document formats share similar goals. Though, their implementation is different. Not all features in one document format can be represented in the format of another.
- Since 2000, we have pdftex/pdflatex to create a PDF directly from a .tex file
For that simple fact (different file formats), the features and graphics that can be included differ. For instance:
- DVI/PS can only make use of (E)PS graphics
- PDF can basically make us of any other file format than (E)PS, for instance: PDF, JPG, PNG, ...
PDF allows many new features that cannot be implemented using PS. In contrast to that, there are many LaTeX-packages that make heavy use of PS features, e.g.,
Depending on your requirements, you have to choose one or the other file format. In case you must use
pstricks, the only (clean) way to do so is to use latex/dvips. In any other case I would probably recommend pdflatex to typeset the document.
'Recently', the development of pdflatex successors started, primarily to overcome architectural limitations of the 'old' pdflatex way to do some things. Most notably:
In contrast to that, ConTeXt is 'only' a macro-package (like LaTeX compared to TeX). It is not a typesetting engine like pdftex, luatex or xetex. There is an excellent posting explaining the details right here: Differences between LuaTeX, ConTeXt and XeTeX
Sadly, all of this contributes to the difficulties some have in interpreting their error logs.
Finally, to answer the last part of your question concerning bibtex: I would argue, that the preparation of a useful bibliography is not the task of the typesetting system. Therefore an extra program is required to process a 'data base' (the bib file) and output the necessary information that can be used by the typesetting engine itself (e.g., pdftex).
Of course, an all-in-one solution may be preferred but this is probably owed to the evolutionary process of (La)TeX, too.