What approach to software extensibility pleases beginners and power users the most? Does there need to be separate software for the two groups?