Of all the platforms I've used TWS is hands down the worst. Not because it's objectively bad, but rather because it tries to be absolutely everything to everyone all at once and subsequently is unintuitive on everything. There will be people who have used it for a dozen years and tell you it is great for what they do. That may be true, but more likely its a case of Stockholm Syndrome.
It feels like it was put together by some project manager drawing caricatures of traders on a whiteboard. For example, putting a futures spread in is completely counter-intuitive. Their options chain features are better but still lacking in comparison to competing platforms (TOS for example). It has every feature you need but none of them really improve your workflow. Trading options on TWS was okay in general but left me feeling like its more of a beta TOS than something unique and interesting.
The only thing extremely nice about TWS is the news feeds. If you trade on news or analyst reports those sections are great. If you trade any other way...find a third party platform. Paying for a hair treatment after ripping what's left of it out of your scalp over something not working right is far more expensive than a decent commercial platform. That being said their customer service is very helpful.
As for programming - their API for every language but Python is relatively intuitive but dated. Moreover, it is incredibly frustrating forgetting the little rules for account verification (they are strict, which is good except when you want to run something unattended).The API documentation however is lackluster and it's better to just use their sample code as a guide.
To make this feedback constructive to IB lurkers - I realize these things are hard to change once they're in place but if I had one suggestion adopting technology like protobuf would vastly simplify the time to launch for programmatic trading especially given the system is based entirely on RPC already. Take advantage of the research already done in good platform design from TOS and others and mold it into something of your own. You're a huge company with a ton of a capital and smart developers.