BA's decision to offer M&S food for sale on short haul has been controversial, but makes good sense, in my view. If you want to eat, get something you like either at the airport, or on board. The money they save is, presumably, spent on keeping fares competitive. So in the short haul market v Easyjet, Ryanair and the like, BA is a solid player.
But avoid for long haul. Here, the standards have really slipped, especially if you find yourself on one of their 747s, as I recently did. These planes are really filthy and the in-flight entertainment is so decrepit, it's barely watchable. Economy seats are worn and tatty. I've also flown Business a few times in the last year, where you pay a lot of money for a seat experience that has fallen way, way behind the competition. Save hundreds of pounds and Fly long haul with Norwegian if you don't mind going to Gatwick, or spend roughly the same amount and enjoy a far superior experience on Qatar, Emirates etc. Even American and United are better.