È considerata una cattiva pratica chiamare ad esempio tshark
o ffmpeg
nel mio codice, supponendo che non sono riuscito a trovare una libreria abbastanza buona da usare?
No, questa può essere una cosa normale e ragionevole da fare. Ma:
Il programma che si sta utilizzando deve avere un'interfaccia stabile e leggibile dalla macchina. Molti programmi hanno un output leggibile dall'uomo che è difficile da analizzare.
Questi programmi esterni sono una dipendenza. Le normali strategie del tuo linguaggio di programmazione per gestire le dipendenze non funzionano qui e avrai bisogno di un qualche tipo di gestione della configurazione durante la distribuzione della tua applicazione.
Tieni presente che la creazione di un nuovo processo potrebbe avere un sovraccarico significativo, soprattutto su Windows.
Chiamare programmi esterni ha implicazioni per la sicurezza. Se un utente malintenzionato può modificare il programma chiamato o anche solo gli argomenti della riga di comando, può essere utilizzato per l'escalation dei privilegi e l'esecuzione di codice remoto.
Come esempio di quando non usare programmi esterni: per un po 'di tempo, la libc di Apple era usata per shell out in Perl per implementare una funzione di libreria standard. Non è una buona idea.
Sì e No. Dipende da dove è in esecuzione il software. Se si trova in un ambiente chiuso con norme di sicurezza elevate, è possibile che si verifichino problemi con il software che carica le applicazioni esterne (e Librarys).
D'altra parte, se la tua applicazione è in esecuzione in un ambiente senza questo tipo di regolamenti, non ci dovrebbe essere nulla di negativo per utilizzare applicazioni esterne.
Leggi altre domande sui tag programming-practices