OutSystems

OutSystems

OutSystems è una piattaforma usata da aziende di tipo PaaS – Platform as a service che necessitano di gestire velocemente applicazioni mobili o web. Compatibile con qualsiasi dispositivo di ultima generazione, le applicazioni create vengono distribuite in locale o attraverso forme ibride di condivisione dei dati.

Un ambiente di sviluppo visivo come OutSystems, offre una moltitudine di strumenti necessari alla creazione ed alla modifica rapida di applicazioni mobili e web senza il bisogno di scrivere codice.

OutSystems permette di:

  • Modellare le interfacce utente
  • Descrivere la logica e i processi aziendali
  • Accedere e strutturare i database
  • Utilizzare strumenti di integrazione (dati esterni tipo fogli di calcolo)
  • Abilitare servizi Web
  • Gestione degli utenti e dei loro livelli di accesso
  • Gestione delle attività di pianificazione

OutSystems fa parte dei software definiti DevOps – Development Operation che rappresentano una metodologia di sviluppo dedicata alla comunicazione, collaborazione e integrazione tra sviluppatori e operatori IT – Information Technology. Un software di tipo DevOps aiuta le aziende che hanno bisogno di frequenti rilasci, collaudi e  aggiornamenti dei loro applicativi.

I programmatori hanno a disposizione vari SDK – Software Development Kit  per creare componenti da poter integrare con applicazioni esterne o con i database. Per fare alcuni esempi, esistono delle procedure guidate per automatizzare l’integrazione ai database o per poter accedere alle librerie API di terze parti come SAP.

OutSystems nasce nel 2001 a Lisbona (Portogallo) e, dopo vari investimenti da parte delle banche portoghesi che hanno reso effettivamente possibile lo sviluppo di tale progetto, oggi la OutSystems ha sede in Atlanta (USA) ed è considerata una soluzione per molti piani di vendita, marketing e innovazione in tutto il mondo.

Attraverso il loro sito, e dopo aver creato un account, si può scaricare l’ambiente di sviluppo gratuitamente (che in questo momento è alla versione 10), seguire il primo tutorial di 5 minuti chiamato “Build a Mobile App in 5 min” con il quale poter creare passo passo una primissima applicazione funzionante ed online. Dopo questa breve esperienza ci si accorge che si è effettivamente di fronte a qualcosa di complesso ma allo stesso tempo molto funzionale e user friendly. Il tutorial in sé non risulta difficile, ma gli argomenti che vengono affrontati sono tanti e si è continuamente trasportati da un menù ad un’altro, da una pagina ad un’altra per poi vedere finita e funzionante la propria applicazione.

Una volta completato il tutorial, mi sono trovato di fronte ad uno schermo bianco senza un’idea di un nuovo progetto da sperimentare, questo perché effettivamente OutSystems è un ambiente di sviluppo che mira esclusivamente allo sviluppo di determinate funzioni. A questo proposito sono andato alla ricerca di manuali e supporto didattico. Sul sito, sotto la voce “LEARN” esiste tutto il materiale necessario suddiviso in percorsi di studio che partono da un livello principiante fino ad esperto. Viene offerto gratuitamente sia materiale video che di testo molto esaustivo e dettagliato. Inoltre vengono offerte delle lezioni in classe e la possibilità di effettuare degli esami per ottenere delle certificazioni.

 

Licenze:

Basta una breve occhiata alla pagina che introduce i prezzi e le edizioni, per comprendere chi è il fruitore finale di questa piattaforma. Esiste anche la licenza di tipo Free, con la quale si può accedere a tutta la documentazione per imparare ad utilizzare il loro ambiente di sviluppo e magari creare un progetto con un limitato numero di utenti e capacità.

Lavoro:

Dato che OutSystems mira alle grandi e medie imprese, mi sono messo alla ricerca di offerte di lavoro dove si prevedono conoscenze come sviluppatore certificato OutSystems. Prendendo come riferimento il sito Indeed, ho riscontrato una netta differenza tra le ricerche effettuate in Italia e quelle, ad esempio, nel Regno Unito. Cercando su www.it.indeed.com la parola chiave “OutSystems”, il sito non genera nessun risultato. Su www.indeed.co.uk invece vengono generate almeno due pagine di annunci di lavoro situati per la maggioranza a Londra. La figura professionale che sembrerebbe essere la più indicata, che tra le sue conoscenze necessita di competenze o certificazioni inerenti ad OutSystems, è l’IT Business Analyst.

Senza trarre conclusioni affrettate, e forse fuori contesto, vorrei concludere questo articolo con il dire che, come lo è per la suite delle applicazioni Office, un giorno sarà indispensabile anche in Italia avere delle elevate competenze riguardo ambienti di sviluppo come quello di OutSystems, o più nello specifico saranno necessarie competenze riguardo le varie applicazioni di sviluppo software o gli ambienti chiamati BPM development (BPM – Business process management) di cui OutSystems fa parte. Questo perché, data la tendenza del mercato che obbliga le imprese ad accelerare i propri processi aziendali, è ormai di comune accordo che strumenti come OutSystems siano necessari per definire, ottimizzare, monitorare ed integrare tutte le fasi utili al miglioramento del business aziendale.

Link:

Alcune immagini del tutorial:

Snap!

Snap!

Snap! è un linguaggio di programmazione visuale orientato agli oggetti di tipo drag-and-drop ispirato a Scratch, che implementa moltissime funzioni e strumenti che permettono di creare vere e proprie applicazioni.

Snap! marca gli stessi principi educativi di Scratch (leggi l’articolo) dando la possibilità agli sviluppatori di lavorare in un ambiente di sviluppo più professionale dove poter testare le proprie abilità informatiche. È ovvio che le conoscenze richieste per poter accedere agli strumenti offerti devono essere più profonde rispetto a quanto previsto dal team di Scratch.

In questo articolo parleremo delle differenze fondamentali tra Scratch e Snap! e forniremo i link di riferimento per poter accedere al materiale necessario.

Le  funzionalità aggiuntive che troviamo in Snap! Sono:

  • First class lists – Dalla versione 4.0.5 vengono introdotte le First class lists (classi primitive per gli “array”), questo rende possibile l’utilizzo delle liste bidimensionali su Snap! (array 2D).
  • First Class function or procedures – Secondo gli autori Brian HarveyJens Mönig (il creatore prima di BYOB e poi di Snap!) “l’idea della programmazione orientata agli oggetti viene spesso insegnata in modo da sembrare come se fosse necessario uno speciale linguaggio di programmazione orientato all’oggetto. Del resto, qualsiasi linguaggio che comprenda le funzioni tra le proprie classi primitive consente agli oggetti di essere implementati in forma esplicita; questo è un utile esercizio per aiutare a demistificare gli oggetti.” Come in Scratch, esistono 3 tipi differenti di funzioni: i Command type, i Reporter type e i Predicate type, solo che in Snap! vengono trattati come “Fisrt Class”.
  • Javascript – Permette di inserire del codice Javascript all’interno del programma, controllandone però le funzioni e limitando la condivisione del progetto per evitare la diffusione di eventuali malware.
  • Build Your Own Blocks (BYOB), possibilità di creare delle nuove strutture di controllo.L’immagine precedente mostra una struttura di controllo di tipo “for” creata utilizzando gli strumenti che troviamo all’interno del Block Editor.

Quando ho cominciato ad utilizzare Snap!, credevo di lavorare in un ambiente di sviluppo semplicemente migliorato rispetto a quello che viene messo a disposizione per Scratch. In effetti vi sono molti più strumenti per poter lavorare in modo veloce, ad esempio in Scratch non è possibile copiare una variabile direttamente dall’area di sviluppo o di correggere una modifica appena fatta premendo Ctrl+Z. Però Snap! non solo un ambiente di sviluppo “migliore”, bensì permette di creare veri stand-alone, i quali possono anche interfacciarsi con device esterni come Arduino o Raspberry Pi.

Di seguito dei link che vi aiuteranno ad entrare nel mondo di Snap!:

Sviluppo Applicazioni Android: alla fine la spunta Kotlin

Sviluppo Applicazioni Android: alla fine la spunta Kotlin

Era nell’aria già da un po’. Da tempo si vociferava che Google, a seguito della disputa legale con Oracle, avesse in programma l’adozione di un nuovo standard per lo sviluppo di applicazioni. Un breve riassunto per chi si fosse perso le puntate precedenti: Oracle ha sempre accusato Google di aver utilizzato volutamente parte del proprio codice Java per la creazione del suo sistema operativo, arrivando a dichiarare recentemente che senza “le stringhe incriminate”, Android non avrebbe potuto nemmeno esistere. Google ha cosi deciso di modificare il codice di Android ed a partire dalla versione N , eliminare tutte quelle API rivendicate da da Oracle e sostituirle con OpenJDK, un linguaggio JavaSE, rilasciato nel 2007 da Sun Microsystems sotto licenza GNU GPL (libera e senza royalty da pagare).

 

Per un po’ si era parlato della possibile adozione di Swift come linguaggio di programmazione di prima classe per lo sviluppo Android, ma alla fine la casa di Mountain View ha deciso di mantenere una netta differenziazione tra la sua piattaforma e quella concorrente di Apple. L’accoglienza di questa novità da parte degli sviluppatori è stata molto calorosa. Immaginiamo non sia stata invece molto apprezzata da parte delle software houses: l’adozione dello standard Swift avrebbe avuto come conseguenza una riduzione netta dei costi di sviluppo. Ma tant’è, Google ha scelto diversamente, e dall’alto del suo 86% di quota di mercato, se lo può anche permettere.

 

Entrando un po’ più nel tecnico, Kotlin è un progetto recente, sviluppato da JetBrains, che sfrutta la Java Virtual Machine. Questo significa che può essere utilizzato insieme a Java nello sviluppo delle applicazioni. La sua elasticità potrebbe portare molte case di sviluppo a sostituire il codice già presente con Kotlin, comunque tenendo una struttura basata su Java. A partire da Android Studio 3.0, questo nuovo linguaggio sarà incluso senza la necessità di installare tool di terze parti esterne all’IDE.

 

Certo le novità potrebbero però non finire qui. L’annuncio di Microsoft di mandare in pensione Windows 10 Mobile, e la sospetta solerzia con cui sia il fondatore Bill Gates che il top Manager Joe Belfiore si sono premurati di annunciare al mondo di utilizzare device Android, fa pensare che nel prossimo futuro altri linguaggi della galassia Microsoft (C# ?) possano essere supportati ufficialmente da Google come linguaggi di sviluppo di prima classe.

 

Staremo a vedere, nel frattempo l’incubo “Internet Explorer per Android” continua a perseguitarmi…

Windows 10 Mobile: finisce una storia che non è mai iniziata. E Microsoft si lecca le ferite…

Windows 10 Mobile: finisce una storia che non è mai iniziata. E Microsoft si lecca le ferite…

Parafrasando la pubblicità di qualche anno fa di una compagnia telefonica, Windows 10 Mobile doveva essere nelle intenzioni di Microsoft “il futuro che non c’era”. E, aggiungiamo noi, che mai ci sarà.

Le parole di Bill Gates a fine settembre avevano fatto presagire già qualcosa: il fondatore di Microsoft aveva dichiarato con una naturalezza stupefacente di utilizzare ormai da tempo un dispositivo dotato di sistema operativo Android. E si sa, Bill Gates non è uno che parla a vanvera. Infatti, solo pochi giorni dopo, è stato lo stesso Joe Belfiore, Top Manager della casa di Redmond, ad annunciare via Twitter al mondo intero che funzioni e dispositivi pensati per questo software non sono più un «focus» per l’azienda. Un modo gentile ed educato per dire che, a parte piccoli aggiornamenti per la sicurezza, nei prossimi anni non saranno rilasciate altre funzioni o altre versioni del sistema operativo.

 

Nonostante i grandi investimenti fatti negli anni passati,il sistema operativo non ha mai avuto successo. Belfiore, sui social, ha inoltre ammesso di essere oramai passato ad Android e ha anticipato che Microsoft fornirà gli strumenti necessari per chi volesse trasferire i propri dati da Windows Phone ad Android o iOS. Insomma, la pensione per Windows 10 Mobile si avvicina a grandi passi. E non potrebbe essere diversamente, visto che la quota di mercato di Windows Mobile a livello globale non arriva all 1%. Gli sviluppatori di app su questa piattaforma sono troppo pochi, ed anche questo non stupisce, in un mondo dominato da Android con l’86% del mercato seguito da Apple con il 13,6%.

Che ne sarà delle certificazioni per lo sviluppo mobile di Windows 10? Ai posteri l’ardua sentenza! In ogni caso non mancheremo di pubblicare gli aggiornamenti sulla questione, visto le possibili novità che questa scelta della casa di Redmond potrebbe portare anche per quel che riguarda lo sviluppo di App altre piattaforme.

Sicuramente Microsoft continuerà a sviluppare le sue applicazioni per altri sistemi operativi: Office è stato un successo, per esempio. Del browser Edge si parla già da tempo. Però un pensiero mi toglie il sonno: ve lo immaginate Internet Explorer per Android? Aiuto…

Scratch

Scratch

Scratch è un linguaggio di programmazione visuale sviluppato dalla MIT Media Lab al fine di aiutare i ragazzi ad imparare il pensiero creativo e quindi iniziarli alle basi della logica computazionale ed al costruzionismo.

Viene usato principalmente da studenti, professori e parenti per la creazione di storie animate e semplici video games. Se si accede al sito https://scratch.mit.edu/ si possono creare i propri progetti, salvarli e metterli in condivisione con gli altri utenti.

Pensato per ragazzi dagli 8 ai 16 anni, Scratch 2 (rilasciato nel maggio 2013) viene visitato da milioni di utenti di tutte le età i quali condividono i propri progetti da un’ampia varietà di contesti tra cui scuole, musei, biblioteche, centri comunitari o semplicemente da casa.

Gli studenti apprendono tramite l’esperienza in un contesto stimolante, il quale li mette direttamente a contatto in modo pratico con i concetti che altrimenti, in ambienti scolastici normali, rimarrebbero puramente teorici o confinati alla pratica degli esercizi.

Se per esempio uno studente deve apprendere il significato delle variabili e la loro suddivisione tra gli insiemi, in un contesto scolastico normale riuscirà a sentire di aver compreso o di aver assimilato i concetti e saprà poi riusarli per gli esercizi futuri sempre però dentro di un contesto puramente astratto, dove saranno i professori o i libri ad indicare la via per poter raggiungere la comprensione di determinati argomenti.

Scratch, e in generale tutti i VPL educativi, mettono a disposizione un ambiente di sviluppo stimolante e semplice e per questo sono in grado di portare l’insegnamento dei concetti di base ad un livello di apprendimento differente.

Seguendo lo stesso esempio dello studente che deve imparare la differenza fra le variabili e la loro suddivisione tra gli insiemi, con Scratch, dopo aver seguito la spiegazione dei concetti base, potrà sviluppare un’idea, creare un prototipo, sperimentarlo, eseguire il debug, ricevere o dare informazioni e consigli agli altri studenti o dai professori, e dopo aver messo a confronto la propria esperienza con quella degli altri ridisegnerà il proprio progetto fino alla percezione di completamento e quindi alla consegna dello stesso. Attraverso tutte queste fasi che descrivono i processi di creazione di un qualsiasi progetto, lo studente apprenderà le nozioni riguardo le variabili utilizzandole per controllare la velocità di un’animazione, o per mostrare il punteggio di un gioco, per fare delle operazioni od anche dare le coordinate dei punti visualizzati sullo schermo eccetera eccetera…

Come si può intuire, l’approccio allo studio utilizzando i VPL è a 360º, lo studente non solo apprende la lezione ma rende personale l’esperienza del proprio studio, in quanto realizza qualcosa che esisteva nella sua immaginazione e che ora è concreta.

La mia personale esperienza con Scratch è stata molto positiva. Dopo aver creato un profilo sul loro sito, https://scratch.mit.edu/users/SandoR81/, ho cominciato a realizzare un programma che esegue la ricerca dei numeri primi all’interno di un numero scelto dall’utente. Il programma quindi oltre a dire se il numero scelto è un numero primo, con una serie di controlli permette di trovare tutti i numeri primi presenti tra 2 e il numero scelto.

Senza aver letto il manuale, sono riuscito in breve tempo a realizzare il seguente programma.

La rappresentazione grafica dei controlli, degli operatori, l’assegnazione delle variabili e gli altri componenti contenuti nel menù “script”, sono tutti molto intuitivi e facili da inserire ed usare nel programma. Il sito poi è di facile accesso e l’ambiente di sviluppo caricato dal browser è leggero e veloce.

Di seguito vi lascio dei link che potrebbero interessarvi: