Sfondo
Prima di porre questa domanda, ho cercato questo sito e ho trovato che le seguenti 3 domande più simili sono già state poste:
Quando utilizzare è utile un linguaggio di scripting all'interno di un programma più grande?
Che cosa suggerisci per multipiattaforma app, incluso il web?
È la programmazione in Python più veloce che in C, C ++ o Java?
Una lingua per dominarli tutti? (Essendo piattaforme.)
Il mio problema con questi è che mentre confrontano le lingue e alcuni dei loro rispettivi costrutti, non rispondono ai requisiti specifici di cui sono vincolato. Questa domanda si applicherà quasi interamente agli ingegneri hardware che utilizzano software per la progettazione di sistemi di test!
La nostra piattaforma / sistema
Lavoro in un'azienda di software in cui progettiamo sistemi di test che vengono utilizzati per diagnosticare problemi con il nostro prodotto. Sono specificamente responsabile del software utilizzato per il funzionamento di questi sistemi di test .
Attualmente, tutti i nostri sistemi sono costituiti da un dispositivo elettronico (il tester ) associato a un laptop con Windows. Il portatile esegue il software che progettiamo in C #, che è responsabile del controllo di tester . Il tester è responsabile della connessione a un prodotto che un tecnico sta risolvendo e diagnostica automaticamente tutti i problemi di tale prodotto.
Ecco i requisiti software a cui tutti i nostri sistemi di test devono attenersi rigorosamente:
- Ambiente guidato dalla GUI (per l'esecuzione dei test).
- Progettazione dell'applicazione GUI basata su eventi (o equivalente)
- Supporto molto strong per carichi di elaborazione asincrona dei dati.
- Supporto molto strong per la programmazione multi / parallela.
- Interazione occasionale con le librerie C.
- strong supporto per lo sviluppo di API / librerie.
- Possibilità di separare la GUI da un processo che guida l' hardware del tester .
- GUI non può essere un'applicazione web, assolutamente deve essere guidato dal desktop!
The Future
La nostra azienda ha deciso che alla fine sostituiremo tutti i laptop con dispositivi più piccoli che eseguono una versione di Linux. A breve termine, è stata presa la decisione di passare allo sviluppo di una piattaforma indipendente dall'OS che saremo in grado di trasferire da Windows all'ambiente Linux quando arriverà il momento.
Detto questo, questo compito è stato messo nelle mani di me stesso e di un'altra persona per lavorare insieme e prendere una decisione. Tuttavia, sembra che ci troviamo ad un incrocio. Vuole convertire tutto in Python e voglio convertire tutto in Javascript. Il problema è che entrambi i nostri argomenti sono deboli. Ha esperienza nel lavorare con l'IDE Python di Eric6 ed è molto comodo nel farlo, e sono bloccato nel mondo C # / Java e ho paura di uscire dalla mia zona di comfort.
Domanda
So che entrambe le lingue otterranno ciò che vogliamo, ma mi piacerebbe sentire alcuni dei programmatori esperti che hanno affrontato questo tipo di decisione. Mi piacerebbe vedere un argomento fatto per Python o Javascript (riguardante la portabilità) che si rivolge a ciascuno dei summenzionati set di costrutti. Questa è una decisione importante che non vogliamo prendere senza prima chiedere alla community.