Image

Corporate Blog

Consulenza Informatica - Sviluppo Software - Formazione IT

Indietro

Sviluppo software: i linguaggi più richiesti coincidono con le nuove tecnologie?

Sviluppo software: i linguaggi più richiesti coincidono con le nuove tecnologie?

In questo articolo vogliamo offrire una panoramica dei linguaggi più richiesti nella consulenza informatica. Ma questi corrispondono alle scelte tecnologiche più all'avanguardia nello sviluppo software?

I linguaggi più richiesti nella consulenza informatica per lo sviluppo software, coincidono solitamente con i linguaggi di programmazione più diffusi. Ma spesso capita che i nostri Clienti richiedano profili altamente specializzati nelle tecnologie che loro faticano a trovare sul mercato.

Secondo le statistiche dell'azienda TIOBE, che attraverso il suo TIOBE index si occupa di calcolare i linguaggi di programmazione più diffusi, per il mese di novembre 2016 troviamo Java al primo posto, seguito da C, C++, C# e Python. Questi sono linguaggi che figurano in cima alle classifiche già da molto tempo, ma osservando il dato attuale, constatiamo il rilievo che stanno progressivamente assumendo linguaggi come Go e Swift; ciò a conferma dell'attenzione che si pone oggi a concetti legati al cloud e allo sviluppo di app mobile.

La scelta tecnologica nello sviluppo software è alla base della riuscita di un progetto. Generalmente, tra le soluzioni più diffuse per una web application, la scelta sarebbe ricaduta su un back-end realizzato con un linguaggio solido come Java, con l'utilizzo delle Servlet o, in alternativa, come PHP, a seconda delle esigenze strutturali. Possiamo scegliere di utilizzare un application server come JBoss, oppure un web server come Apache Tomcat, per rimanere in tema di open source.

Sempre in tema open source, come database per la consistenza dei dati, potremmo adottare MySql. Lato front-end invece, generalmente, la scelta converge su HTML, fogli di stile CSS e linguaggi di scripting come JavaScript.

Nello sviluppo software oggi potremmo fare le stesse scelte tecnologiche?

Si, ma oggi in realtà, possiamo anche ipotizzare un quadro diverso.

Come back-end una valida alternativa è Express JS che sfrutta le potenzialità di NodeJS lato server. Nuovi approcci allo sviluppo come ad esempio, l'adozione del modello TDD (Test Driven Development), rendono necessario lo slegarsi dal concetto di database relazionali, aprendosi ai db no sql come Mongo DB.

Lato front-end, tecnologie come Angular JS permetono di sviluppare applicazioni che fanno uso massivo di JavaScript, rimanendo però abbastanza pulite e manutenibili. Si potrebbe ipotizzare di scegliere uno stile architetturale a microservizi.

L'approccio a servizi proviene dal mondo delle SOA (Service Oriented Architectures), che ha portato alla definizione dei web services, ma li scompone in piccoli servizi ciascuno dei quali comunica, spesso sfruttando il protocollo HTTP.

Queste scelte tecnologiche si sono rese necessarie per superare i limiti della progettazione di sviluppo software waterfall (“a cascata”), solitamente adottata. Questo approccio, concettualmente valido, una volta trasferito nella realtà della realizzazione di un progetto, produce risultati che non sono mai quelli sperati. Nella consulenza informatica, sappiamo quanto le scadenze siano spesso disattese, nonostante ore e ore di straordinari da parte del personale e il coinvolgimento di nuove risorse, per cercare di rispettare i tempi. Questo perchè, ad esempio, molti dei requisiti emergono in modo chiaro solo in una fase di lavoro molto avanzata.

Non è raro infatti imbattersi in start up, la cui forza risieda nell'aver sfruttato le potenzialità della metodologia “agile”.

Mobile e User First

L'adozione di questo metodo consente di avere una riduzione dei rischi e di sperimentare. Tali processi si concentrano sulle interazioni tra le persone e un rapido sviluppo di codice, piuttosto che sulla documentazione e sulla pianificazione. Sviluppare rapidamente il codice consente di avere subito le funzionalità chiave del software. Si ottiene così un rapido riscontro su ciò che va bene e cosa no, creando valore incrementabile nelle fasi successive.

Scegliere un approccio così innovativo, basato sul “try and see”, significa mettere al centro l'utente e la user experience. Si creano prototipi funzionali per progettare un prodotto altamente usabile. Per queste ragioni, abbiamo scelto di utilizzare questa metodologia Agile Scrum nella nostra Software Factory per i progetti interni.

Questa attenzione verso l'utente assume più rilevanza dal momento in cui la nostra applicazione potrebbe essere visualizzata su nuovi dispositivi. Oggetti come smartphone, tablet, smart tv possono essere fruiti in qualsiasi momento, mentre l'utente sta compiendo una qualsiasi altra azione Ci sono oggetti che siamo abituati a vedere interagire con la rete, come ad esempio lo smartphone. Ma anche altri oggetti di uso quotidiano, come ad esempio il frigorifero, possono collegarsi alla rete per trasferire dati.

L'IoT – acronimo di Internet of Things, associa oggetti della vita di tutti i giorni alla rete rendendoli “oggetti intelligenti”. Basti pensare a termostati, wearable o sensori vari. Tutti questi oggetti registrano informazioni che, a lungo andare, diventano ingestibili. E' ciò che avviene con le informazioni scambiate sui social networks. Queste rappresentano il nuovo potere delle aziende, quindi è fondamentale sfruttarle al meglio. In questi termini si parla di gestione di Big Data spesso in Real-Time. Si tratta di algoritmi in grado di manipolare un'enorme quantità di dati, in poco tempo e con poche risorse.

Il nostro sondaggio

Appare evidente che si sono manifestati nuovi scenari tecnologici e ne affioreranno di nuovi, con ritmi sempre più serrati. Abbiamo voluto pubblicare questo articolo, evidenziando i linguaggi più richiesti nella consulenza informatica e ragionando sulle tendenze future. Tutto ciò alimenta la motivazione che ogni giorno ci spinge ad affrontare le piccole, grandi sfide, tipiche del nostro lavoro. In quest'ottica, vi proponiamo un “sondaggio” all'interno del nostro blog. Non come mera raccolta di idee – criterio già positivo in sé –, ma perché costituisca un momento di confronto.

Blog Categories
Seguici sui Social