Using AEM, you can develop front-end components using scripting languages like JS, HTML and HTL. Many teams are split between front-end developers that use script and back end Java developers that write OSGi bundles. Using Java, you can do alot of tasks - but there is still front end developers who write front end components. Basically main users of AEM are:
1 - Front end developers whom write front end script, CSS, etc
2 - Backend Java developers
3 - Authors whom write content using components in a page
4- Admins who perform admin related tasks like setup AEM, Dispatcher, etc