SDK: cos’è un Software Development Kit?

Ogni giorno, gli sviluppatori di software devono affrontare molte sfide. Al di là della mera programmazione, devono progettare concetti e prototipi per nuove applicazioni, pianificare e organizzare le fasi di sviluppo, analizzare i risultati intermedi ed eliminare errori o punti deboli. La tendenza alla crescente complessità dei software non facilita certamente il loro lavoro, motivo per cui strumenti come i framework, ovvero impalcature di codice pronte all’uso, sono una parte indispensabile nel lavoro quotidiano degli sviluppatori di software.

I Software Development Kit (SDK) rappresentano un altro strumento indispensabile che svolge un ruolo fondamentale nel lavoro quotidiano con i linguaggi di programmazione, nonché nello sviluppo e nel rilascio di software per piattaforme specifiche.

Cos’è un SDK (Software Development Kit)?

Un Software Development Kit, o SDK, è un pacchetto di strumenti e informazioni che rende possibile e facilita la programmazione di software in uno specifico linguaggio di programmazione per una determinata piattaforma o applicazione. La compilazione e la pubblicazione di un SDK è responsabilità dello sviluppatore originale del rispettivo linguaggio o dell’hardware/software. Infatti è nel suo interesse personale che software di terze parti vengano rilasciati sul mercato per il suo prodotto o il linguaggio di programmazione da lui creato. Nella maggior parte dei casi, i Software Development Kit sono quindi disponibili gratuitamente, anche se il produttore può collegarli a determinate regole e licenze.

Definizione: Software Development Kit

Software Development Kit: un SDK (Software Development Kit) è un insieme di strumenti per lo sviluppo di applicazioni per uno specifico hardware/software o in uno specifico linguaggio di programmazione. In alcuni linguaggi, l’SDK può essere identico all'ambiente di runtime.

Cosa contiene un Software Development Kit?

Il contenuto di un SDK varia a seconda del produttore e anche in base alla sua destinazione d’uso, che può essere un linguaggio, un sistema operativo o un hardware. Una componente standard inclusa in quasi tutti i Software Development Kit sono le API, che consentono di integrare nuovi progetti software a livello di codice sorgente. La fornitura di queste interfacce di programmazione elementari è solitamente accompagnata da un’ampia documentazione, che include spiegazioni sull’uso delle API e altre indicazioni utili. Gli sviluppatori interessati possono così ottenere rapidamente una panoramica e determinare se e come realizzare il loro progetto pianificato.

N.B.

Alcuni produttori usano nomi alternativi per i loro pacchetti SDK. La raccolta per il linguaggio di programmazione Java “JDK” di Oracle, ad esempio, prende il nome di Java (SE) Development Kit.

Affinché un Software Development Kit possa facilitare il processo di sviluppo, dovrebbe includere anche tutti i componenti tecnici di base come un editor, librerie, ambienti di runtime e di sviluppo, compilatori o debugger (e altri strumenti di testing/analisi, se disponibili). Rientrano in questa categoria anche driver specifici e i protocolli di rete necessari. In alcuni casi, i produttori aggiungono ai SDK anche esempi o progetti di test più piccoli, che ne facilitano il primo utilizzo.

I Software Development Kit possono quindi essere composti da:

  • API
  • documentazione
  • editori
  • librerie
  • ambienti di runtime e di sviluppo
  • compilatori
  • debugger
  • driver
  • protocolli di rete
  • esempi/progetti di test

Quali regole o licenze possono essere applicate ai SDK?

Come già accennato, la maggior parte dei SDK è disponibile gratuitamente, soprattutto perché nuovi software per il proprio sistema o dispositivo rappresentano uno dei modi più semplici di incrementare il valore aggiunto per gli utenti. Ciò è particolarmente evidente nel caso di smartphone e tablet, che sarebbero probabilmente molto meno popolari senza applicazioni di terzi. Il download e l’uso di Software Development Kit può tuttavia essere soggetto a determinate regole.

Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.

Un produttore può, ad esempio, concedere l’accesso a un SDK solo se l’utente s’impegna a non divulgare alcune informazioni riservate. Un accordo di riservatezza (ingl. non-disclosure agreement) di questo tipo è particolarmente comune per i software con algoritmi segreti e per i prodotti in stato alfa o beta. Un Software Development Kit può, inoltre, essere associato a una licenza per garantire che il software creato non venga rilasciato sotto un’altra licenza incompatibile. Possono essere utilizzate sia licenze proprietarie che libere, motivo per cui gli sviluppatori dovrebbero studiare i modelli sottostanti prima di iniziare a lavorare, come illustrano i seguenti esempi:

  • se un SDK è associato a una licenza proprietaria, non è adatto allo sviluppo di software open source;
  • se si tratta di un Software Development Kit con licenza GPL (GNU, General Public License) non è adatto allo sviluppo di applicazioni proprietarie;
  • se un SDK è concesso in licenza libera LGPL (GNU, Lesser General Public License), può essere utilizzato anche per progetti con componenti di codice proprietari. Questi devono, tuttavia, essere sempre strutturati in modo tale che gli utenti finali possano rintracciare e modificare in qualsiasi momento la parte open source del software.
Fatto

Le applicazioni open source, come LibreOffice o Mozilla Firefox, sono in continua evoluzione, soprattutto grazie ai Software Development Kit rilasciati: sia gli sviluppatori amatoriali che i professionisti usano i SDK di questi programmi open source per programmare nuovi progetti o estensioni funzionali e renderli disponibili all’intera comunità.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.