TouchDevelop: Productive Scripting on and for Mobile Devices and Web Services Thomas Ball Sebastian Burckhardt, Peli de Halleux, Michał Moskal, Nikolai.

Slides:



Advertisements
Similar presentations
1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
Advertisements

TouchDevelop Create apps ON your phone! Peli de Halleux (Senior Software Developer) Microsoft Research.
Attie Naude 14 May 2013 Windows Azure Mobile Services.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
It’s Alive! Continuous Feedback in UI Programming Sebastian Burckhardt Manuel Fahndrich Peli de Halleux Sean McDirmid Michal Moskal Nikolai Tillmann Microsoft.
Advanced topics in touchdevelop privacy transparent privacy control via information flow analysis Disclaimer: This document is provided “as-is”. Information.
My first computer: The Apple ][ It wanted to be programmed.
CS0004: Introduction to Programming Introduction to Programming.
Company LOGO Automation Tools For Android Anshu Prasad.
Programming with touchdevelop touchdevelop introduction Disclaimer: This document is provided “as-is”. Information and views expressed in this document,
Windows Programming 1 Part 1 dbg --- Getting Acquainted with Visual Studio.NET and C#
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Interpret Application Specifications
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Touch develop a mobile IDE in the cloud Michał Moskal, Nikolai Tillmann, Peli de Halleux, Tom Ball, Sebastian Burckhardt, Manuel Fähndrich* Microsoft Research.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Advanced topics in touchdevelop touchdevelop outlook ongoing research Disclaimer: This document is provided “as-is”. Information and views expressed in.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
Office Live Workspace Visio 2007 Outlook 2007 Groove 2007 Access 2007 Excel 2007 Word 2007.
UNIT - 1Topic - 2 C OMPUTING E NVIRONMENTS. What is Computing Environment? Computing Environment explains how a collection of computers will process and.
- Raghavi Reddy.  With traditional desktop computing, we run copies of software programs on our own computer. The documents we create are stored on our.
CHAPTER TEN AUTHORING.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Empowering people-centric IT Unified device management Access and information protection Desktop Virtualization Hybrid Identity.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
Saranya Sriram Developer Evangelist | Microsoft
 Google Apps is the most visible example of cloud computing,  Instead of hosting apps and data on an individual desktop computer, everything is hosted.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
1 1 1 Introduction to Java. 2 History of Java Java – Originally for intelligent consumer-electronic devices – Then used for creating Web pages with dynamic.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
IEEE Computer Society Digital Library (CSDL)
CIS 375 Bruce R. Maxim UM-Dearborn
Introducing the Windows Mobile development
CSCI 351 – Mobile Applications Development
The Universal Windows Platform
Mobile App Trends: lifecycle, functions, and cognitive
Introduction to Visual Basic 2008 Programming
Presented by Learn iT! Tom Vorves
Android.
Software Tools and Environments
Database Systems: Design, Implementation, and Management Tenth Edition
Chapter 18 MobileApp Design
CSCI 351 – Mobile Applications Development
Week 01 Comp 7780 – Class Overview.
How to automate software with
The Application Lifecycle
Web Development Using ASP .NET
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
CIS16 Application Development – Programming with Visual Basic
Chapter 7 –Implementation Issues
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
SSDT and Database Project Basics
Introduction to AppInventor
Sensor Networks – Motes, Smart Spaces, and Beyond
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

TouchDevelop: Productive Scripting on and for Mobile Devices and Web Services Thomas Ball Sebastian Burckhardt, Peli de Halleux, Michał Moskal, Nikolai Tillmann Microsoft Research Creating X Apps via X, where X = Mobile + Cloud

Paradigm shift: from single computer to many mobile devices + (cloud) clusters

Mobile+cloud app: a distributed system Multiple users. Code executes on everything (PC, tablet, phone, service) simultaneously. Cloud Service How to program this distributed system?

TouchDevelop is a mobile + cloud app… for creating mobile+cloud apps

touchdevelop.com

Programming: a social activity, supported by the cloud Programs move with you stored in cloud edit/run from any device Publish programs to cloud, when ready versioned, including all required resources and dependencies the cloud never forgets Anyone can run/edit a published program provenance is tracked kudos to original programmer Collect data associated with programs users executions likes, comments crashes, bug reports tests coverage profiles …

opportunity: data mining listsproperties /api/scripts /api/users /api/comments /api/screenshots /api/reviews /api/tags /api/art... /api/[id] /api/[scriptid]/text /api/[scriptid]/ast /api/[scriptid]/successors /api/[scriptid]/base /api/[userid]/scripts /api/[scriptid]/comments /api/[scriptid]/screenshots /api/[scriptid]/reviews /api/[userid]/picture …

Cloud-based software engineering: connecting the dots Users Programmers Language Designers

Integrated Development Environment (IDE)

TouchDevelop works cross-platform

touchdevelop + education

CS Education Week - Hour of Code (Dec 2013)

abstract syntax

Design considerations

Language abstractions Boxes graphical user interface enforces model-view-control pattern enables data-driven apps that update in response to changes Cloud types simple abstractions for replicated state provides automatic synchronization and merging of updates enables social apps with sharing

Language abstractions Boxes graphical user interface enforces model-view-control pattern enables data-driven apps that update in response to changes Cloud types simple abstractions for replicated state provides automatic synchronization and merging of updates enables social apps with sharing

TouchDevelop and cloud types TouchDevelop is itself a distributed application: develop on everything (PC,tablet,phone,service) simultaneously Cloud types let you easily develop distributed applications: Write apps that run on (PC,tablet,phone,service) simultaneously

Cloud Storage Server Mobile App Programming a distributed application Message Passing (Actors) Shared State (Web Apps) Abstraction Level increases, Code Size decreases Replicated Shared State (Cloud types) Cloud Service (stateless) Mobile App Server Mobile App Updates Queries Mobile App Read Write Read Write Cloud Storage Sync when connected code

Cloud Storage Cloud types Replicated Shared State Mobile App Read Write Read Write Sync when connected

Composable Cloud Types

User-defined libraries Appear just as built-in (in language and IDE) Underlying types hidden Extension actions to simulate object-oriented dispatch

The Meta-level Test Creating X Apps via X, where X = Mobile + Cloud Program a compiler for language X in language X Can we program TouchDevelop in TouchDevelop?

touchdevelop.com for mobile+cloud apps

Read more about it TouchDevelop: programming cloud-connected mobile devices via touchscreen, in Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software, 2011 TouchDevelop: programming cloud-connected mobile devices via touchscreen Cloud Types for Eventual Consistency, in Proceedings of the 26th European Conference on Object-Oriented Programming, 2012 Cloud Types for Eventual Consistency User-Aware Privacy Control via ExtendedStatic-Information-Flow Analysis, Proc. 27th IEEE/ACM International Conference on Automated Software Engineering, 2012 User-Aware Privacy Control via ExtendedStatic-Information-Flow Analysis Keyword Programming for TouchDevelop, in Proceedings of the 11th international conference on Mobile systems, applications, and services, 2013 Keyword Programming for TouchDevelop It's Alive! Continuous Feedback in UI Programming, in PLDI, ACM SIGPLAN, 2013 It's Alive! Continuous Feedback in UI Programming A Comprehensive Field Study of End-User Programming on Mobile Devices, in Proc. IEEE Symposium on Visual Languages and Human-Centric Computing, 2013 A Comprehensive Field Study of End-User Programming on Mobile Devices