Sviluppare Open Source in Ada... Perché no?
Descrizione:
Lo scopo di questo intervento è di presentare il linguaggio cercando di smontare i preconcetti che fanno sembrare Ada lo strumento meno indicato per l'open source (es., è un linguaggio vecchio, è usato solo dai militari/in applicazioni mastodontiche, è poco efficiente, è troppo complesso...).
Ada in realtà è un linguaggio moderno (l'ultimo aggiornamento risale al 2012), adatto a progetti sia grandi che piccoli (c'è chi programma il Lego Mindstorm in Ada!) e pensiamo che la comunità open source (mossa da entusiasmo e curiosità e meno legata del mondo industriale a considerazioni di ritorno economico) sia l'ambiente adatto per apprezzare e trarre profitto dalle caratteristiche di robustezza e facilità di manutenzione di Ada.
L'intervento si svilupperà come segue: dopo una prima introduzione generale alla sintassi di Ada passeremo in rassegna le caratteristiche che rendono Ada unico nel suo genere, cominciando con cose semplici come la struttura dei tipi, i package e i template ("package generici" in gergo Ada) per poi passare ad argomenti via via più complessi quali la programmazione OO in Ada, programmazione multi-task (incluse le estensioni multi-core di Ada 2012), la programmazione per contratto (es. pre- e post-condizioni, invarianti dei tipi), la programmazione distribuita e gli strumenti per la verifica formale di programmi (SPARK 2014).
Alla fine dell'intervento lo spettatore avrà un'idea abbastanza precisa delle varie caratteristiche di Ada e sarà, speriamo, abbastanza incuriosito da voler provare ad usarlo...
Conoscenze propedeutiche:
Conoscenze di base di programmazione dovrebbero essere sufficienti per seguire la maggior parte dell'intervento.
Le parti che potrebbero richiedere qualche conoscenza in più sono:
- la parte sulle caratteristiche "Object Oriented" di Ada (è utile una conoscenza di base della programmazione orientata agli oggetti);
- la parte sui task (è utile una conoscenza di base sulle problematiche della programmazione multi-task).
Livello di difficoltà: 3/5