Jeff Kodosky with the student of the Texas University in Austin.
PROGETTAZIONE – LA RIVOLUZIONE VIRTUALE
Il “padre” di LabVIEW, Jeff Kodosky, NI Business and Technology Fellow e cofondatore di National Instruments, descrive la filosofia che ha dato vita all’ambiente di progettazione grafica capace di sviluppare applicazioni in ogni tipo di settore industriale. Come? Grazie a una semplicissima interfaccia fatta di collegamenti e icone: la programmazione parallela è “naturale” e la sua diffusione inarrestabile...
di Luigi Ortese
Jeff Kodosky ci spiega perché la programmazione con linguaggi grafici di tipo parallelo abbia ancora grandi prospettive di sviluppo. I principi di fondo sui cui è basato LabVIEW sono di grande attualità e servono concretamente a favorire l’innovazione in molti settori applicativi. Osserva Kodosky: “Noi umani descriviamo naturalmente molti concetti in modo parallelo, tanto da non rendercene nemmeno conto: dagli schemi elettrici agli spartiti musicali, dai diagrammi di Gantt agli schemi tattici di una squadra di calcio. I linguaggi di programmazione classici sono invece tutti sequenziali, e per questo ci sembrano complicati e poco adatti alla risoluzione di problemi tecnici e scientifici intrinsecamente paralleli”. Quando 26 anni fa Kodosky inventò LabVIEW unì il concetto di diagrammi del flusso di dati con cicli strutturati ad una rappresentazione grafica ‘naturale’. Il risultato fu un linguaggio di programmazione efficacissimo anche nello sfruttare il parallelismo dell’hardware introdotto coll’avvento delle CPU multicore e con l’hardware riconfigurabile costituito dalle FPGA.
D. Quali sono i valori fondamentali sui quali si basa il Business Concept di National Instruments?
R. La missione di National Instruments è dotare ingegneri e scienziati degli strumenti necessari per accelerare la produttività, l’innovazione e le scoperte scientifiche. I nostri principi guida (innovazione, soddisfazione totale del cliente, miglioramento continuo e visione) costituiscono le fondamenta della nostra azienda e contribuiscono ad orientare le scelte per il futuro. Oltre ai nostri principi guida, prestiamo grande attenzione a tutti gli attori coinvolti nella nostra attività: dipendenti, clienti, azionisti e fornitori. L’obiettivo è fare in modo che tutti siano sempre allineati e impegnati a perseguire la nostra missione originaria. Proseguendo nella crescita, lavoriamo per raggiungere il giusto equilibrio fra tutte le molteplici prospettive di sviluppo, mantenendo la focalizzazione sulle finalità di lungo termine.
D. Qual è la filosofia di fondo di NI LabVIEW?
R. Abbiamo notevolmente ampliato il raggio d’azione e le funzionalità di LabVIEW negli ultimi 26 anni, e continuiamo a farlo. Ci sono però principi fondamentali che sono rimasti invariati dalla nascita di LabVIEW e che continuano a guidare la nostra evoluzione. Questi capisaldi sono, da un lato, la struttura del software di misura come gerarchia di moduli e, dall’altro, la possibilità di accedere durante l’esecuzione ai dati che passano attraverso le interfacce dei moduli. Con l’avvento dei computer Macintosh, National Instruments era un fornitore apprezzato di interfacce GPIB per collegare la strumentazione ai computer e volevamo aiutare i clienti a compiere il passo successivo, cioè automatizzare i sistemi di misura. Il Macintosh ha suggerito l’uso di pannelli grafici per la strumentazione virtuale che avrebbero semplificato l’utilizzo del software. Facilità d’uso non significa però necessariamente facilità di programmazione. Bisognava trovare un modo in cui le funzionalità grafiche del Mac potessero rendere più semplice anche la programmazione. La soluzione di questo problema ha portato a sviluppare molti dei concetti che stanno alla base di LabVIEW. I diagrammi di flusso dei dati erano i più naturali e facili da capire e richiedevano note testuali minime per essere intellegibili. Tuttavia, c’era un ostacolo all’utilizzo dei diagrammi di flusso come metodologia di programmazione: ogni sistema di misurazione presenta una qualche forma di comportamento iterativo o ciclico. Il problema dei diagrammi di flusso standard è che rappresentano l’iterazione introducendo un ciclo nel diagramma. A prima vista questo può apparire come un problema relativo, ma in realtà aggiunge una notevole complessità artificiale al diagramma. La soluzione che ho elaborato, invece, prevede la combinazione del flusso di dati e della cosiddetta “programmazione strutturata”. Quest'ultima è una metodologia inventata per “imbrigliare” il caos generato dall’utilizzo smodato di istruzioni “go to”, tipico dei primi linguaggi come BASIC e FORTRAN. L’intuizione che ha portato alla realizzazione di LabVIEW è stata l’idea che le strutture potessero essere rappresentate come riquadri nel diagramma di flusso. Il principio di base del linguaggio di LabVIEW, G, è il flusso di dati strutturato.
D. Quali sviluppi tecnologici prevedete per il futuro?
R. Dal punto di vista dell’hardware, vedo una crescente diffusione degli FPGA e la possibilità che vadano a fondersi con processi multicore: i grandi processori con unità di memoria avrebbero così un’architettura molto più parallela sulla quale programmare. Con una convergenza fra multicore e FPGA, ingegneri e scienziati potrebbero ottenere i benefici di entrambe le tecnologie su un unico supporto.
Dal punto di vista software, penso che ci sia ancora troppa complessità artificiale nella maggior parte dei linguaggi software e che un approccio grafico sia migliore. In futuro vedremo molte più interfacce touch e computer embedded. Per interagire con i computer embedded verranno introdotte interfacce naturali con funzionalità tattili e visuali. Gli I/O embedded e fisici saranno un altro elemento importante della tecnologia del futuro, pertanto avremo bisogno di sistemi migliori per progettare questi dispositivi. Prendete le interfacce touch, ad esempio... Utilizzare un tablet per digitare è più scomodo di una vecchia macchina da scrivere; serve un’interfaccia tattile che restituisca una sensazione più fisica e concreta. Questo riguarda il modo in cui interagiremo con gli oggetti in futuro. Ci saranno più interfacce vocali e grafiche. Non digiteremo più così tanto e, invece, sposteremo oggetti di qua e di là. Dal punto di vista di NI, si dovranno utilizzare gli FPGA su più prodotti e, forse, renderli più accessibili agli utenti, in modo che possano essere più flessibili in termini di I/O ed elaborazione con prestazioni superiori. La nostra idea è che tutto ciò che è programmabile debba essere veramente programmabile e non avere funzionalità fisse. Nostro obiettivo è rendere i dispositivi aperti per scienziati e ingegneri, con modalità accessibili e che riducano la complessità.
D. Ci parla dei percorsi strategici di sviluppo in termini di scienza, tecnologia e industria?
R. Per quanto riguarda l’evoluzione strategica in ambito scientifico prevediamo un cambiamento nelle modalità di conduzione della ricerca. Ingegneri e scienziati svolgono indagini ad ampio raggio e raccolgono grandi quantità di dati per poi analizzarli successivamente. Siamo in grado di generare enormi quantità di informazioni per poi scendere in profondità e ‘scavare’ alla ricerca di spiegazioni utili, così da cambiare il modo in cui si fa scienza. Prevediamo anche una svolta nella tecnologia: invece di lavorare con grandi team, stiamo mettendo i piccoli team nelle condizioni di portare avanti, in tempi più stretti, gli stessi progetti che finora richiedevano gruppi di lavoro dimensionalmente più ampi.
D. L’innovazione è la chiave del business. Quali saranno i campi della competizione in futuro?
R. La competizione sarà alimentata dall’efficienza. In futuro, ingegneri e scienziati avranno la necessità di fare innovazione, prototipazione, progettazione e test più velocemente per rispondere alla richiesta di immettere prodotti sul mercato in tempi più rapidi. NI aiuta, per esempio, clienti come Qualcomm Atheros, leader nelle tecnologie wireless di nuova generazione per networking, elettronica di consumo, computer e dispositivi mobili, a realizzare questi obiettivi. I dispositivi sono più complessi e complicati, pertanto in passato era difficile testarli, ma ora, grazie al ricetrasmettitore di segnali vettoriali PXI di NI e l’accesso al FPGA, Qualcomm Atheros ha aumentato la velocità dei controlli di ben 200 volte. Grazie alla flessibilità del dispositivo con accesso al FPGA sono riusciti a caratterizzare i loro strumenti.
D. Uomo e macchina: l’evoluzione è parallela?
R. Purtroppo no. Le aree del nostro cervello dedicate alla razionalità (logica, numeri, matematica) si trovano nella porzione di encefalo che si è sviluppata in tempi più recenti. È questo il motivo per cui è normalmente più difficile studiare questi argomenti piuttosto che imparare una lingua. Il problema non è che non si possano apprendere certi concetti, semplicemente è richiesto un impegno maggiore.
Il dibattito sull’evoluzione parallela fra uomo e macchina non mi appassiona molto. In passato, per andare in un posto, dovevamo camminare o correre; oggi ci sono i mezzi di trasporto e nessuno si preoccupa del fatto di non potersi spostare alla stessa velocità di un’auto. Esistono microscopi che vedono meglio dei nostri occhi. Stiamo migliorando l’interazione con la natura in tutte le sue dimensioni e le nostre invenzioni hanno superato le nostre stesse capacità, tranne la creatività. Giungeremo a un punto in cui i nostri computer o algoritmi supereranno le nostre capacità mentali? Penso di sì, ma non so quando. Nessuna macchina è in grado di fare tutto ciò che un essere umano può fare con il proprio intelletto, ma forse arriverà un giorno in cui ciò sarà possibile. Con LabVIEW, vogliamo dare a scienziati e ingegneri uno strumento al quale possano fare riferimento e che risulti intuitivo da utilizzare, in modo da potenziare le loro capacità. In un certo senso potremmo dire che è uno strumento per la mente.
Jeff Kodosky, NI Business and Technology Fellow and co-founder of National Instruments, dealing with LabVIEW 2.0, in 1988.
DESIGN – THE VIRTUAL REVOLUTION
LabVIEW’s “daddy”, Jeff Kodosky, NI Business and Technology Fellow and co-founder of National Instruments, illustrates the philosophy that created the visual design environment for the development of applications in all industries. How does it work? With a very simple interface based on links and icons: parallel programming is “natural” and its expansion relentless...
by Luigi Ortese
Jeff Kodosky explains why parallel programming based on visual languages still has wide margins for growth. The basic principles of LabVIEW are still current and support innovation in many areas. Kodosky says: “Human beings naturally describe many concepts in a parallel way, and we don’t even realize it: from electrical diagrams to music scores, from Gantt charts to football tactics. Classical programming languages, instead, are all sequential, and that’s why we find them complicated and hardly suitable to solve intrinsically parallel technical and scientific problems." When Kodosky invented LabVIEW 26 years ago, he combined data flow charts with structured cycles and ‘natural’ visual representation. The result was a highly effective programming language that leveraged the parallel processing capabilities of multicore CPUs and reconfigurable hardware based on FPGAs.
Q. Which are the core values of National Instruments’ Business Concept?
A. National Instruments’ mission is to provide engineers and scientists with tools to accelerate productivity, innovation and scientific discoveries. Our guiding principles (innovation, total customer satisfaction, continuous improvement and vision) are the foundations of our business and help define a direction for future decisions. Besides our guiding principles, we pay great attention to all actors involved in our business: employees, customers, stockholders and suppliers. Our goal is to keep everyone constantly aligned and committed to pursuing our original mission. As we grown, we work to achieve the right balance among all development opportunities, keeping a focus on long-term goals.
Q. What’s the underlying philosophy of NI LabVIEW?
A. We have significantly expanded LabVIEW scope and functionality over the past 26 years, and we keep doing that. However, some core principles have remained the same since LabVIEW’s birth and they are still driving our evolution. These are, on one side, the structure of the measurement software consisting of a hierarchy of modules, and on the other, the possibility for users to access data flowing through module interfaces during runtime. When Macintosh computers were introduced, National Instruments was a popular supplier of GPIB interfaces to connect instrumentation to PCs, and we wanted to help customers take the next step, namely automate their measurement systems. Macintosh machines suggested using graphical panels for virtual instrumentation to streamline the use of software. However, easy to use does not necessarily mean easy to program. We had to find a way for Mac graphical functionality to simplify programming as well. As we searched a solution to this problem, we developed many concepts that are currently at the core of LabVIEW. Data flow charts were more intuitive and easier to understand, and they required minimum text annotations to be intelligible. But still, there was a hindrance to the use of flow charts as programming method: each measurement system has some form of iterative or cyclic behavior. The problem of standard flow charts is that they represent iteration introducing a cycle into the diagram. At first sight, this might seem a relative problem, but actually it adds significant artificial complexity to the diagram. On the contrary, the solution I have developed combines the data flow and the so-called “structured programming”. The latter is a method created to “harness” the chaos generated by the pervasive use of “go to” instructions, typical of early languages like BASIC and FORTRAN. The intuition that resulted into the creation of LabVIEW was the idea that structures might be represented as boxes in the flow chart. The basic principle of LabVIEW’s G language is the structured data flow.
Q. What kind of technological developments are you expecting in the future?
A. From a hardware standpoint, I expect an increasing diffusion of FPGAs and their merging with multicore processes. As a result, big processors with memory units would offer a more parallel architecture to program on. Multicore and FPGA are converging, so engineers and scientists might benefit from both technologies on the same substrate. On the software side, I think software languages still have too much artificial complexity, and a graphical approach would be better. In the future, we will see more and more touch interfaces and embedded computers. To interact with embedded computers, natural interfaces with tactile and visual functions will be introduced. Embedded and physical I/Os are further key elements of future technology, so we will need enhanced systems to design such devices. Take touch interfaces, for instance... Using a tablet to type is less convenient than an old typewriter; you need a touch interface that delivers a more physical and tangible sensation. That’s for the way we are going to interact with objects in the future. There will be more voice and visual interfaces. We will type much less and, instead, we will move objects around. From NI’s point of view, FPGA shall be used on more products and, possibly, be more accessible to users, so that they become more flexible in terms of I/Os and processing with higher performance. According to our vision, any item that is programmable should be really programmable with no fixed functionality. Our goal is to make all devices open for scientists and engineers, with accessible methods that help reduce complexity.
Q. Can you illustrate strategic development routes in science, technology and industry?
A. Talking about strategic developments in the scientific domain, we expect a change in the way research is conducted. Engineers and scientists perform wide-scope surveys and collect huge quantities of information for subsequent analysis. We can generate big volumes of information and then 'drill down' to search for useful explanations, so as to change the way you make science. We also predict a change in technology: rather than working with large teams, we are enabling small teams to carry on the same projects that so far required bigger teams, within tighter time frames.
Q. Innovation is the key to business. What will be the fields of competition in the future?
A. Competition will be fueled by efficiency. In the future, engineers and scientists will need to execute innovation, prototyping, design and testing faster, in order to meet the demand for faster product introduction to the market. For instance, NI is helping Qualcomm Atheros – a leader in next-generation wireless technology for networking, consumer electronics, computers and mobile devices – achieve these goals. The devices are more complex and complicated, so in the past it was hard to test them; but now, with NI's PXI vector signal transceiver and access to FPGA, Qualcomm Atheros have increased the speed of their control by 200 times. Their tools are characterized by the flexibility of the device with FPGA access.
Q. Man and machine: parallel evolution?
A. Unfortunately not. The areas of our brain dedicated to rationality (logic, numbers, maths) are in the portion that has developed more recently. That's why we normally find it more difficult to study these subjects than to learn a language. The problem is not that you cannot learn certain concepts, it just requires to work harder.
The discussion about the parallel evolution of man and machine is not so involving for me. In the past, to move to another place, we had to walk or run; now we have transportation and no one cares about the fact that man cannot move at the same speed as a car. There are microscopes that can see better than human eyes. We are enhancing interaction with nature in all its aspects and our inventions have exceeded our own capabilities, except creativity. Will we get to a point when our computers and algorithms exceed our mental capacity? I think so, but I don’t know when. There is no machine that can do what a human being can achieve with his brains, but maybe one day this will be possible. With LabVIEW, we want to provide scientists and engineers with a tool to refer to and to be used intuitively in order to enhance and expand their skills. We might say it’s a tool for the mind.
An example of 3D stereo vision with LabVIEW 2012.