Attualmente sto lavorando per una società nel team di ingegneri di circa 5-6 persone e mi è stato dato il compito di dirigere la riprogettazione di un tester di sistemi embedded. Abbiamo deciso i requisiti generali e gli attributi che sarebbero desiderabili nel sistema, e ora devo decidere una lingua da utilizzare per il sistema, o per lo meno presentare un elenco di lingue con vantaggi e svantaggi da presentare alla squadra.
L'idea generale del progetto è che attualmente abbiamo un tester scritto in c ++, che non è mai stato progettato per essere un tester, ma invece si è evoluto per essere tale nel corso di 3-4 anni a causa delle necessità. Scrivere test per un nuovo prodotto richiede la modifica del "framework" e del codice di scrittura che è completamente non leggibile o intuitivo a causa del modo in cui il sistema è stato originariamente progettato. Ora, abbiamo deciso che il tempo per modificare questo tester per ogni nuovo prodotto che vogliamo testare è diventato troppo alto e vogliamo riscrivere parzialmente il sistema in modo da poter programmare i test effettivi in un linguaggio di scripting che poi utilizzare il framework c ++ modificato sul back-end per testare i sistemi attuali. Il framework c ++ sarebbe responsabile di svolgere tutto il lavoro effettivo e il linguaggio di scripting si integrerebbe semplicemente con quello per dire al framework cosa fare.
Non avendo mai programmato un linguaggio di scripting (programmiamo sistemi embedded), ho imbattuto in un muro dove non ho esperienza con nessuna delle lingue che potremmo usare, ma devo in qualche modo dare pro e contro di ogni lingua in modo che possiamo scegliere il migliore per il lavoro.
Attualmente la mia breve lista di possibilità include:
- Python
- TCL
- Lua
- Perl
La mia domanda è questa: Come può una persona valutare una lingua che non ha mai usato prima? Quali criteri sono buoni indicatori per l'usabilità potenziale di una lingua in un progetto?
Sebbene siano graditi suggerimenti utili per il mio caso particolare, ritengo che questa sia una buona abilità da possedere e vorrei poterla applicare a molti progetti diversi, se possibile