Sviluppo multipiattaforma: un costoso capriccio?

Questo post serve a mettere una volta per tutte, nero su bianco, cosa penso del supporto multipiattaforma come requisito durante la progettazione di un applicazione.

Partiamo dal primo punto direi fondamentale, sviluppare un sito web che fa determinate cose NON vuol dire (IMHO) avere un supporto multipiattaforma.
Cercherò di essere chiaro: quando parlo di software multipiattaforma intendo un applicativo che a seguito di una procedura di installazione, giri su qualsiasi sistema operativo, il sito web non si installa, si fruisce attraverso un browser.
Dunque, seppure il web sia fruibile attraverso i più svariati metodi, l’elaborazione della pagina avviene lato server, server che può avere o meno un supporto per multipiattaforma, d’accordo.
Ma veniamo al centro della questione.
Siamo sicuri che questa “multipiattaforma” non sia un mero capriccio?
Tradotto in termini di chi investe nello sviluppo di un programma, voglio dire, ha senso creare un qualcosa che verrà installato quasi mai su sistemi differenti da windows?
E soprattutto, siccome quasi mai verrà messo su sistemi operativi diversi da windows, siamo così sicuri che allo stato attuale non ci siano tecnologie che aggirino questo problema?
Ok, ci sto girando intorno troppo, farò direttamente la domanda che va a parare sull’obbiettivo del post.
Siamo sicuri che per l’applicazione che dovrò creare, i vantaggi di uno sviluppo che mi vincola all’utilizzo di Windows, siano inferiori alle spese dei programmatori che devono impazzire dietro a strumenti multipiattaforma?
No perchè, mi è capitato non poche volte di vedere software creati con ambienti di sviluppo multipiattaforma ma che di fatto giravano sempre in windows, e poi una volta portati su MAC o Linux… Non funzionavano… ma semplicemente perchè l’ambiente di sviluppo non è così evoluto e banalmente alcune funzionalità vengono svolte, lanciando un file exe esterno (no comment).
Ora, fino a prova contraria, la testa di un programmatore è costosa e al giorno d’oggi le tecnologie sono molteplici, ci tengo a precisare che io non prendo nessuna percentuale da Microsoft sul venduto, ma Visual Studio offre una produttività del team che non è paragonabile con qualsiasi altro IDE.

E qui Vi chiedo, benissimo, possiamo scavalcare il problema?
Spesso il programmatore si focalizza troppo sul risolvere un problema e non si accorge che c’è un modo (magari anche migliore) che già fa tutto.
Mi riferisco alla virtualizzazione, al VDI, alle remote app, al remote desktop, a citrix, al cloud e chi più ne ha più ne metta.

Correva il lontano 2000 quando un amico di mio padre mi chiese di creare un programmino con Microsoft Access per gestire la sua ditta, l’unico problema però era che aveva un Mac!
Già nel 2000 tuttavia, riuscimmo a virtualizzare un windows dentro al Mac (anche se con costi elevati) e l’amico di mio padre partì in un 2 settimane con tutto quello di cui aveva bisogno!

Oggi, a distanza di 13 anni, lo ripeto: secondo me, parlare di supporto multipiattaforma è inutile, costoso, controproducente. Andrebbe fatto solo per applicativi molto particolari.
Il business corre sempre più ad velocità elevata e non possiamo permetterci di perdere tempo cercando di implementare inutili requisiti.

Il prossimo week end in cui il tempo farà schifo continuerò l’antifona parlando di web all’amatriciana, l’abuso di questa tecnologia e di gente che vorrebbe utilizzare il web anche per scompattare un file zip insomma.

Rispondi

Leggi articolo precedente:
NServiceBus Modeling

NServiceBus Modeling è un'estensione che ci consente, attraverso un editor completamente grafico, di modellare i nostri workflow (o saghe).

Chiudi