The 4.x are more current - functionally mostly the same as 3.x but fixed a number of flaws in 3.x
the API and behaviour is so similar that most code can move from 3 to 4 with little to no changes.
The package naming can be interesting -- because it doesn't correspond to internal version.
- The soname for 3.x has 4, the soname for 4.x has a 5,
- so e.g. in debian/ubuntu, tiff 3 is package libtiff4, tiff 4 is in package libtif5.