That's an interesting observation, and it matches with my experience, too. Specially in larger teams, the senior developers gravitate towards the back-end, and the 'full-stack developer' is an extremely rare sight.
If I had to guess why it is, I'd say that back-end technologies naturally evolve slower. Yes, we are in the middle of a Big Data boom, but even then, the rate at which Hadoop changes is nowhere near Ruby on Rails, to cite two popular technologies.
(oldster here, mostly doing 'back end' type stuff) -- I think it's due to the fact that younger folk are usually more comfy with the GUI aspects of the latest tech. Me and my 40+ prog friends generally hate all the newest webby mobile stuff, we like email and IRC and text documents and command shells. We generally despise Twitter, FB, anything that enforces a 'modern' GUI experience on us.
Also, the back-end stuff tends to be a bit less sexy, but also less fault-tolerant. Management sees the front end; the back end is basically magic. So it makes sense that you have Gandalf back there with his beard and recumbent bike banging out magical koans to keep the database alive, while young bucks guard the front gate of the castle.
Yes and no. The front-end (as far as web goes) is still HTML and Javascript, just better frameworks. And the base patterns of good design still apply regardless of the front-end technology.
The back-end in the last five years or so has definitely had a lot of change in data stores, emphasis on RESTful API exposure to front-end and other back-end services, web server choice and style (WSGI, PSGI, FCGI, etc).
The biggest difference is that a front-end developer has to worry about the performance of a single client using a single state machine. The back-end guy has to deal with making a site fast and reliable while supporting 100s or 1000s of those clients concurrently.
Crash the browser every 100K views and someone reloads. Crash the back-end every 100K views and someone gets fired.
I'd say that the new API-centric model works very well here. The old codger has complete control on what's coming and going from the core application, without worrying about a whippersnapper messing with the DAOs and adding a bobby tables vulnerability.
In the Dark Past, this last line of defense was in stored procedures, but we -- 30-something greybeards :) -- know what a mess that was. There are plenty of companies who are still tied to an ancient DBMS due to that 10kLOC stored procedure that looked like a good idea at the time.
> If I had to guess why it is, I'd say that back-end technologies naturally evolve slower.
I think it is this way because back-end development requires more expertise than GUI development. Steady more experienced developers are better suited than new hires.
The front-end guy also deals with the users more. And after spending 20+ years doing that, us older geeks are more than happy to moved to management or the back-end. Peace and quite.
I know what you were meaning to say but I have actually been chastised by many a frontend dev for saying "Oh, all the stuff the frontend team does is easy".
In either area (frontend / backend) the complexity depends entirely on the problem that you are trying to solve and I am sure there are plenty of FE problems that require a high level of expertise to solve elegantly.
I might be the weird exception, started in the db/OS/backend, and ended up in web front end and mobile. What I found is that front end is closer to what the business clients see and what they would pay. Business users really can't see and don't care what the backend does as long as it works.
Sadly, that's true :( . If the IT executives don't defend the work of the backend people, they're screwed.
I worked for close to 2 years on a new backend for the insurance company I work for. A new, street-smart guy started getting cozy with management (instead of doing his assigned work), went behind the back of the IT manager and convinced another department to give him some money to build a colourful new frontend (which basically called the new backend and displayed the results, the money went into design and showed), and the company ended up firing the (pretty clueless) IT manager and putting the new guy in charge, over the guys that worked on the backend that made everything possible (both our fault and the clueless IT managers' that this happened, but it still sucks).
I moved from front end work to back end work for some very simple reasons a) in general it pays better and related b) front end guys are far move common so the backend has less competition.
Work, as I have become older, is more and more just a business proposition.
Plus it puts me further away from those guys that think HTML/CSS is programming. :)
I am 27 and work as a GUI-dev. My co GUI-devs are 26 and 32 years old.
But the back-end developers are 38, 43 and 56 years old.
The management in here consists of engineers, too. They are all >40 years old.
Most tech-people I know either got in to back-end development or management when they got older.