Pascal was comparably clean, but Delphi library is quite messy. SysUtils is about local time, exceptions, floating number formatting and OS error handling. SyncObjs are about synchronization which is very good. But TThread resides in Classes, together with streams, serialization, base components, lists and other containers. Rapidly created form controllers are implementation of god object anti-pattern.
> And calling win API was a horror
This is not easy matter in any language. And I called Android API from Delphi. Still quite an adventure