Development for the UI and for the server requires different mental settings. Some explanations are needed here. First of all, there are different priorities and different conditions for updating. The UI should not crash, and in the case of mobile applications, it takes longer to update it than the server. The server must be secure, fast and avoid logical errors in the data. Different priorities lead to different habits and different code. It is clear that the details may differ from project to project, but noticeable differences still remain.
In particular, because of this, it is quite difficult to switch between these activities within one day.
Usually there is practically no really common code between the server and the UI.
Even if one person is involved in both the UI and the server, it is easier to maintain different habits using different languages than writing in different styles within the same language.
Therefore, one language for the UI and the server is usually not a goal, or maybe even vice versa – there is a goal to spread the UI and the server into different languages.