As a non programmer back seat bencher here are things i dont like about linux:
1. for all the community builds there are too many distributions, and ways to do packaging that are incompatible between desktop environments, results in duplication of work and user friction- we need linux standards that match standards for kernel development in user space.