I've always been curious about the seeming compulsion to found mathematics upon sets, be it ZF(C) or some other system. Of course, there are other approaches these days like category theory and type theory (themselves inextricably linked by the Curry–Howard–Lambek correspondence), but these rather seek an entirely different approach. What I'm really getting at is: why can't we simply deal with (improper) classes? That is, throw away sets as reified mathematical objects and just deal with the classes implicitly defined by predicates in some logical system. Does this indeed make certain areas of mathematics inaccessible? Are there other problems I might not have considered? I would appreciate if someone could enlighten me here in a general way, albeit perhaps also with some specific cases within mathematical subfields.



Why can't mathematics be formalised in terms of classes rather than sets?
Putting together your two remarks



> 
> just deal with the classes implicitly defined by predicates in some logical system.
> 
> 
> 


and



> 
> we could envisage a universe of discourse being something like the naturals (recursively defined), with only first-order classes.
> 
> 
> 


seems to me to yield an informal description of [full second-order arithmetic](http://en.wikipedia.org/wiki/Second-order_arithmetic), $Z\_2$.


As to whether mathematics can be formalized in such a system, the answer is yes, virtually all mainstream mathematics can even be formalized in weak subsystems of $Z\_2$. See the book [Subsystems of Second Order Arithmetic](http://www.personal.psu.edu/t20/sosoa/) by Stephen Simpson.


