It's not an anti-pattern. There are no other better alternatives for generic paging purposes where a lot of pages are involved.
The only change necessary in the example is to drop the 2 3 and 88 89, they're entirely unnecessary and add bloat.
< Prev | 1 | 11 13 14 | 90 | Next >
Drop the Prev on the first page. Drop the Next on the last page. Highlight the page you're on in the middle (eg 13) and keep that page in the middle as you cycle. If you're on page one, it goes to the strict left and gets highlighted.
You can optionally use "first" and "last" in it, although that takes up more overall space and detracts from the Prev / Next visually. You can also put a small jump input box with it if there's an unusual, rare reason to need it.
That's it. It's a paging work of beauty superior to all other generic alternatives. The only way you beat that approach is under circumstances of niche demands. For example where a simple "< Prev | Next >" will do (because you have absolutely no need to ever jump) or you have a small fixed number of pages "1 2 3 4 5" and so on.