a) Most parts of java.util.Date was deprecated in Java 1.1 in favor of java.util.Calendar because it simply lacked of timezone support.
b) Calendar has much more manipulations than java.util.Date, but for storing and formatting purposes latter one is still the only option. Remember that you cannot directly format a Calendar-object with SimpleDateFormat.
c) On most areas Joda-Time is better, for example immutability. But especially internationalization is better with old Calendar-stuff, for example localized week definition support, for some people this is a showstopper regarding Joda-Time.
d) Keep also in mind that Joda-Time is now rather an old API (for example not using enums). Some internal concepts are effectively deprecated by its own developer in favor of the new date-and-time-library in Java 8 (JSR-310, java-time-package). My prediction, Joda-Time will slowly fade out - also because it is obvious that Stephen Colebourne prefers to invest his resources in Java-8 and an extra external library called Threeten-Extra (which contains some extra calendar systems). Main remaining argument in favor of Joda-Time is still support for mixed date-and-time-periods, some simple interval-support and period formatting support.