If I were to name one thing that makes modern programming languages great, I'd pick dynamic memory allocator (often interfaced via malloc/free functions). Imagine yourself keeping track of memory allocations, drowning in seemingly random addresses, and handling the fragmentation manually... Madness to say, at least.