I think 40% keyboards work well for gamers, but are impractical for developers, who need to access all the symbol keys ( (, {, [, etc;), and often need access to the function keys, too. Layering, having to press Fn and another key to achieve what could be a single keypress on a 101-key keyboard, just adds work. The input mechanism must be seamless so that one may focus on the actual work. The keyboard should just disappear. The much-touted keyboard.io has the same limitation.