X
Pur avendo molte similarità con i linguaggi classici, POWER-KI presenta sostanziali differenze concettuali:
- la suddivisione tra gli elementi costituenti (dati, codice, flusso);
- la istanziazione degli elementi esecutivi (EXO, MTHD);
- la capacità di auto/manipolazione (reflective) di ogni suo elemento;
- il Native Cloud (NC) ovvero la separazione tra le interfacce (GUI) ed il programma che le ha generate.

Per la creazione delle applicazioni, viene messo a disposizione il WorkBench dotato di tutte le funzionalità per l`editing, il test, il debug di applicazioni Package (.pwk) o di applicazioni assembly (.pka) e per la generazione di interfacce utente NC (.pki) e di interfacce/siti web (.pkw).

Le librerie standard contenute in PWK permettono di accedere alle più importanti funzionalità tra le quali p.e. DB(DataBase), KB1(knowledge Base), comunicazioni industriali (IEP1,OPC), elaborazione di immagini e DNN (OpenCv).

Con le librerie WRAP PWK si apre agli sviluppatori, a cui si da la possibilità di creare delle DLL di wrap che potranno essere viste in modo pseudoNativo da PWK. PWK diventa quindi la struttura portante su cui innestare codice capace di soddisfare svariate esigenze, in sostanza un collante logico per far dialogare tecnologie diverse con cui realizzare velocemente applicazioni innovative.

POWER-KI (PWK) è un linguaggio di programmazione, pensato per la realizzazione di Applicazioni Intelligenti (I.A). Con questo termine definiamo quei software che fanno uso del maggior numero d`informazioni di cui hanno la disponibilità, tra cui quelle che sono comprese nel modello reale a cui si applicano e quelle che possono essere desunte anche in modo automatico (A.I.). Gli ambiti applicativi di PWK vanno dall` IoT (internet delle cose), ai sistemi di supervisione e controllo, alle applicazioni per la gestione dei processi produttivi e decisionali, al Web ed eCommerce.


Casi reali
Programmi Demo
Perché usare POWER-KI ?

Tutti i linguaggi, propongono un modello di realtà. Anche i linguaggi di programmazione lo fanno, in modo schematico, ma lo fannno: mondi a funzioni, a liste, a strutture ad oggetti e così via, Questo schematismo, rigidità, è spesso ricercato col non dicharato scopo di trasformare il programmatore stesso in un elemento del linguaggio. POWER-KI invece, partendo dall`assunto che il software é design, punta a liberare la creatività del programmatore per dargli la possibilità di sviluppare vecchie o nuove cose in modi nuovi e con nuove idee.

Sono molte le cose che con PWK si possono fare e che invece con i linguaggi normali sono di difficile realizzazione. Per esempio la creazione di applicazioni Native Cloud, o l`insufflaggio di codice nelle applicazioni, tecniche che hanno permesso la realizzazione dell` INSPECTOR con il quale da remoto è possibile analizzare il funzionamento di un`applicazione e nel caso modificarla a caldo.

Ci sono poi i WIZ applicazioni PWK che estendono le funzionalità del WorkBench, un passo deciso verso l`automazione della produzione del software.

E` nello sviluppo di applicazioni complesse (v. casi reali), che si apprezza pienamente la potenza di PWK sia come strumento di realizzazione/esecuzione che di pensiero.

Quale l`impatto sulla qualità del Software ?

L`insieme degli strumenti a disposizione, quelli del WorkBench (Test e Debug) ed il citato INSPECTOR consentono un`attività di ricerca degli errori e di messa a punto delle applicazioni molto efficace, con tempi di gran lunga inferiori rispetto alle soluzioni tradizionali.

I vantaggi economici ?

Nel ciclo del software sulla base di comparazioni con programmi C/C++ C#, abbiamo valutato le seguenti riduzioni dei tempi :
- sviluppo dal 40% al 60%
- debug dal 50% al 70%
- manutenzione dal 60% al 90%

I vantaggi tecnico/economici possono essere così rilevanti da indurre alla riscrittura di applicazioni esistenti.

Cosa sono i WRAP ?

Con la versione 10 (del Decennale) abbiamo introdotto i WRAP ovvero la possibilitò di estendere le funzioni di PWK con codice esterno e di vedere queste funzioni in modo pseudoNativo. Abbiamo quindi messo a disposizione un Template VC++ ed uno OpenOffice per gli help.
Le possibilità di utilizzo sono molte vanno dal "porting" di nuove tecnologie, all`inserimento di codice proprietario.
Il vantaggio è quello d`innestare queste funzioni in PWK e quindi di giovarsi della sua struttura ed operatività.

Quali sono i Sistemi Operativi supportati ?

Al momento PWK è utilizzabile su Windows PRO dalla versione 8 un su. Per Windows Server ed Home è necessario installare le estensioni "desktop experience".

Che tipo di licenza ?

Per uso didattico, privato o sviluppo inHouse la licenza d`uso è gratuita (inclusa nel pacchetto di distribuzione). Per uso commerciale (SoftwareHouse) è necessario l`acquisto della licenza.

Quali sono i requisiti hardware ?

I programmi POWER-KI sono molto compatti, la maggior parte delle applicazioni si accontenta di veramente poca RAM, 2 o 4 Gb sono di solito sufficienti. Essendo orientato al MultiThreading, la presenza di più Core garantisce prestazioni brillanti.
Per lo sviluppo consigliamo l`uso di monitor che abbiano una risoluzione effettiva come minimo di 1920 x 1080 pixel, quindi meglio dai 24" in su e per chi usa il portatile ... monitor aggiuntivo, del resto stiamo parlando di uso professionale.

Quanti sono gli utilizzatori di POWER-KI ?

Sono ancora sotto i 5000 ma ... stanno crescendo.

E` difficile imparare a programmare POWER-KI ?

Al netto delle compenze informatiche specifiche necessarie per utilizzare le librerie, mi riferisco a cose come SQL, comunicazioni seriali, OPC ecc. la difficoltà nell`apprendimento dipende dalle esperienze precedenti di programmmazione dell`Utente:
per programmatori C è facile, abbiamo invece notato che chi proviene da Java, tende a soffrire per la mancanza dei vincoli a cui è abituato. Per chi comincia, e quindi non ha preconcetti, direi che rispetto ad altri linguaggi e sistemi di sviluppo, trova in PWK un ambiente confortevole e nel giro di poco tempo può realizzare applicazioni interessanti; comunque per dare un riferimento, rispetto a Python, che è considerato uno dei linguaggi più semplici, è inizialmente appena un poco più difficile ma questa (minima) difficoltà, viene ampiamente compensata dal poter sviluppare subito applicazioni complete e quindi lo sforzo complessivo risulta inferiore.