This answer will be largely subjective, as with any opinion-based question :)
It seems a little strange to compare GeoGebra to TikZ.
- GeoGebra is at its most powerful when it is being used as an interactive learning tool. As you may know, creating sliders and such can be an extremely useful way to motivate students and to get a concept across quickly. It certainly can be used as a tool to create graphics within a document, but I would question if it should be used.
- As with any tool that exports to an another format, the export to TikZ is never going to be perfect, and you will likely have to tweak the resultant code.
TikZ allows you to create styles, make global changes to your document, and was designed specifically for latex. There is certainly a learning curve (I'm quite near the beginning of it), but it is almost always good to learn new things :)
PostScript is a complete programming language, and as such is very powerful. To convert PostScript into output, you need an appropriate interpreter: the most common one in use today is GhostScript. The PDF format is related to PostScript, but via the more limited subset provided by the EPS (Encapsulated PostScript) format. As such, PDF viewers do not have the ability to directly render PostScript: it must be converted into the correct PDF directives. (PDFs are not programs in that sense: one of the reasons for the creation of the PDF format is that it is a 'known quantity'. A PostScript document may require arbitrary amounts of complex calculations to display, which may be an issue for some devices and workflows.)
TeX does not include a PostScript interpreter. In the dvips
route to creating a PDF from a .tex
source, TeX writes the PostScript instructions to the .dvi
file as \special
instructions, which are then interpreted by GhostScript in the ps2pdf
step.
The same is true for newer TeX engines: a PostScript interpreter is a large overhead, and integrating directly into say pdfTeX would not therefore be particularly sensible. In direct PDF mode, pdfTeX creates the appropriate PDF instructions for creating 'special effects', while in .dvi
mode it acts in the same way as Knuth's TeX. Some of the issues here are covered in Why doesn't pdfTeX support PStricks directly? and How to use PSTricks in pdfLaTeX?. (Note that XeTeX does take a somewhat hybrid route, which allows PSTricks use with direct PDF production. It's important to note also that XeTeX works via an extended .dvi
format, and so this is in some ways more like dvips
than direct PDF production.)
Turning to PSTricks and TikZ, the differences here are pretty fundamental. PSTricks always uses the same driver back-end, and that back-end is a powerful programming language in its own right. As such, PSTricks can leave a lot of work to the driver level, and also can in principal include an interface for anything that PostScript can do. On the other hand, TikZ is a 'driver independent' system, and as such leaves the driver-dependent code to the lowest 'layer'. TikZ therefore cannot use any special features of PostScript: all of the programming is done in TeX macros, and only the raw 'draw X' instructions are written to the output file.
The fact that TikZ supports multiple drivers also means that there are limitations on what can be implemented. Each driver has a certain range of capabilities, and supporting all drivers is not necessarily easy. (For example, transparencies are difficult with XeTeX due to the way xdvipdfmx
works.) As such, it tends toward a common subset of features which work with most or all of the drivers, rather than having lots of 'this only works with X' comments.
A similar consideration applies to interfaces: PSTricks can rely on the way PostScript handles input, while TikZ has to abstract any features to a generic interface that works for PostScript, PDF and other output formats. (Remember TikZ works to some extend with SVG and so on.)
Best Answer
TikZ is the only full graphics package for TeX I have ever used, so I can't really do a good comparison. However here are some things that I think are worth mentioning:
Some useful programming features, like
\foreach
or an extensible mathematics engine.On the other hand, PSTricks has been around for a longer time. In particular, there are lots of libraries built around it. So if you want to use one of the libraries that doesn't (yet) have a TikZ equivalent, you have to use PSTricks. Also I suppose there is better support on older systems, if updating is not possible.