È sempre stato il caso per le persone di programmare usando più di una lingua. Quando le persone utilizzavano Assembly, dovevano appoggiarsi a un nuovo linguaggio Assembly ogni volta che cambiavano architetture.
Quando le persone dovevano fare COBOL o Fortran, tipicamente facevano anche RPG e / o JCL.
In Unix, le persone lavorerebbero con C, sed, awk, script di shell e praticamente tutto nel kitchen sink di Unix (quasi tutti gli strumenti a riga di comando in Unix sono i suoi DSL molto specializzati).
In DOS, le persone dovrebbero programmare in Turbo Pascal o C oltre agli script batch. Più tardi, quando arrivò Windows, era VB o qualcosa come PowerBuilder accoppiato con SQL ed eventualmente script di installazione batch.
Al giorno d'oggi, è di fatto che le persone "lavorano" con più di due lingue ogni giorno (e con "lavoro" intendo fare il giorno reale- codifica odierna o conoscenza lavorativa). Java o C # o VB mescolati con JavaScript e SQL per lo meno. Poi entrano in gioco altre lingue per lo scripting batch / job e simili. Quindi, per ogni lingua, hai un framework che implementa di per sé un DSL interno, un mini-linguaggio a sé stante.
Quindi, non è solo vantaggioso lavorare con più di una lingua, ma è necessario. Non c'è modo di costruire un sistema moderno e complesso con una sola lingua (e con "build" non intendo solo codificare una schifezza che compila, ma per costruire qualcosa con un design decente.)
Diamine, uscirò da un arto e direi che mi aspetterei che i bambini al college abbiano una buona conoscenza di due o più lingue se sono seri nell'essere in questa professione.
Quindi, riguardo alla tua domanda:
My main question is, is it wise for me to continue doing this or
should I continue development in C#? Would this harm me in the long
run (mind you my main goal is not to be a jack o all trades) or is it
a good practice to be doing?
Quindi, una risposta breve, no, l'uso o il passaggio da una lingua all'altra non ti daranno le follie. Conoscere più di una lingua non ti farà diventare un tuttofare e non è possibile per uno sviluppatore diventare un esperto non potendo utilizzare più di una lingua.