modern c has relevant types (compiler will start crying if you have unused variables), no pointers (everybody will start crying if you use pointers), eight kinds of preprocessor directives (all of which are entirely unnecessary if you know how programs are written), a whole cross-platform, cross-epoch virtual machine (in spirit anyway).
meanwhile, a minimalist language like java understands its limitations and frees the developer up to just write some fucking code.