Guida: quando e perché usare Linux per il tuo prodotto digitale (e perché pochi lo fanno)

Da quando oltre a programmare media server mi occupo di gestire la costruzione di software e prodotti mi sono imbattuto spesso in questo tema.

Una battaglia nerd fra chi sostiene a tutti i costi la fazione Windows oppure la fazione Linux.

Se vuoi mettiamoci pure nel risiko anche Apple ed Android, che sono le altre due piattaforme principali sulle quali far girare un’applicazione. Un bel dibattito.

Ognuno ha i suoi pregi e difetti, e ovviamente anche qui come in molti altri casi la panacea di tutti i mali non esiste, dipende sempre da quali sono i propri obiettivi.

Non voglio divagare e quindi mi concentro sul tema del post: Linux.

Linux è a mio modesto parere il miglior sistema operativo, se il tuo prodotto ha queste caratteristiche:

  • Deve fare solo una specifica attività (ad esempio riprodurre un filmato)
  • Vendi al tuo cliente in abbinamento Hardware / Software
  • L’hardware che vendi non è soggetto ad ciclo di vita inferiore ai due anni

Per tutto ciò che non rispetta anche solo uno di questi tre punti spesso è meglio usare altri sistemi. Non ha senso far girare un’app multipiattaforma su Linux; tantomeno ha senso far girare su linux un software che non è corredato da un hardware; se parliamo di un dispositivo ioT, invece, ha assolutamente senso che giri su Linux: un player multimediale come KU fa di Linux il suo punto di forza nei confronti della concorrenza.

Ma quali sono i vantaggi di costruire un prodotto basandosi su Linux piuttosto che su un sistema operativo?

  1. Primo su tutti: un controllo totale dell’ambiente sul quale il tuo software gira;
  2. Una stabilità senza compromessi;
  3. Un team enorme di sviluppatori che lavora per te.

Ognuno di questi vantaggi ha un prezzo da pagare, ecco i motivi.

Controllo totale

Partendo dal primo punto, consideriamo l’assunto per cui avere il controllo assoluto su qualcosa comporta più lavoro e più responsabilità, in qualunque ambito. Ne sanno qualcosa gli imprenditori che vogliono mantenere il controllo totale sui loro dipendenti, o le mamme che vogliono un controllo totale sui propri figli.

Gli esempi riportati riguardano un’esigenza di controllo che diventa spesso dannosa ma, se parliamo di Linux, il controllo totale non è dannoso affatto, se non per il carico di lavoro che ciò comporta.

Linux è un sistema completamente personalizzabile. Ogni componente del kernel (il kernel è il cuore) del sistema operativo può essere modificato, cancellato o sostituito con qualcosa che funziona meglio per il tuo scopo. Va da sé che tutta questa libertà comporta ore di programmazione. I componenti del kernel di Linux, infatti, non si compilano da soli, ci vuole qualcuno capace che ci si dedichi, e ci impiegherà un sacco di tempo.

Stabilità

Rimanendo sul tema del controllo, mi collego al punto due. Linux può diventare un sistema estremamente stabile, grazie proprio alla sua completa flessibilità di personalizzazione. Ogni processo inutile, infatti, può essere eliminato, per la gioia delle performance oltre che della stabilità.

Ribadisco: Linux è una figata, ma la compilazione di un kernel personalizzato non è una operazione alla portata di chiunque. Ci vogliono delle capacità ed un’esperienza molto elevate.

Fin qui va anche bene, ok c’è parecchio lavoro da fare, ma dove sta la fregatura?

La fregatura sta nella responsabilità. I programmatori preferiscono sviluppare su Windows o altre piattaforme più comuni perché la responsabilità del sistema operativo non è più loro, non ne hanno il controllo. Può sembrare un fattore da poco, ma tutto dipende dall’applicazione che devi sviluppare. Se ci sono di mezzo dati sensibili o probabili tentativi di attacco da parte di nemici e concorrenti, spesso non usare Linux è una scelta obbligata, per non doversi sobbarcare i costi e i rischi che la protezione dagli attacchi al sistema comporta.

Lavorare con ambienti di sviluppo commerciali demanda la sicurezza e la stabilità di una parte del sistema all’azienda che produce il sistema operativo, scaricando il povero team di sviluppatori da una responsabilità che spesso non avrebbero minimamente le risorse per gestire. Non sto assolutamente insinuando che i tuoi sviluppatori sono dei lavativi, soltanto considera che potrebbero avere paura di costruire il tuo prodotto su una struttura che richiede manutenzione a 360° rispetto ai 180° che comporterebbe una struttura su sistema operativo commerciale.

Team di sviluppatori

Ma veniamo al terzo punto. È vero che Linux è l’icona delle più grandi community di software open source del mondo. Qualsiasi lavoro tu debba fare su Linux è in parte tracciato da altri. Questo ti permette di risparmiare del tempo, andando a recuperare “pezzetti” di codice in giro per il web, ma ti mette nelle condizioni di essere estremamente attento alla licenza di quello che usi. Il software open source, infatti, viene spesso fornito con licenza GPL, un contratto di fornitura del codice che ti costringe a ri-pubblicare ciò che hai sviluppato per chi verrà dopo di te. Eticamente validissimo, ma distruttivo per tutto ciò che è commerciale.

Ma allora come comportarsi di fronte a questo? La soluzione che più spesso viene usata è quella di pubblicare il codice o la parte di codice che hai evoluto.

Pubblicando le sorgenti del software, infatti, si fa tutt’altro che mettere la concorrenza nelle condizioni di copiare il prodotto. Mancheranno infatti un sacco di parti, tipo l’interfaccia o il sistema operativo, che per essere scritte in modo da funzionare con la sorgente richiedono un tempo di sviluppo che potrebbe a volte superare il tempo che ci vuole a fare il lavoro da capo.

Un’altra soluzione che si può praticare è il citare nel disclaimer del software commerciale che hai usato codice GPL con un testo come questo:

“This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here.”

È quindi possibile fare prodotti commerciali con Linux, applicando qualche semplice regola di buona condotta digitale.

Concludo raccontandoti che per KU, il player multimediale che ho sviluppato per il projection mapping ed il digital signage, abbiamo scelto Linux. Una strada impervia ed in salita, ma che sta pagando tutto lo sforzo fatto. Sono ormai due anni che il prodotto è in commercio mentre sto scrivendo questo post e non abbiamo mai avuto problemi con il sistema operativo.

 

Se avessi bisogno di chiarimenti o di qualsiasi informazione non esitare a contattarmi, ti risponderò nel più breve tempo possibile.

 

Leave A Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.