Semantica confusionaria
È un problema di semantica. Quando qualcuno dice un frontend .NET o uno sviluppatore front-end Java, di solito parlano della persona che conosce molto i linguaggi dei template e forse dei framework che non dovrebbero mai più essere usati come webform che sono stati usati per cercare di nascondere il buttare le cose su una parete http (cioè "sviluppo web") da sviluppatori di app che non volevano o almeno si presumevano non volessero saperne di più su tutta quella merda. Nel caso di .NET e Java misti, non sono sicuro, ma ho potuto solo supporre che nel senso di MVC delle cose abbiano Java che agisce per tutte le cose del modello di business e .NET che gestisce tutto il resto che sarebbe meglio descritto come "middle-tier" ma è ancora tutto sul lato server.
La vera separazione è ciò che accade sul server e cosa succede sul client o sul browser. Si potrebbe facilmente confondere la costruzione dell'HTML da inviare o rappresentare il front-end con "sviluppo front-end", quindi preferisco evitare confusione usando i termini client e lato server anziché front e back-end quando si discute di ciò che faccio tipicamente, (di solito il lavoro lato client).
Lingue lato client
Il motivo per cui utilizziamo lo stesso set di lingue sul browser è perché il browser è sul lato ricevente e per la maggior parte (c'è stata ormai la resistenza per lo più da Microsoft e Adobe su questo) nessuno vuole avere inviare tre diverse versioni dello stesso lato client per soddisfare ogni potenziale cliente o richiedere l'installazione di un plug-in proprietario per il web. Inoltre, le tre lingue incapsulano abbastanza bene le preoccupazioni sul lato client, permettendoci di costruire e modificare rapidamente front-end delle app Web mantenendo un accoppiamento lento tra la struttura del documento, il modo in cui tutto appare e come tutto si comporta. Puoi cambiarne uno senza cambiare abbastanza facilmente gli altri due.
Lingue lato server
Il motivo per cui hai migliaia di opzioni sul web lato server, ovviamente, è perché puoi. È il tuo server. Tutto ciò che deve fare è comunicare tramite http / ssl e il resto dipende da voi. JavaScript è ora un'opzione tra l'altro, ma fa emergere una domanda interessante. Dovresti ancora trattare un'applicazione web come se fossero davvero due app su entrambi i lati di quel muro HTTP. Sono dell'opinione informata attraverso il dolore che sì, sì dovresti e io adoro Node.js.