Personally, I have a Skills & Technologies sections, with different sub-sections:
- Programming Languages *
- Operating Systems
- DataBases
- Frameworks & Technologies (where you dump all the stuff you want)
* including markup / declarative languages, because recruiters think it's the same, and technical people who would hold a grudge wouldn't be people I want to work with if they cannot go past it after an interview.
Depending on the job, I modify it to include other sections and be very extensive like this:
- Operating Systems
- Frameworks / SDKs
- Programming Languages
- CLEs / VMs
- Databases
- App. Servers / Containers
- IDEs / Editors
- Office / Authoring Suites
- Virtualization
Which I would admit is way overkill and laughable, but the job market being the way it is, and recruiters liking tick-boxes, I don't see why I wouldn't hold it against them. If it gets me through a keyword search, then I can send a cleaner and leaner version for the interview. (I actually produce always 3 different versions of my resume because of this, and because of cultural differences in seveal countries: I have a 1-page version, a 3-page version, and a very extensive version.)
But I'd agree with others: don't mix languages and libraries. That would be fine with recruiters, as they often - but not always - don't understand any of this in detail and won't see the line between the categories. But people you interview with will think that goes a bit too far. I'd still give you a call for a phone screening though, but I'd say it might leave a negative impression (for instance, I have to confess that my teeth cringe every time I see "J2EE" or "JEE" under the programming languages section).