Feuille de Route [Technique] Morten Kromberg, CXO 0.

Slides:



Advertisements
Similar presentations
The DataFlex Web Framework Changing the Game Stephen W. Meeley Development Team Data Access Worldwide
Advertisements

Amanda Silver Director of Program Management Visual Studio Tools for Client Applications Cross-Platform Development using Visual Studio.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
RIDE 2.0 and Version 14.1 “In Depth” Morten Kromberg, CTO.
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
Module 1 Introduction to Network Operating Systems
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
UNIT4 BUSINESS ANALYTICS. page WHAT IS THE PRODUCT? 2 A business intelligence tool kit, specializing in Coporate Performance Management An application.
ECLIPSE IDE N AME : A SHOK P ADMARAJU C OURSE : T OPICS ON S OFTWARE E NGINEERING I NSTRUCTOR : D R. S ERGIU D ASCALU.
Computer Software.
Technical Road Map Morten Kromberg, CTO Back in the UK!
Powerful, modern desktops enable next generation applications Hardware acceleration brings real-time lighting, texturing and rendering Visual.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
The PHP Story. PHP Story PHP is a programming language. Incorporate(join) sophisticated business logic. Widely used general purpose scripting language.
Morten Kromberg CTO, Dyalog Ltd. Technical News from Dyalog SWEDAPL Göteborg April 2015.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
© 2010 UEI, Inc. All Rights Reserved UEIPAC HMI.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Parallel Programming with v14.0. Parallel Paths to Parallel Performance 1.Parallel Compiler Research –”Concurrent Dfns Compiler” targets fine-grained.
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
INTRODUCTION TO WEB DATABASE PROGRAMMING
IT 210 The Internet & World Wide Web introduction.
ISYS 350 Business Application Development
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
September 6, 2015 Connecting Client Applications to Informix Databases using IBM Informix Connect and ODBC James Edmiston Database Consultant Quest Information.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
Session 1 - Introduction and Data Access Layer
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Technical Road Map Update Morten Kromberg, CTO. Show of Hands Workshops Today: –Putting Dyalog’s Latest Features to Use –MiServer 3.0 – A Framework for.
John Daintree Chief Architect Dyalog Andy Shiers Chief Operations Officer Dyalog RIDE.
Technical Road Map Morten Kromberg 0. 1 (Same Old) Focus Areas -Performance -(includes parallel computing) -Portability -(includes user interfaces) -Language.
ISYS 350 Business Application Development David Chao.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
Dyalog’08. Conga, SSL and WebServices Morten Kromberg Dyalog’08 - Elsinore.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
OSSIM Technology Overview Mark Lucas. “Awesome” Open Source Software Image Map (OSSIM)
Technical Road Map Spring 2016 Morten Kromberg, CXO 0.
1 V15 - Spring 2016 Toutes les nouveautes de V15 Dan Baronet Dyalog.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
#DYNA16 Technical Road Map Update Jay Foad, CTO Morten Kromberg, CXO.
Parallel Programming With Futures and Isolates Morten Kromberg, CXO.
1 Technical Road Map The User Experience Morten Kromberg CXO, Dyalog Ltd.
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Introducing the Microsoft® .NET Framework
CST 1101 Problem Solving Using Computers
Road Map - The User Experience
Chapter 2: Operating-System Structures
Platform as a Service.
CE-105 Spring 2007 Engr. Faisal ur Rehman
Haritha Dasari Josue Balandrano Coronel -
Chapter 6 Introduction to Network Operating Systems
CMPE419 Mobile Application Development
Web App vs Mobile App.
Toutes Les Nouveautes de V15
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Chapter 2: System Structures
Unit 20 Software Part 2.
Lecture 1: Multi-tier Architecture Overview
Unit 20 Software Part 2.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
1. Azure Data Explorer Azure Data Explorer enables rich data exploration over raw, structured, and semi-structured data delivering fast time to insight.
CMPE419 Mobile Application Development
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Running C# in the browser
Presentation transcript:

Feuille de Route [Technique] Morten Kromberg, CXO 0

1 What is a C X O? Wikipedia: A chief experience officer (CXO) is the officer responsible for the overall user experience (UX) of an organization. The chief experience officer ensures the organization has good customer service, so customers are able to have a positive experience.user experience Not just about running a good help desk, but understanding whether our products, services and documentation meet the needs of existing and future users. Technical Road Map - Spring 2016

2 Goals as CXO Spend more time understanding user requirements As always: Professional Application Developers … but with new resources, also focus on: –People using APL for prototyping and as a “tool of thought” –Potential users from outside the existing array language community. Describe and prioritise requirements. Agree on the road map with CEO & CTO. Let Jay manage the core technology group and try not to interfere. We hope to hire 1 new C/C++ and 1 new APL resource in 2016 Technical Road Map - Spring 2016

3 Trends Microsoft Windows Desktop (“Win32”) is fading New platforms, in particular Linux, are getting more important Parallel processing is becoming important Both Cloud- and GPU-based IoT (Internet of Things): Android & Arm Linux Technical Road Map - Spring 2016

4 Prepare for the Future Support cross-platform Development –Remote IDE for APL on all platforms –Cross-platform UI and integration tools, which do NOT require platform- specific frameworks such as Microsoft.Net Add new platforms –Recent: ARM Linux and Apple OSX –To come: Android (perhaps iOS) Compilers & Tools to Support Parallelism –2 compiler research projects –Futures & Isolates –Vector database Technical Road Map - Spring 2016 Microsoft Windows Desktop (“Win32”) is fading New platforms, in particular Linux, are getting more important Parallel processing is becoming important Both Cloud- and GPU-based IoT platforms: Android, ARM Linux

5 Performance 1.Tuning the interpreter 2.Co-Dfns compiler 3.Dyalog byte code execution engine Technical Road Map - Spring 2016

6 Performance (1 of 3) Tuning the Interpreter New algoritms New C compilers on all platforms –Windows: VS2005 => VS2015 –Linux: gcc (2009) => 5.3 (2015) –AIX xlc has been “current” Technical Road Map - Spring 2016

7 Performance (2 of 3) Co-dfns compiler (Aaron Hsu / Indiana U) Support for Boolean vectors in the compiler Basically Complete Scalar Runtime –Most mixed functions, and operators Full GPU execution by default in most cases Support for caching data on GPU Improved reliability and stability fixes across the board Better user documentation and interface Still very experimental, first client project in 2016 Technical Road Map - Spring 2016

8 Performance (3 of 3) Optimised Byte Code Execution Engine –aka “Compiler” Gives a factor of 2 speed-up on code using small arrays Version 15.0 work: –support for nested dfns –allow assignments to global variables –Indicator in editor showing whether a function can be compiled or not Technical Road Map - Spring 2016

9 Cross-Platform Integration Historically, Dyalog has integrated with Microsoft infrastructure: DDE, OLE/COM, and Microsoft.NET. In the future, we need to support cross-platform mechanisms, such as: Call APL as a shared library (.dll/.so) Use APL as a “scripting language” Support emacs, vim, Eclipse, etc Web service frameworks + JSON Technical Road Map - Spring 2016

10 Integration (1 of 4) Call APL as a shared library (.dll/.so) “Reverse ⎕ NA ” Allow C, or any language with a “foreign function interface”, to call APL Technical Road Map - Spring 2016

11 Integration (2 of 4) Use APL as a “scripting language” Support UNIX/Linux scripts starting with #!dyalog Support other editors (next slide) Technical Road Map - Spring 2016

12 Integration (3 of 4) Support external editors & debuggers with plugins based on RIDE protocol: Emacs VIM Eclipse (intern at Dyalog this summer) Visual Studio Will make it easier for many young people to get started using an editor they know. Technical Road Map - Spring 2016

13 Publish new RIDE Protocol API is based on JSON, for example: When the user presses, RIDE should send e.g.: ["Edit",{"win":123, "text":"a←b+c×d", "pos":4, "unsaved":{"124":"f"}}] The interpreter will respond with something like: ["OpenWindow",{"name":"f", "text":["r←f a", "r←(+ ÷ ≢ )a"], "token":123, "currentRow":0, "debugger":false, "entityType":1, "offset":0, "readOnly":false, "size":0, "stop":[1], "tid":0, "tname":"Tid:0"}] Technical Road Map - Spring 2016

14 Integration (4 of 4) Web service frameworks + JSON Microsoft.NET Web Service Support MiServer 3.0 Supports RESTful services Conga HTTP support & other goodies CXO’s Dream: APL to serve web requests “out of the box” Technical Road Map - Spring 2016

15 Cross Platform Tools UI: MiServer & HTML Rendering Engine, Graphics with SharpPlot (& Javascript) SQAPL (ODBC interface to SQL databases) Vector Database: “vecdb” in pure APL CONGA (TCP), Crypto Library JSON & XML conversion functions V15.0 File Functions –NINFO, NMKDIR, NDELETE, … Interfaces to R, Python Technical Road Map - Spring 2016

16 Demo: Future UI Development Technical Road Map - Spring 2016

Dyalog APL ServerDyalog APL + RIDE (Windows, UNIX, Mac, Android, etc) 17 Portable User Interfaces Technical Road Map - Spring 2016 MiServer or other HTML/JS Generator Web Browser Internet MiServer or other HTML/JS Generator HTML Engine

18 Parallel Computing Futures & Isolates –Multicore machines, clusters, and “clouds” –E.g. Parallel queries on large vector databases Co-Dfns Compiler => GPU execution Technical Road Map - Spring 2016

19 Vector Database vecdb is an inverted or columnar database Similar architecture to JD, kdb (but very simple) –Open source: Will be able to perform parallel queries Technical Road Map - Spring 2016

20 Integration with Other Languages Continue with Microsoft.Net Foreign Function Interfaces in&out Additional integration with: R Python Julia? MatLab? Technical Road Map - Spring 2016

21 Demo: Python “Bridge” Technical Road Map - Spring 2016

22 [New] Goals for the CXO Work with CEO to create training materials Work with (and as a member of) the APL Tools Team to create tools, tutorials and samples Venture outside the APL community to attract new users Special focus on the new users Revisit the usability of the entire Dyalog system and take inspiration from other tools Technical Road Map - Spring 2016

23 Evangelism “Dyalog is a modern, array-first, multi-paradigm programming language, which supports functional, object-oriented and imperative programming, based on an APL language kernel.” Technical Road Map - Spring 2016

24 One of our customers writes: Dyalog est un langage de programmation moderne, "array- first", "multi-paradigm", basé sur un kernel de langage APL. Originellement, [xxx] incluait du code écrit en C, C++ et C#. Ce code a progressivement été remplacé par du Dyalog, afin de donner davantage de cohérence au système et nous permet de nous appuyer sur de réels experts en ce domaine pour tous les développements applicatifs. D'autres langages (plus techniques) sont également utilisés dans l'interpréteur Dyalog lui-même et dans certaines librairies utilisées pour des services à basse technicité. Javascript est également utilisé afin de produire des graphiques hautement interactifs. Technical Road Map - Spring 2016