For MANY years I have standardised on using two PIC chips for my projects using a micro controller.
For small projects I use the 16F628A
and for larger projects which need more I/O or an ADC, I use the 16F887.
Not only that but I program them using assembler.
Some may think that this is a rather blinkered view of the micro controller scene, but it suits me and my requirements.
I have two familiar friendly devices, so for the relatively few projects that I do using PICs, I have an easy choice.
I write my code in a modular form so that function blocks are reusable, for example when I want to control a AD9850 DDS, I just look into my code library and INCLUDE the AD9850 module and CALL the required functions.
Admittedly, this can leave a lot of unused redundant code on some project, but I have never run out of program memory yet.
All my work is hobby related, I don't have to please a paying customer who wants the "latest up to the minute field proven technology", a real oxymoron if ever there was.
JimB