Inline-blocks and floats are not hacks as they are, but the way we use them to do layout is quite hacky. I find myself often being forced to do
font-size: 0; with inline-blocks to make them work for layout. Same for floats: you need clearfix to really make them work with you. Some very basic stuff such as “all blocks are the same height” is harder than it needs to be, because inline-blocks and floats were not designed for that.
Flexbox is the first thing we have for doing layout properly. No more hacks with two or more unrelated properties or extra elements just to get some basic layout done.