There is no contest. Catalog views are the winner.
They were introduced in SQL Server 2005 and they, along with Dynamic Management Objects, are the recommended way of accessing SQL Server metadata. However, compatibility views are still available in SQL Server and it is useful to be aware of the differences.
|Compatibility Views||Catalog Views|
|Exist in sys schema||Exist in sys schema|
Prefixed by ‘sys’
For example: select * from sysdatabases
Or: select * from sys.sysdatabases
Both access the same sysdatabases compatibility view
NOT prefixed by ‘sys’
For example: select * from sys.databases