Joystick API vs evdev API
From Free Knowledge Base- The DUCK Project: information for everyone
evdev (short for 'event device') is a generic input event interface in the Linux kernel and FreeBSD. Input events are available through character devices in the /dev/input/ directory, because In UNIX Everything is a File which also holds true mostly for Linux. Libevdev abstracts the evdev ioctls through type-safe interfaces and provides functions to change the appearance of the device. Although you can use libevdev library instead of using traditional ioctl calls as this library provided simpler higher-level access to the evdev API.