MVP – minimum viable product

Un'idea, o più correttamente una buona intenzione, per provare ad imparare efficacemente a programmare sfruttando diversi linguaggi di programmazione.

Come scritto in un post precedente, mi piacerebbe imparare a programmare seriamente. Con “seriamente” intendo la capacità di realizzare applicazioni che abbiano una chiara funzione e siano usabili, e non dei semplici programmini dimostrativi.

Siccome, pur avendo le basi di programmazione e di tecniche algoritmiche, e pur conoscendo i fondamenti di diversi linguaggi, sono sostanzialmente una capra, ho pensato che il modo migliore di imparare sia quello di fare qualcosa di concreto. Pertanto, invece di continuare ad annoiarmi seguendo corsi e tutorial, ho deciso di realizzare una applicazione minimale (MVP, minimum viable product) usando diversi linguaggi e framework.

Descrizione dell’applicazione

L’applicazione in questione sarà un gestore di cose da fare, l’ennesima to-do app, ma multiutente. Con questa applicazione, ogni utente registrato potrà gestire la sua personale lista delle cose da fare (to-do, doing, done), decidendo anche la visibilità di ciascun task (pubblico o privato).

Un utente loggato vedrà tutti i suoi task (pubblici e privati) e i task pubblici di tutti gli altri utenti. Un utente non loggato potrà vedere tutti e soli i task pubblici.

Implementazione

La mia intenzione è quella di realizzare questa applicazione con diversi linguaggi e framework, per poi confrontare i risultati. In particolare ho in mente di utilizzare le seguenti tecnologie (non necessariamente tutte, né in quest’ordine):

  • Ruby e Rails
  • Python e Django
  • Python e Flask
  • PHP e CodeIgniter

Aspettative

Considerando la mia proverbiale incapacità di arrivare fino in fondo ai miei propositi, è probabile che non riuscirò a completare nessuna versione dell’applicazione, ma cercherò comunque di impegnarmici seriamente.