Despite doing slightly different things, both the frontend and the backend of Joomla
use the Model View Controller design pattern for organizing code. The biggest difference is that the frontend is primarily used for displaying
data while the backend is used for managing it.

So the first difference is that you can usually get away with a single
controller in the frontend, and you usually cannot get away with a single
controller in the backend. In the frontend, nine times out of ten, you're just displaying a view, you're
not going to have as many forms as you have in the backend and you aren't going
to be taking in as many specific requests from users.

So second difference between the frontend and the backend is that the backend
has some controllers and models that are a little bit more suited for loading
and saving and deleting records.
It makes this process a little bit more automatic than it would be if you didn't
have these specialized controllers.

The third difference is that the security model in a backend is very different.
When you have logged into the backend of the web site, it's necessary to make
sure that another web site that you're visiting is not trying to make a request
on the backend instead of you making that request.
It's a security hazard that's known as a Cross-Site Request Forgery, and the
only way to protect against this is to send a randomized token to the form and
have that token checked whenever that form gets submitted.

Then finally, the HTTP request flow is different in the backend.
When you save, delete or otherwise change a record, you're going to be
redirected by the controller to another screen in Joomla
This is so when you hit the Back button, you don't accidentally do that save or
delete again, and this differs from the frontend in that the frontend is
simply displaying a view and that's the end of it.
With the backend, whenever you do one of these tasks, it's going to complete the
task and then redirect you to another screen.

So while the code in Joomla's!
backend serves a different purpose from the code in the frontend, the same MVC
design pattern applies.
However, security and data management considerations make it necessary to take
different approaches with similar looking code.