Windows uses a similar polling-based approach, with a warning that you shouldn't poll for new gamepads every frame for performance reasons:
https://docs.microsoft.com/en-us/windows/win32/xinput/gettin...
In general, "notifying the program when a new device has become available" seems to be a surprisingly difficult problem. I've encountered trouble with multiple device types across multiple platforms.