The 15 year contracts in the NHL are just a way of skirting the salary cap. Contracts in the NFL are not guaranteed, especially on the backend of them so the length there can also be misleading. A top baseball player under age 30 will generally get a contract in the 6-10 year range. Baseball is the only one of the four without some kind of cap.