{"id":50581,"date":"2019-10-08T06:00:23","date_gmt":"2019-10-08T04:00:23","guid":{"rendered":"http:\/\/smeupnew.it\/magazine\/blog\/codice-rpg-modernizzazione\/"},"modified":"2021-10-11T17:43:08","modified_gmt":"2021-10-11T15:43:08","slug":"codice-rpg-modernizzazione","status":"publish","type":"post","link":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/","title":{"rendered":"Codice RPG by smeup: modernizzazione, innovazione e nuove tecnologie \u2013 parte 2"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling gradient-container-1\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1144px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>Ti sei perso la prima parte dell&#8217;intervista al nostro collega Franco Lombardo su modernizzazione e linguaggio RPG? <a href=\"https:\/\/www.smeup.com\/magazine\/blog\/modernizzazione-linguaggio-rpg\/\" target=\"_blank\" rel=\"noopener\">Leggila qui<\/a>.<\/p>\n<h2>Interprete codice RPG e Domain Specific Language<\/h2>\n<p>Nel precedente articolo abbiamo passato in rassegna i limiti principali che oggi presenta il linguaggio RPG. In questo articolo, vediamo insieme come noi di smeup stiamo cercando di superarli.<\/p>\n<p>Abbiamo fatto un\u2019ipotesi di lavoro: <strong>perch\u00e9 non creiamo un interprete open source portabile, funzionante sia principalmente su IBM i ma anche su altre piattaforme?<\/strong><\/p>\n<p>Con questa premessa, abbiamo iniziato a scrivere un interprete usando una tecnologia innovativa: Kotlin. \u00c8 un linguaggio che gira all\u2019interno della Java Virtual Machine molto moderno. A questo interprete possiamo dare in pasto file RPG che lui interpreta senza problemi. Il fatto per\u00f2 di avere il controllo del processo di interpretazione ci consente di mischiare linguaggi diversi.<\/p>\n<p><strong>Cosa significa?<\/strong> L\u2019esempio pu\u00f2 essere un programma RPG che chiama una classe java che chiama un altro programma RPG che chiama il codice Kotlin o un altro linguaggio che opera all\u2019interno della JVM.<\/p>\n<p>Qual \u00e8 lo scopo di combinare linguaggi differenti? Ognuno di essi ha le sue specificit\u00e0. L\u2019esempio lampante \u00e8 un programma RPG che deve andare ad interfacciarsi con il mondo esterno; pu\u00f2 chiamare un servizio su una URL oppure pu\u00f2 interfacciarsi con un device IoT con un protocollo particolare o proprietario. A questo punto il codice RPG non fa altro che fare una semplice call e questo programma richiamato non \u00e8 un altro programma RPG ma \u00e8 una classe ad esempio Java o Kotlin che esegue la connessione sfruttando una serie di librerie dell\u2019ecosistema JVM per svolgere quel compito specifico.<\/p>\n<p><strong>Ma a questo punto, dato che stiamo scrivendo noi il linguaggio allora perch\u00e9 al posto di fare una call non andiamo ad introdurre una nuova keyword che fa quel compito specifico?<\/strong> Dato che il linguaggio \u00e8 interpretato dal nostro interprete, possiamo chiedergli di fare quello che vogliamo, quindi possiamo estendere il linguaggio a seconda delle nostre esigenze.<\/p>\n<p>Le esigenze tuttavia possono essere sia tecnologiche (in questo caso andiamo ad interfacciarci a un webservice) per\u00f2 possono anche essere quelle di creare keyword relative al mondo del business. Un esempio di questo caso pu\u00f2 essere creare una nuova keyword \u201ccalcolo iva\u201d che esegue il calcolo dell\u2019iva a seconda delle regole che ho scelto per il tipo di business.<\/p>\n<h2>Ma in sostanza, cosa stiamo facendo?<\/h2>\n<p>Stiamo trasformando l\u2019RPG da linguaggio di programmazione a DSL. I DSL sono dei linguaggi creati per risolvere dei problemi di business che parlano la lingua dell\u2019esperto di business pi\u00f9 che la lingua della tecnologia. Vengono creati per aiutare la comunicazione tra persone tecniche e persone non tecniche.<\/p>\n<p>Un esempio \u00e8 costituito dal linguaggio <a href=\"https:\/\/fr.openfisca.org\/\" target=\"_blank\" rel=\"noopener\">Open Fisca<\/a> sviluppato con il patrocinio dell\u2019agenzia delle entrate francese. Serve per dare a chi si occupa di stabilire tutte le regole della tassazione un linguaggio con il quale riesca ad esprimerle nel software che poi si occupa di verificare la correttezza delle dichiarazioni fiscali. Questo \u00e8 solamente un esempio ma all\u2019interno di smeup il concetto di DSL l\u2019abbiamo gi\u00e0 nel DNA. Tutte le nostre interfacce, infatti, che vengano renderizzate con l\u2019applicazione client standard, con l\u2019applicazione web o con quella mobile, sono descritte con un linguaggio che ne descrive le sezioni, che possono contener oggetti grafici come alberi, griglie, istogrammi e molto altro. Chi costruisce la videata ne specificare ogni parte con questo linguaggio di alto livello, che poi sar\u00e0 visualizzato opportunamente sui vari dispositivi. Queste sezioni sono poi descritte con un linguaggio di programmazione inventato da noi che va a specificare ogni parte della scheda della maschera video cosa dovr\u00e0 andare a contenere. Noi abbiamo la strada gi\u00e0 aperta in casa e abbiamo gi\u00e0 questa mentalit\u00e0 di costruire dei linguaggi che servano ad usi molto specifici.<\/p>\n<p><strong>Come stiamo integrando questo interprete rpg all\u2019interno di Sme.UP ERP?<\/strong><\/p>\n<p>In Sme.UP ERP c\u2019\u00e8 un componente che si chiama Sme.UP Gateway che \u00e8 un gestore di microservizi cio\u00e8 di programmi Java che svolgono dei compiti particolari molto specifici e circoscritti. Ad esempio, si interfacciano con delle macchine utensili oppure controllano i parametri ambientali di una serra; possono anche interfacciarsi con software ERP di terze parti. Ognuno di questi programmi, come detto, svolge un compito speciale, si inserisce all\u2019interno di questo Gateway e comunica in modo bidirezionale con delle code eventi con Sme.UP ERP.<\/p>\n<p>Data questa premessa abbiamo pensato: ma perch\u00e9 in ognuno di questi plugin non andiamo a inserire il codice del nostro interprete che, in questo modo, pu\u00f2 interpretare del codice RPG? Un codice Java, quindi, che sta in un Application Server Java interpreta un codice RPG. C\u2019\u00e8 un esperto di dominio RPG che pu\u00f2 scrivere del codice di interfacciamento a basso livello verso dispositivi verso terze parti facendolo girare all\u2019interno di Sme.UP Gateway.<\/p>\n<h2>\u00c8 un progetto ambizioso, a che stato di avanzamento siamo?<\/h2>\n<p>Abbiamo fatto un prototipo e abbiamo iniziato a farlo funzionare. L\u2019idea \u00e8 buona sta in piedi per\u00f2 \u00e8 ancora un prototipo. Oltre a noi, a questo progetto lavora <a href=\"https:\/\/strumenta.com\/\" target=\"_blank\" rel=\"noopener\">Strumenta<\/a>, azienda specializzata nello sviluppo di linguaggi, compilatori e DSL. Quindi, affidandoci alla loro esperienza pensiamo di riuscire ad arrivare a breve ad un livello di avanzamento del progetto notevole.<\/p>\n<p>Il progetto \u00e8 Open Source (non poteva essere altrimenti!), speriamo che si raccolgano tante idee e una comunit\u00e0 che cresce intorno ad esso. Il progetto si chiama Sme.UP RPG e si trova su GitHub; vorremmo farlo crescere con l\u2019aiuto di tanti sviluppatori indipendenti.<\/p>\n<p>Attendiamo nello spirito della comunit\u00e0 open source la collaborazione di tutti!<\/p>\n<p><strong>Franco Lombardo<br \/>\n<\/strong><em>Java Team Leader e specialista DiTech &#8211; smeup<br \/>\n<\/em><a href=\"https:\/\/www.linkedin.com\/in\/francolombardo\/\" target=\"_blank\" rel=\"noopener\">My LinkedIn Profile<\/a><\/p>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia principalmente su IBM i ma anche su altre piattaforme?<\/p>\n","protected":false},"author":1,"featured_media":52911,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7144],"tags":[6442,6440,3909,4137,6441,5334,6443,6444],"class_list":["post-50581","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-erp","tag-codice-rpg","tag-franco-lombardo","tag-ibm","tag-ibmi","tag-linguaggio-rpg","tag-modernizzazione","tag-open-fisca","tag-strumenta"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Codice RPG by smeup: modernizzazione e innovazione<\/title>\n<meta name=\"description\" content=\"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Codice RPG by smeup: modernizzazione e innovazione\" \/>\n<meta property=\"og:description\" content=\"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/\" \/>\n<meta property=\"og:site_name\" content=\"Magazine\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-08T04:00:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-11T15:43:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1067\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"smeup\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"smeup\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/\"},\"author\":{\"name\":\"smeup\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"headline\":\"Codice RPG by smeup: modernizzazione, innovazione e nuove tecnologie \u2013 parte 2\",\"datePublished\":\"2019-10-08T04:00:23+00:00\",\"dateModified\":\"2021-10-11T15:43:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/\"},\"wordCount\":1081,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/10\\\/codice-rpg.jpg\",\"keywords\":[\"codice rpg\",\"Franco Lombardo\",\"ibm\",\"ibmi\",\"linguaggio rpg\",\"modernizzazione\",\"open fisca\",\"strumenta\"],\"articleSection\":[\"ERP\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/\",\"name\":\"Codice RPG by smeup: modernizzazione e innovazione\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/10\\\/codice-rpg.jpg\",\"datePublished\":\"2019-10-08T04:00:23+00:00\",\"dateModified\":\"2021-10-11T15:43:08+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"description\":\"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/10\\\/codice-rpg.jpg\",\"contentUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/10\\\/codice-rpg.jpg\",\"width\":1600,\"height\":1067,\"caption\":\"smeup codice rpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/codice-rpg-modernizzazione\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Codice RPG by smeup: modernizzazione, innovazione e nuove tecnologie \u2013 parte 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\",\"name\":\"Magazine\",\"description\":\"smeup\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\",\"name\":\"smeup\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"caption\":\"smeup\"},\"sameAs\":[\"https:\\\/\\\/www.smeup.com\"],\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Codice RPG by smeup: modernizzazione e innovazione","description":"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/","og_locale":"it_IT","og_type":"article","og_title":"Codice RPG by smeup: modernizzazione e innovazione","og_description":"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?","og_url":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/","og_site_name":"Magazine","article_published_time":"2019-10-08T04:00:23+00:00","article_modified_time":"2021-10-11T15:43:08+00:00","og_image":[{"width":1600,"height":1067,"url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg","type":"image\/jpeg"}],"author":"smeup","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"smeup","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#article","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/"},"author":{"name":"smeup","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"headline":"Codice RPG by smeup: modernizzazione, innovazione e nuove tecnologie \u2013 parte 2","datePublished":"2019-10-08T04:00:23+00:00","dateModified":"2021-10-11T15:43:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/"},"wordCount":1081,"commentCount":0,"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg","keywords":["codice rpg","Franco Lombardo","ibm","ibmi","linguaggio rpg","modernizzazione","open fisca","strumenta"],"articleSection":["ERP"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/","url":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/","name":"Codice RPG by smeup: modernizzazione e innovazione","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#primaryimage"},"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg","datePublished":"2019-10-08T04:00:23+00:00","dateModified":"2021-10-11T15:43:08+00:00","author":{"@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"description":"Abbiamo fatto un\u2019ipotesi di lavoro: perch\u00e9 non creiamo un interprete per codice RPG open source portabile, funzionante sia su IBMi che su altre piattaforme?","breadcrumb":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#primaryimage","url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg","contentUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/10\/codice-rpg.jpg","width":1600,"height":1067,"caption":"smeup codice rpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.smeup.com\/magazine\/blog\/codice-rpg-modernizzazione\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.smeup.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Codice RPG by smeup: modernizzazione, innovazione e nuove tecnologie \u2013 parte 2"}]},{"@type":"WebSite","@id":"https:\/\/www.smeup.com\/magazine\/#website","url":"https:\/\/www.smeup.com\/magazine\/","name":"Magazine","description":"smeup","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.smeup.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7","name":"smeup","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","caption":"smeup"},"sameAs":["https:\/\/www.smeup.com"],"url":"https:\/\/www.smeup.com\/magazine\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/comments?post=50581"}],"version-history":[{"count":3,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50581\/revisions"}],"predecessor-version":[{"id":55497,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50581\/revisions\/55497"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media\/52911"}],"wp:attachment":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media?parent=50581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/categories?post=50581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/tags?post=50581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}