That's actually kind of backwards:
box was the "original" way to create a
Box::new was created later when it became clear that
box syntax needed some work.
Box::new made it into Rust 1.0, and
box syntax has just languished for five years, partly because the cases where
box syntax is really necessary are few and far between. The global allocator API wasn't stabilized until even later, so if you wanted to allocate from the heap on stable before Rust 1.28, you had to use
¹ Well, kind of.
Box<T> replaced a built-in pointer type called
~T, and there was a special operator
~ to create a
~T. When the switch was made,